Patch level :10.0 396
Files correlati : Ricompilazione Demo : [ ] Commento : sistemato controllo della constant_columns quando si ha una ripartizione multipla (habilita) git-svn-id: svn://10.65.10.50/trunk@19159 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5a7c84ac58
commit
3374e34987
@ -42,7 +42,7 @@ protected:
|
|||||||
bool multi_split_cg_row(const TRectype& row, const TAnal_ripartizioni_batch& rrip);
|
bool multi_split_cg_row(const TRectype& row, const TAnal_ripartizioni_batch& rrip);
|
||||||
void load_cg_row(const TRectype& row);
|
void load_cg_row(const TRectype& row);
|
||||||
void load_cg_mov();
|
void load_cg_mov();
|
||||||
bool is_ripartible_movcg();
|
bool is_ripartible_movcg(bool& has_multirip);
|
||||||
|
|
||||||
int create_sheet_fields(int lf, int& y, short& dlg, bool required);
|
int create_sheet_fields(int lf, int& y, short& dlg, bool required);
|
||||||
void create_sheet();
|
void create_sheet();
|
||||||
@ -271,11 +271,10 @@ bool TMovanal_msk::multi_split_cg_row(const TRectype& row, const TAnal_ripartizi
|
|||||||
return splitted;
|
return splitted;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TMovanal_msk::is_ripartible_movcg()
|
bool TMovanal_msk::is_ripartible_movcg(bool& has_multirip)
|
||||||
{
|
|
||||||
bool ok = true;
|
|
||||||
if (!_use_pdc)
|
|
||||||
{
|
{
|
||||||
|
bool is_ripartible_movcg = true;
|
||||||
|
|
||||||
const TString& numregcg = get(F_NUMREGCG);
|
const TString& numregcg = get(F_NUMREGCG);
|
||||||
TRecord_array cg(numregcg, LF_RMOV);
|
TRecord_array cg(numregcg, LF_RMOV);
|
||||||
|
|
||||||
@ -291,18 +290,28 @@ bool TMovanal_msk::is_ripartible_movcg()
|
|||||||
const TAnal_ripartizioni_batch& rrip = _cache_rip.righe_interattive(zio, annoes);
|
const TAnal_ripartizioni_batch& rrip = _cache_rip.righe_interattive(zio, annoes);
|
||||||
const long rrip_items = rrip.rows();
|
const long rrip_items = rrip.rows();
|
||||||
|
|
||||||
if (rrip_items <= 0) // Non trovato una ripartizione valida per il povero conto
|
//solo per conti analitici (!_use_pdc)
|
||||||
|
if (!_use_pdc && rrip_items <= 0) // Non trovato una ripartizione valida per il povero conto
|
||||||
{
|
{
|
||||||
ok = error_box(FR("Non esiste una ripartizione del conto %d.%d.%ld\n"
|
is_ripartible_movcg = error_box(FR("Non esiste una ripartizione del conto %d.%d.%ld\n"
|
||||||
"presente sulla riga %d del movimento %ld"),
|
"presente sulla riga %d del movimento %ld"),
|
||||||
zio.gruppo(), zio.conto(), zio.sottoconto(),
|
zio.gruppo(), zio.conto(), zio.sottoconto(),
|
||||||
r, atol(numregcg));
|
r, atol(numregcg));
|
||||||
break;
|
break;
|
||||||
}
|
} //if(rrip_items..
|
||||||
}
|
|
||||||
}
|
//controlla se ci sono più ripartizioni sorelle; in questo caso deve avvisare chi lo chiama di questo fatto..
|
||||||
}
|
//..in modo da non utilizzare il metodo delle colonne costanti; alla prima multiripartizione deve uscire perchè..
|
||||||
return ok;
|
//..is_ripartible_movcg sarà true (se ho una multiripartizione allora è ripartibile) e has_multirip potrebbe..
|
||||||
|
//..tornare a false nella riga successiva
|
||||||
|
has_multirip = rrip.has_multirip();
|
||||||
|
if (_use_pdc && has_multirip)
|
||||||
|
return is_ripartible_movcg;
|
||||||
|
|
||||||
|
} //if(zio.is_analitico..
|
||||||
|
} //for(int r=cg.last_row..
|
||||||
|
|
||||||
|
return is_ripartible_movcg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMovanal_msk::load_cg_row(const TRectype& row)
|
void TMovanal_msk::load_cg_row(const TRectype& row)
|
||||||
@ -615,14 +624,15 @@ bool TMovanal_msk::on_field_event(TOperable_field& o, TField_event e, long jolly
|
|||||||
case F_RESET:
|
case F_RESET:
|
||||||
if (e == fe_button)
|
if (e == fe_button)
|
||||||
{
|
{
|
||||||
if (is_ripartible_movcg())
|
bool has_multirip = false;
|
||||||
|
if (is_ripartible_movcg(has_multirip))
|
||||||
{
|
{
|
||||||
TToken_string constants;
|
TToken_string constants;
|
||||||
const int cc = get_constant_columns(constants);
|
const int cc = get_constant_columns(constants);
|
||||||
TSheet_field& sf = sfield(F_RIGHE);
|
TSheet_field& sf = sfield(F_RIGHE);
|
||||||
sf.destroy();
|
sf.destroy();
|
||||||
load_cg_mov();
|
load_cg_mov();
|
||||||
if (cc > 0) // Se ci sono colonne costanti le recupera da quelle vecchie salvate
|
if (cc > 0 && !has_multirip) // Se ci sono colonne costanti le recupera da quelle vecchie salvate
|
||||||
{
|
{
|
||||||
TString campione;
|
TString campione;
|
||||||
FOR_EACH_SHEET_ROW(sf, i, row)
|
FOR_EACH_SHEET_ROW(sf, i, row)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user