From d39860a2ff01da053d1ba201ac7a4176e0f329e7 Mon Sep 17 00:00:00 2001 From: lvietri Date: Tue, 20 Jan 2009 13:43:25 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@18052 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv2.cpp | 11 +- lv/lv2.h | 3 +- lv/lv2700.cpp | 302 ++++++++++++++++++++++++++++++++++++ lv/lv2700a.h | 9 ++ lv/lv2700a.rep | 285 ++++++++++++++++++++++++++++++++++ lv/lv2700a.uml | 124 +++++++++++++++ lv/lvbolla.rep | 404 +++++++++++++++++++++++++++++++++++++++++++++++++ lv/lvmenu.men | 11 +- 8 files changed, 1142 insertions(+), 7 deletions(-) create mode 100755 lv/lv2700.cpp create mode 100755 lv/lv2700a.h create mode 100755 lv/lv2700a.rep create mode 100755 lv/lv2700a.uml create mode 100755 lv/lvbolla.rep diff --git a/lv/lv2.cpp b/lv/lv2.cpp index a35cc6c73..9e805a6de 100755 --- a/lv/lv2.cpp +++ b/lv/lv2.cpp @@ -7,11 +7,12 @@ int main(int argc, char** argv) const int r = (argc > 1) ? argv[1][1] - '0' : 0; switch (r) { - case 0: lv2100(argc, argv); break; //generazione automatica del planning - case 1: lv2200(argc, argv); break; //manipolazione e stampa del planning - case 2: lv2300(argc, argv); break; //Stampa Giri Giornaliero/Settimanale - case 3: lv2400(argc, argv); break; //generazione automatica bolle di consegna - case 4: lv2600(argc, argv); break; //acquisizione bolle di rientro + case 0: lv2100(argc, argv); break; //generazione automatica del planning + case 1: lv2200(argc, argv); break; //manipolazione e stampa del planning + case 2: lv2300(argc, argv); break; //Stampa Giri Giornaliero/Settimanale + case 3: lv2400(argc, argv); break; //generazione automatica bolle di consegna + case 4: lv2600(argc, argv); break; //acquisizione bolle di rientro + case 6: lv2700(argc, argv); break; //Riepilogo Bolle di Lavanderie default: lv2100(argc, argv); break; //generazione automatica del planning } return 0; diff --git a/lv/lv2.h b/lv/lv2.h index 36012857f..f94fe1ba7 100755 --- a/lv/lv2.h +++ b/lv/lv2.h @@ -3,8 +3,9 @@ int lv2100(int argc, char* argv[]); int lv2200(int argc, char* argv[]); -int lv2300(int argc, char* argv[]); +int lv2300(int argc, char* argv[]);//Stampa Giri -2 int lv2400(int argc, char* argv[]); int lv2600(int argc, char* argv[]); +int lv2700(int argc, char* argv[]);//Riepilogo Bolle di Lavanderie -6 #endif // __LV2_H \ No newline at end of file diff --git a/lv/lv2700.cpp b/lv/lv2700.cpp new file mode 100755 index 000000000..6128e9d2f --- /dev/null +++ b/lv/lv2700.cpp @@ -0,0 +1,302 @@ +#include +#include +#include +#include +#include "lv0.h" +#include "lv2700a.h" + +class TRiepBolle_recordset: public TCSV_recordset +{ +public: + TRiepBolle_recordset(): TCSV_recordset("CSV(\"\t\")") {} +}; + +struct TStruttura: public TObject +{ + long _cliente; + TString _articolo; + TString _descr; + TDate _dataDoc; + int _numeroDoc; + long _qta; + TStruttura():_cliente(0),_articolo(""),_descr(""),_dataDoc(""),_numeroDoc(0),_qta(0) {} + TStruttura(long cliente, TString articolo, TString descr, + TDate dataDoc, int numeroDoc, long qta):_cliente(cliente),_articolo(articolo),_descr(descr),_dataDoc(dataDoc),_numeroDoc(numeroDoc),_qta(qta) {} +}; + +struct TStrutturaData: public TObject +{ + TDate _dataDoc; + int _numeroDoc; + int _cliente; + int _posizione; + TStrutturaData():_cliente(0),_dataDoc(""),_numeroDoc(0),_posizione(0) {} + TStrutturaData(int posizione, int cliente, + TDate dataDoc, int numeroDoc):_posizione(posizione), _dataDoc(dataDoc),_numeroDoc(numeroDoc) {} +}; + + +class TRiepBolle_mask: public TAutomask +{ +protected: + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TRiepBolle_mask():TAutomask("lv2700a"){} +}; + +bool TRiepBolle_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +{ + return true; +} + +class TRiepBolle_report : public TReport +{ +protected: + virtual bool use_mask() { return false; } +}; + +class TRiepBolle_app: public TSkeleton_application +{ +protected: + virtual void main_loop(); + void elabora(const TMask& mask) const; +}; + +class TRiepilogo: public TArray +{ +public: + void add(int count,long cliente, TString articolo, TString descr, + TDate dataDoc, int numeroDoc, long qta); + TRiepilogo():TArray(9){} +}; + +class TRiepilogoData: public TArray +{ +public: + void add(int posizione,int cliente, TDate dataDoc, int numeroDoc); + TRiepilogoData():TArray(){} +}; + +void TRiepilogo::add(int count,long cliente, TString articolo, TString descr, + TDate dataDoc, int numeroDoc, long qta) +{ + TStruttura* struttura = new TStruttura(cliente,articolo, descr,dataDoc,numeroDoc,qta); + TArray::add(struttura,count); +} + +void TRiepilogoData::add(int posizione,int cliente, TDate dataDoc, int numeroDoc) +{ + TStrutturaData* strutturaData = new TStrutturaData(posizione,cliente, dataDoc,numeroDoc); + TArray::add(strutturaData,posizione); +} + + + +void TRiepBolle_app:: elabora(const TMask& mask)const +{ + TISAM_recordset riep("USE RDOC KEY 1 SELECT (BETWEEN(DOC.ZONA,#F_ZONA_FROM,#F_ZONA_FROM)&&(BETWEEN(DOC.DATADOC,#F_DATA_FROM,#F_DATA_TO))&&(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO)))\n" + "BY DOC.CODCF CODART DOC.DATADOC NDOC\n" + "JOIN DOC TO RDOC ALIAS 1000 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC\n" + "FROM CODNUM='B01'\n" + "TO CODNUM='B01'"); + + //inserire parametri filtri + riep.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA)); + riep.set_var("#F_DATA_TO",mask.get_date(F_DATA_A)); + riep.set_var("#F_CODCF_FROM",TVariant(mask.get(F_CODCF_DA))); + riep.set_var("#F_CODCF_TO",TVariant(mask.get(F_CODCF_A))); + riep.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA))); + + + TRiepilogo riepilogo; + TRiepilogoData riepilogoData; + TRiepilogoData riepilogoData2; + int count = 1; + + for(bool ok = riep.move_first();ok;ok=riep.move_next()) + { + TDate dataDoc = riep.get("DOC.DATADOC").as_date(); + long cliente = riep.get("DOC.CODCF").as_int(); + TString articolo = riep.get("CODART").as_string(); + TString descr = riep.get("DESCR").as_string(); + int numeroDoc = riep.get("NDOC").as_int(); + long qta = riep.get("QTA").as_int(); + + riepilogo.add(count,cliente,articolo,descr,dataDoc,numeroDoc,qta); + count++; + } + + + TRiepBolle_report rep; + bool stampa = rep.load("lv2700a"); + TRiepBolle_recordset* riep_set = new TRiepBolle_recordset(); + rep.set_recordset(riep_set); + + int clienteOld = 0; + TString articoloOld; + int contatore = 0; + + FOR_EACH_ARRAY_ITEM(riepilogo,c,obj)//scandisce clienti e tiene + //buoni solo quelli valorizzati + { + TStruttura& s = *(TStruttura*) obj; + + if(clienteOld!=s._cliente || + articoloOld!=s._articolo) + { + riep_set->new_rec(); + + riep_set->set(0,TVariant(long (s._cliente)));//CAMPO DI ROTTURA + riep_set->set(1,TVariant(long (s._cliente))); + riep_set->set(2,TVariant(s._articolo)); + riep_set->set(3,TVariant(s._descr)); + + contatore=4; + + if(clienteOld!=s._cliente) + { + //Per ogni cliente creo una struttura di date. è necessario + //per il report. + TISAM_recordset dateDocAll("USE RDOC KEY 1 SELECT (BETWEEN(DOC.ZONA,#F_ZONA_FROM,#F_ZONA_FROM)&&(BETWEEN(DOC.DATADOC,#F_DATA_FROM,#F_DATA_TO))&&(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO)))\n" + "BY DOC.CODCF DOC.DATADOC NDOC\n" + "JOIN DOC TO RDOC ALIAS 1000 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC\n" + "FROM CODNUM='B01'\n" + "TO CODNUM='B01'"); + + //inserire parametri filtri + dateDocAll.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA)); + dateDocAll.set_var("#F_DATA_TO",mask.get_date(F_DATA_A)); + dateDocAll.set_var("#F_CODCF_FROM",TVariant(long (s._cliente))); + dateDocAll.set_var("#F_CODCF_TO",TVariant(long (s._cliente))); + dateDocAll.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA))); + + TDate dateOld; + int numeroOld=0; + int cliente=0; + int posizione = 4; + + for(bool ok = dateDocAll.move_first();ok;ok=dateDocAll.move_next()) + { + TDate dataDocTot = dateDocAll.get("DOC.DATADOC").as_date(); + int numeroDocTot = dateDocAll.get("NDOC").as_int(); + int clientDocTot = dateDocAll.get("DOC.CODCF").as_int(); + + if(dateOld !=dataDocTot || + numeroOld !=numeroDocTot || + cliente!=clientDocTot ) + { + dateOld=dataDocTot; + numeroOld=numeroDocTot; + cliente=clientDocTot; + riepilogoData.add(posizione,clientDocTot,dataDocTot,numeroDocTot); + riepilogoData2.add(posizione,clientDocTot,dataDocTot,numeroDocTot); + posizione=posizione+3; + } + } + } + + clienteOld=s._cliente; + articoloOld=s._articolo; + } + + + FOR_EACH_ARRAY_ITEM(riepilogoData,f,obj) + { + TStrutturaData& sD = *(TStrutturaData*) obj; + + //ogni primo record riporto come titolo tutte le date-numero + if(contatore==4) + { + FOR_EACH_ARRAY_ITEM(riepilogoData2,f,obj) + { + + TStrutturaData& sD2 = *(TStrutturaData*) obj; + int contatore2 = sD2._posizione; + + TString16 tt = sD2._dataDoc; + TString16 tt2 = tt.sub(0,5); + + riep_set->set(contatore2,TVariant(tt2)); + contatore2++; + riep_set->set(contatore2,TVariant(long (sD2._numeroDoc))); + contatore2++; + riep_set->set(contatore2,TVariant(long (0))); + contatore2++; + } + } + + //posizionamento qta in base alla data-numero + if(s._dataDoc==sD._dataDoc && s._numeroDoc==sD._numeroDoc) + { + contatore = sD._posizione; + + TString16 tt = s._dataDoc; + TString16 tt2 = tt.sub(0,5); + + riep_set->set(contatore,TVariant(tt2)); + contatore++; + riep_set->set(contatore,TVariant(long (s._numeroDoc))); + contatore++; + riep_set->set(contatore,TVariant(long (s._qta))); + contatore++; + + + TArray* p = (TArray*) obj; + int e = p->size(); + e=e+1; + while(72>contatore) + { + contatore++; + contatore++; + riep_set->set(contatore,TVariant(long (0))); + contatore++; + } + + break; + } + else + { + contatore++; + contatore++; + riep_set->set(contatore,TVariant(long (0))); + contatore++; + + } + } + } + + //Crea file che contiene il recordset + //riep_set->save_as("c:\\riepilogoBolla.txt"); + + if(stampa) + { + //carica tutte le variabili del report. + rep.mask2report(mask); + + TReport_book b; + bool ok = b.add(rep);// Richiede parametri di stampa in base alla maschera omonima + if (ok) + { + if (b.pages() > 0) + b.print_or_preview(); // Stampa effettivamente + else + warning_box (TR("Nessun record estratto per i parametri inseriti")); + } + } +} + +void TRiepBolle_app::main_loop() +{ + TRiepBolle_mask m; + while(m.run()==K_ENTER) + { + elabora(m); + } +} + +int lv2700(int argc, char* argv[]) +{ + TRiepBolle_app app; + app.run(argc, argv, TR("Stampa Riepilogo Bolle di Lavanderia")); + return 0; +} \ No newline at end of file diff --git a/lv/lv2700a.h b/lv/lv2700a.h new file mode 100755 index 000000000..642c8e207 --- /dev/null +++ b/lv/lv2700a.h @@ -0,0 +1,9 @@ +//Stampa Riepilogo Bolle di Lavanderie +#define F_CODCF_DA 203 +#define F_RAGSOC_DA 204 +#define F_CODCF_A 205 +#define F_RAGSOC_A 206 +#define F_DATA_DA 207 +#define F_DATA_A 208 +#define F_ZONA 209 +#define F_DESZONA 210 \ No newline at end of file diff --git a/lv/lv2700a.rep b/lv/lv2700a.rep new file mode 100755 index 000000000..1259fe911 --- /dev/null +++ b/lv/lv2700a.rep @@ -0,0 +1,285 @@ + + + Stampa Riepilogo Bolle di Lavanderia + +
+ + + MESSAGE _TODAY + + + + + + + MESSAGE _PAGENO + +
+
+
+ A + + + + + B + + + B + MESSAGE _ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,RAGSOC + + + B + MESSAGE _ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,INDCF + + + B + MESSAGE _ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,LOCALITACF + + + + E + + + H + + + K + + + N + + + Q + + + T + + + W + + + Z + + + AC + + + AF + + + AI + + + AL + + + AO + + + AR + + + AU + + + AX + + + BA + + + BD + + + BG + + + BJ + + + BM + + + BP + + + + + + + + + F + + + I + + + L + + + O + + + R + + + U + + + X + + + AA + + + AD + + + AG + + + AJ + + + AM + + + AP + + + AS + + + AV + + + AY + + + BB + + + BE + + + BH + + + BK + + + BN + + + BQ + + + + + +
+
+
+ + C + MESSAGE RESET,1000 + + + D + + + G + MESSAGE ADD,1000 + + + J + MESSAGE ADD,1000 + + + M + MESSAGE ADD,1000 + + + P + MESSAGE ADD,1000 + + + S + MESSAGE ADD,1000 + + + V + MESSAGE ADD,1000 + + + Y + MESSAGE ADD,1000 + + + AB + MESSAGE ADD,1000 + + + AE + MESSAGE ADD,1000 + + + AH + MESSAGE ADD,1000 + + + AK + MESSAGE ADD,1000 + + + AN + MESSAGE ADD,1000 + + + AQ + MESSAGE ADD,1000 + + + AT + MESSAGE ADD,1000 + + + AW + MESSAGE ADD,1000 + + + AZ + MESSAGE ADD,1000 + + + BC + MESSAGE ADD,1000 + + + BF + MESSAGE ADD,1000 + + + BI + MESSAGE ADD,1000 + + + BL + MESSAGE ADD,1000 + + + BO + MESSAGE ADD,1000 + + + BR + MESSAGE ADD,1000 + + +
+
+
+
+ \ No newline at end of file diff --git a/lv/lv2700a.uml b/lv/lv2700a.uml new file mode 100755 index 000000000..ec2989047 --- /dev/null +++ b/lv/lv2700a.uml @@ -0,0 +1,124 @@ +#include "lv2700a.h" + +TOOLBAR "topbar" 0 0 0 2 +#include "printbar.h" +ENDPAGE + +PAGE "Riepilogo Bolle di Lavanderie" -1 -1 40 5 + +GROUPBOX DLG_NULL 80 4 +BEGIN + PROMPT 1 1 "@b Parametri Cliente" +END + +NUMBER F_CODCF_DA 6 +BEGIN + PROMPT 2 2 "Da Cliente " + FLAGS "U" + KEY 1 + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_DA + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + OUTPUT F_CODCF_DA CODCF + OUTPUT F_RAGSOC_DA RAGSOC + FIELD #F_CODCF_FROM +END + +STRING F_RAGSOC_DA 50 +BEGIN + PROMPT 25 2 "" + KEY 2 + USE LF_CLIFO KEY 2 + INPUT TIPOCF "C" + INPUT RAGSOC F_RAGSOC_DA + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + OUTPUT F_CODCF_DA CODCF + OUTPUT F_RAGSOC_DA RAGSOC +END + +NUMBER F_CODCF_A 6 +BEGIN + PROMPT 2 3 "A Cliente " + FLAGS "U" + KEY 1 + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_A + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + OUTPUT F_CODCF_A CODCF + OUTPUT F_RAGSOC_A RAGSOC + FIELD #F_CODCF_TO +END + +STRING F_RAGSOC_A 50 +BEGIN + PROMPT 25 3 "" + KEY 2 + USE LF_CLIFO KEY 2 + INPUT TIPOCF "C" + INPUT RAGSOC F_RAGSOC_A + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + OUTPUT F_CODCF_A CODCF + OUTPUT F_RAGSOC_A RAGSOC +END + +GROUPBOX DLG_NULL 80 3 +BEGIN + PROMPT 1 5 "@b Parametri Data" +END + +DATE F_DATA_DA +BEGIN +PROMPT 2 6 "Da Data " +FLAGS "A" +FIELD #F_DATA_FROM +END + +DATE F_DATA_A +BEGIN +PROMPT 40 6 "A Data " +FLAGS "A" +FIELD #F_DATA_TO +VALITATE DATE_CMP_FUNC >= F_DATA_DA +WARNING "La data finale deve essere successiva a quella iniziale" +END + +GROUPBOX DLG_NULL 80 3 +BEGIN + PROMPT 1 8 "@b Parametri Zona" +END + +STRING F_ZONA 2 +BEGIN + PROMPT 2 9 "Codice Zona" + USE ZON + INPUT CODTAB F_ZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_ZONA CODTAB + OUTPUT F_DESZONA S0 + CHECKTYPE NORMAL + FIELD #F_ZONA_FROM +END + +STRING F_DESZONA 50 +BEGIN + PROMPT 20 9 "" + USE ZON KEY 2 + INPUT CODTAB F_ZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_ZONA CODTAB + OUTPUT F_DESZONA S0 +END + + +ENDPAGE +ENDMASK + + diff --git a/lv/lvbolla.rep b/lv/lvbolla.rep new file mode 100755 index 000000000..6a29728e8 --- /dev/null +++ b/lv/lvbolla.rep @@ -0,0 +1,404 @@ + + + bolla lavanderia + +
+ + + + + MESSAGE _PAGENO + + + + 33.DATADOC + + + + 33.NDOC + + + + MESSAGE _CLIENTE,COFI + + + + 33.CODCF + + + MESSAGE _CLIENTE,PAIV + + + + MESSAGE _CLIENTE,!RAGSOC + + + MESSAGE _CLIENTE,!INDNUM + + + MESSAGE _CLIENTE,LOCALITACF + + + MESSAGE _CLIENTE,!CAP + + + + + + + + 210@.S0 + + + MESSAGE _CLIENTE,STATOPAIV + + + 20.TEL + + + + + + 11 + + + 11 + 16.LOCALITA + + + 16.CAP + + + + + + + + 11 + 16.RAGSOC + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ !((34.TIPORIGA='08')) + + + + 34.CODAGG1 + + + 34.QTAGG1 + + + 34.PREZZO + + + + + 34.CODART + + + MESSAGE _DESCRIGA + + + + 30 + 34.QTA + MESSAGE _ALIGN,#52,TOP + +
+
+ + + + +
+
+ + 207@.S0 + + + CODSPMEZZO + +
  • +
  • +
  • +
  • + + + + + + + + + + + + + + ORAPART + + + DATAPART + + + 206@.S0 + + + IF(33.PNETTO=0,TOTPESO,33.PNETTO) + + + IF(33.NCOLLI=0,TOTCOLLI,33.NCOLLI) + + + IF(33.NBANC=0,TOTBANC,33.NBANC) + + + 33.NOTE + + + 203@.S0 + +
  • + USE 33 +JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC +JOIN %CAU TO 34 ALIAS 1000 INTO CODTAB==CODAGG1 +JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 13 TO 16 INTO STATO=STATO COM=COM +JOIN 47 TO 34 INTO CODART==CODART +JOIN 122 TO 33 INTO CODAGE==CODAG +JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO +JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 +JOIN %ABE TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 +JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP +JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA +JOIN %VAL TO 33 ALIAS 209 INTO CODTAB==CODVAL +JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC +JOIN %MSP TO 33 ALIAS 211 INTO CODTAB==CODSPMEZZO +JOIN GCA TO 34 ALIAS 212 INTO CODTAB==3+CODART[7,12] +JOIN GCA TO 34 ALIAS 213 INTO CODTAB==5+CODART[17,18] + + \ No newline at end of file diff --git a/lv/lvmenu.men b/lv/lvmenu.men index ddb3bd903..b45cd5b98 100755 --- a/lv/lvmenu.men +++ b/lv/lvmenu.men @@ -73,6 +73,7 @@ Flags = "" Item_01 = "Contratti per cliente", "lv0 -1 lv0400c", "F" Item_02 = "Passaggi per cliente", "lv0 -1 lv0500c", "F" Item_03 = "Periodi di sospensione", "lv0 -1 lv0500d", "F" +Item_04 = "Elenco Clienti per Articolo", "lv0 -1 lv0400d", "F" [LVMENU_030] Caption = "Giri" @@ -96,7 +97,7 @@ Caption = "Stampe" Picture = Module = 41 Flags = "" -Item_01 = "Giri del giorno", "lv0 -1 lv2200c", "F" +Item_01 = "Giri", "lv2 -2 lv2300a", "F" [LVMENU_040] Caption = "Documenti" @@ -108,3 +109,11 @@ Item_02 = "Documenti di Trasporto", "lv3 -0 -filtI1=1 -defNUM_GEN,TIPODOC_GEN,lv Item_03 = "Fatture", "ve0 -1 -filtI1=2 -defNUM_FAT,TIPODOC_FAT,lv", "F" Item_04 = "Ordini Fornitori", "ve0 -1 -filtI1=3 -defNUM_ORF,TIPODOC_ORF,lv", "F" Item_05 = "Ordini Clienti", "ve0 -1 -filtI1=3 -defNUM_ORC,TIPODOC_ORC,lv", "F" +Item_06 = "Stampe", [LVMENU_050] + +[LVMENU_050] +Caption = "Stampe" +Picture = +Module = 41 +Flags = "" +Item_01 = "Riepilogo Bolle di Lavanderie", "lv2 -6 lv2700a", "F"