Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
compare la lista dei figli con ricarichi annessi


git-svn-id: svn://10.65.10.50/trunk@19368 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-10-02 13:54:37 +00:00
parent 1c6584e817
commit e928947b52

View File

@ -34,10 +34,49 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
case F_GRMERC:
case F_SOTGRMERC:
//una volta selezionati grmerc/sotgrmerc riempie la colonna ricarico dello sheet
if (e == fe_close)
if (e == fe_modify)
{
TString8 grmerc;
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
const TRectype& rec_gmc = cache().get("GMC", grmerc);
TToken_string lista_listini(rec_gmc.get("S1"), ';');
//se trova qualcosa nella lista listini collegati al grmerc...
if (lista_listini.full())
{
lista_listini.trim();
//se la lista di listini riempie il campo S1, magari continua in S2...
if (lista_listini.len() == 70)
{
lista_listini.add(rec_gmc.get("S2"));
lista_listini.trim();
}
//cerca se i listini trovati in GMC ci sono anche nello sheet dei figli
TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
const int righe_sheet = sf_righe.items();
FOR_EACH_STR_TOKEN(lista_listini, str)
{
//controlla se il listino in grmerc (chiave) esiste in una delle righe dello sheet dei figli
TToken_string chiave = lista_listini.get();
TString4 catven = chiave.get(0);
catven.trim();
TString4 codlis = chiave.get(1);
codlis.trim();
for (int i = 0; i < righe_sheet; i++)
{
TToken_string& row = sf_righe.row(i);
TString4 sh_catven = row.get(0);
sh_catven.trim();
TString4 sh_codlis = row.get(1);
sh_codlis.trim();
//se incredibilmente trova il listino di grmerc tra i figli prigionieri nello sheet setta il ricarico
if (catven == sh_catven && codlis == sh_codlis)
row.add(chiave.get(2), 2);
} //for(int i...
} //FOR_EACH_STR_TOKEN
sf_righe.force_update();
} //if(lista_listini.full...
}
break;
default:
@ -54,6 +93,12 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
set(F_FATHDESVEN, _query_mask->get(F_FATHDESVEN));
set(F_FATHCODLIS, _query_mask->get(F_FATHCODLIS));
set(F_FATHDESLIS, _query_mask->get(F_FATHDESLIS));
//disabilita se necessario la colonna della categoria di vendita (lo sheet serve comunque dopo!)
TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
sf_righe.destroy();
sf_righe.enable_column(F_CATVEN, ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV"));
//aggiorna sheet con i listini figli
TString query;
query << "USE CONDV\n";
@ -67,11 +112,6 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
const TRectype& rec = recset_figli.cursor()->curr();
//recupero sheet e realtiva mashera di riga
TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
TMask& msk = sf_righe.sheet_mask();
sf_righe.destroy();
//per ogni riga del recordset va ad aggiornare lo sheet sulla maschera (aggiunge la riga)
for (bool ok = recset_figli.move_first(); ok; ok = recset_figli.move_next())
{