From e928947b525bf053eef889eca447b5f34afda12e Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 2 Oct 2009 13:54:37 +0000 Subject: [PATCH] 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 --- ve/ve2700.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/ve/ve2700.cpp b/ve/ve2700.cpp index 6e014cdd4..55d19b6d0 100755 --- a/ve/ve2700.cpp +++ b/ve/ve2700.cpp @@ -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()) {