diff --git a/cg/cg1500.cpp b/cg/cg1500.cpp index bba11e54e..6e44a130b 100755 --- a/cg/cg1500.cpp +++ b/cg/cg1500.cpp @@ -141,6 +141,8 @@ class TStampa_bilanci : public TPrintapp TString _cdc, _fsc; + TBill _bill_from, _bill_to; + TArray _clienti, _fornitori; public: @@ -1308,7 +1310,18 @@ bool TStampa_bilanci::bil_verifica() prg_gruppo_avere = ZERO; _u_max = 0l; - for (_pcn->first(); !_pcn->eof(); _pcn->next()) + //controllo sui gr/co/sc selezionati + if (_bill_from.gruppo() > 0) //se ho un gruppo iniziale valido... + { + _pcn->put(PCN_GRUPPO,_bill_from.gruppo()); //lo metto nel file del pianodeiconticorrente.. + _pcn->put(PCN_CONTO,_bill_from.conto()); //un valore alla volta + _pcn->put(PCN_SOTTOCONTO,_bill_from.sottoconto()); + _pcn->read(_isgteq); //..e la scansione del file _pcn parte da questo + } + else + _pcn->first(); //..se non e' stato selezionato nessun gruppo parto dal primo + + for ( ; !_pcn->eof(); _pcn->next()) { _prog->addstatus(1); g = _pcn->get_int (PCN_GRUPPO); @@ -1439,7 +1452,12 @@ bool TStampa_bilanci::bil_verifica() continue; } } - + + //controlla se e' arrivato all'ultimo gruppo/conto/sottoconto selezionato + const TBill curr_bill(g,c,s); + if (curr_bill > _bill_to) + break; + if ( (c == 0) || (s == 0) ) { esiste_sc = FALSE; @@ -3711,7 +3729,7 @@ void TStampa_bilanci::leggi_pcon() void TStampa_bilanci::stampa_un_bilancio(const TMask& m) { _prog = NULL; - if (_bilancio == 1) + if (_bilancio == 1) //bilancio a sezioni contrapposte { printer().footerlen(3); _prog = new TProgind(_pcn->items(),TR("Elaborazione in corso..."),FALSE); @@ -3737,12 +3755,12 @@ void TStampa_bilanci::stampa_un_bilancio(const TMask& m) } bil_sez_contr(); } - else + else //bilancio di verifica (tipo 1,2,3) { printer().footerlen(5); _stampa_width = (m.get_int(F_MODULO) == 1) ? 132 : 148; //perche' questo e' in realta' il margine dx (vedi es. di stampa AS/400) - - _verifica = m.get_int(F_VERIFICA); + + _verifica = m.get_int(F_VERIFICA); //tipo di bilancio di verifica da stampare if ( (_verifica == 1)||(_verifica == 2) ) _prog = new TProgind(_pcn->items(),TR("Elaborazione in corso..."),FALSE); _tipo_stampa1 = m.get_int(F_STAMPA1); @@ -3755,7 +3773,7 @@ void TStampa_bilanci::stampa_un_bilancio(const TMask& m) _datada = m.get(F_DATADA); _dataa = m.get(F_DATAA); } - if ((_verifica == 1)||(_verifica == 2)) + if ((_verifica == 1)||(_verifica == 2)) //bilancio di verifica:1bilancio,2saldi mastro { _stampav = atoi(m.get(F_STAMPAV)); bil_verifica(); @@ -3806,7 +3824,25 @@ bool TStampa_bilanci::set_print(int) _quadratura = m.get_bool(F_QUADRATURA); _hide_clifo = m.get_bool(F_HIDE_CLIFO); _noseparator = m.get_bool(F_SEPARATOR); - + + //qui getti le terne dei 2 conti da mettere in bill_from e bill_to con un metodo dei TBill + _bill_from.get(m, F_DA_GRUPPO, F_DA_CONTO, F_DA_SOTTOCONTO); + _bill_to.get(m, F_A_GRUPPO, F_A_CONTO, F_A_SOTTOCONTO); + + //se non e' stato riempito il gruppo TO, si mette di default il max del gr/co/so + if (_bill_to.gruppo() == 0) + _bill_to.set(999, 999, 999999L); + else + { //se invece il gruppo c'e' ma il conto no... + if (_bill_to.conto() == 0) + _bill_to.set(_bill_to.gruppo(), 999, 999999L); //il gruppo e' quello selezionato + else + { + if (_bill_to.sottoconto() == 0) //se mancasse solo il sottoconto.. + _bill_to.set(_bill_to.gruppo(), _bill_to.conto(), 999999L); + } + } + if (m.field(F_DACDC).active() && (m.get(F_DACDC).not_empty() || m.get(F_ACDC).not_empty())) { TRelation cdcrel("CMS"); diff --git a/cg/cg1500.h b/cg/cg1500.h index 4831c240b..4cc905b9d 100755 --- a/cg/cg1500.h +++ b/cg/cg1500.h @@ -1,34 +1,42 @@ #ifndef __CG1500_H #define __CG1500_H -#define F_CODDITTA 101 -#define F_DATASTAMPA 102 -#define F_RAGSOC 104 -#define F_BILANCIO 105 -#define F_ANNO 106 -#define F_STAMPA 107 -#define F_STAMPA1 108 -#define F_DATALIM 109 -#define F_TOTALI 110 -#define F_CODICI 111 -#define F_SALDO 112 -#define F_VERIFICA 113 -#define F_STAMPAV 114 -#define F_DATADA 115 -#define F_DATAA 116 -#define F_SITUAZIONE 118 -#define F_STAMPAC 119 -#define F_ORDINAMENTO 120 -#define F_MODULO 121 -#define F_STAMPAMPROV 122 -#define F_QUADRATURA 123 -#define F_SEPARATOR 124 -#define F_PICTURE 125 -#define F_DACDC 126 -#define F_DAFSC 127 -#define F_ACDC 128 -#define F_AFSC 129 -#define F_HIDE_CLIFO 130 +#define F_CODDITTA 101 +#define F_DATASTAMPA 102 +#define F_RAGSOC 104 +#define F_BILANCIO 105 +#define F_ANNO 106 +#define F_STAMPA 107 +#define F_STAMPA1 108 +#define F_DATALIM 109 +#define F_TOTALI 110 +#define F_CODICI 111 +#define F_SALDO 112 +#define F_VERIFICA 113 +#define F_STAMPAV 114 +#define F_DATADA 115 +#define F_DATAA 116 +#define F_SITUAZIONE 118 +#define F_STAMPAC 119 +#define F_ORDINAMENTO 120 +#define F_MODULO 121 +#define F_STAMPAMPROV 122 +#define F_QUADRATURA 123 +#define F_SEPARATOR 124 +#define F_PICTURE 125 +#define F_DACDC 126 +#define F_DAFSC 127 +#define F_ACDC 128 +#define F_AFSC 129 +#define F_HIDE_CLIFO 130 +#define F_DA_GRUPPO 132 +#define F_DA_CONTO 133 +#define F_DA_SOTTOCONTO 134 +#define F_DA_DESCRIZIONE 135 +#define F_A_GRUPPO 136 +#define F_A_CONTO 137 +#define F_A_SOTTOCONTO 138 +#define F_A_DESCRIZIONE 139 #endif // __CG1500_H diff --git a/cg/cg1500a.uml b/cg/cg1500a.uml index bdca00a6f..310a7291a 100755 --- a/cg/cg1500a.uml +++ b/cg/cg1500a.uml @@ -302,6 +302,129 @@ BEGIN ITEM "2|Alfabetico" END +GROUPBOX DLG_NULL 55 6 +BEGIN + PROMPT 2 13 "@bSelezione sui conti" +END + +NUMBER F_DA_GRUPPO 3 +BEGIN + PROMPT 3 14 "Da: Gruppo " + USE LF_PCON KEY 1 SELECT (CONTO="") + INPUT GRUPPO F_DA_GRUPPO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_DA_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_DA_CONTO 3 +BEGIN + PROMPT 23 14 "Conto " + USE LF_PCON KEY 1 SELECT (SOTTOCONTO="") + INPUT GRUPPO F_DA_GRUPPO + INPUT CONTO F_DA_CONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_DA_CONTO CONTO + OUTPUT F_DA_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_DA_SOTTOCONTO 6 +BEGIN + PROMPT 36 14 "Sottoconto " + USE LF_PCON + INPUT GRUPPO F_DA_GRUPPO + INPUT CONTO F_DA_CONTO + INPUT SOTTOCONTO F_DA_SOTTOCONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_DA_SOTTOCONTO SOTTOCONTO + OUTPUT F_DA_GRUPPO GRUPPO + OUTPUT F_DA_CONTO CONTO + OUTPUT F_DA_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +STRING F_DA_DESCRIZIONE 50 +BEGIN + PROMPT 3 15 "" + USE LF_PCON KEY 2 + INPUT DESCR F_DA_DESCRIZIONE + DISPLAY "Descrizione@50" DESCR + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + OUTPUT F_DA_SOTTOCONTO SOTTOCONTO + OUTPUT F_DA_CONTO CONTO + OUTPUT F_DA_GRUPPO GRUPPO + OUTPUT F_DA_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +NUMBER F_A_GRUPPO 3 +BEGIN + PROMPT 3 16 "A: Gruppo " + USE LF_PCON KEY 1 SELECT (CONTO="") + INPUT GRUPPO F_A_GRUPPO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_A_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_A_CONTO 3 +BEGIN + PROMPT 23 16 "Conto " + USE LF_PCON KEY 1 SELECT (SOTTOCONTO="") + INPUT GRUPPO F_A_GRUPPO + INPUT CONTO F_A_CONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_A_CONTO CONTO + OUTPUT F_A_GRUPPO GRUPPO + CHECKTYPE NORMAL +END + +NUMBER F_A_SOTTOCONTO 6 +BEGIN + PROMPT 36 16 "Sottoconto " + USE LF_PCON + INPUT GRUPPO F_A_GRUPPO + INPUT CONTO F_A_CONTO + INPUT SOTTOCONTO F_A_SOTTOCONTO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_A_SOTTOCONTO SOTTOCONTO + OUTPUT F_A_GRUPPO GRUPPO + OUTPUT F_A_CONTO CONTO + OUTPUT F_A_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + +STRING F_A_DESCRIZIONE 50 +BEGIN + PROMPT 3 17 "" + USE LF_PCON KEY 2 + INPUT DESCR F_A_DESCRIZIONE + DISPLAY "Descrizione@50" DESCR + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + OUTPUT F_A_SOTTOCONTO SOTTOCONTO + OUTPUT F_A_CONTO CONTO + OUTPUT F_A_GRUPPO GRUPPO + OUTPUT F_A_DESCRIZIONE DESCR + CHECKTYPE NORMAL +END + ENDPAGE ENDMASK \ No newline at end of file