From 6c568d83a0e6d8885ecf48ffa1f78d959b81e8b8 Mon Sep 17 00:00:00 2001 From: guy Date: Mon, 13 Oct 2003 14:51:28 +0000 Subject: [PATCH] Patch level : 2.0 600 Files correlati : cm0.exe cm0100a.frm Ricompilazione Demo : [ ] Commento : Corretta stampa conti per commessa: ora stampa la sezione D/A degli importi e d ei realtivi totali. git-svn-id: svn://10.65.10.50/trunk@11487 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cm/cm0100.cpp | 42 ++++++++++++++++++++++---------- cm/cm0100.h | 5 ++++ cm/cm0100a.frm | 65 ++++++++++++++++++++++++++++++++------------------ cm/cm0100a.uml | 4 ++-- 4 files changed, 79 insertions(+), 37 deletions(-) diff --git a/cm/cm0100.cpp b/cm/cm0100.cpp index d34ca787b..57d13077b 100755 --- a/cm/cm0100.cpp +++ b/cm/cm0100.cpp @@ -110,7 +110,7 @@ bool TContixcdc_mask::on_field_event(TOperable_field& o, TField_event e, long jo case F_DATAINI: if (e == fe_modify || e == fe_close) { - TDate dataini(field(F_DATAINI).get()); + TDate dataini(get(F_DATAINI)); if (dataini.ok()) { TDate datainies = cache().get("ESC", field(F_ANNO).get(), "D0"); @@ -122,7 +122,7 @@ bool TContixcdc_mask::on_field_event(TOperable_field& o, TField_event e, long jo case F_DATAFIN: if (e == fe_modify || fe_close) { - TDate datafin(field(F_DATAFIN).get()); + TDate datafin(get(F_DATAFIN)); if (datafin.ok()) { TDate datafines = cache().get("ESC", field(F_ANNO).get(), "D1"); @@ -186,12 +186,13 @@ protected: void print_footer_fsc(); void print_header_fsc(); void set_intestazione(); + void fill_importo(const TImporto& imp, short id_imp, short id_sez); void fill_body(const TTotali& tot); //riempie il campo body con tutti i totali void print_body(); //stampa effettivamente il body void set_field(int id, const real& val); //mette in un campo del body odd un valore numerico void set_field(int id, const char* val); //mette in un campo del body odd una stringa void print_specialsection(char s, pagetype pos); // stampa una sezione qualunque ( - void aggiorna_totali(const TImporto importo, const TDate data); + void aggiorna_totali(const TImporto& importo, const TDate& data); public: TContixCdc() {} @@ -354,17 +355,36 @@ void TContixCdc::set_field(int id, const char* val) _form->find_field('B', odd_page, id).set(val); } +void TContixCdc::fill_importo(const TImporto& importo, short id_imp, short id_sez) +{ + if (!importo.is_zero()) + { + TImporto imp(importo); + imp.normalize(); + set_field(id_imp, imp.valore()); + char sez[2] = { imp.sezione(), '\0' }; + set_field(id_sez, sez); + } + else + { + set_field(id_imp, ""); + set_field(id_sez, ""); + } +} + void TContixCdc::fill_body(const TTotali& tot) { // riempie il body odd, contenente i totali; lo fa chiamando la set_field per ogni campo - set_field(FR_PROGPREC, tot._tot_progprec.valore()); - set_field(FR_PERIODO, tot._tot_periodo.valore()); - real tempval1 = tot._tot_progprec.valore()+tot._tot_periodo.valore(); - set_field(FR_PROG, tempval1); - set_field(FR_SALDOATT, tot._tot_saldoatt.valore()); + fill_importo(tot._tot_progprec, FR_PROGPREC, FR_SEGNO_PROGPREC); + fill_importo(tot._tot_periodo, FR_PERIODO, FR_SEGNO_PERIODO); + + TImporto tempval = tot._tot_progprec; tempval += tot._tot_periodo; + fill_importo(tempval, FR_PROG, FR_SEGNO_PROG); + + fill_importo(tot._tot_saldoatt, FR_SALDOATT, FR_SEGNO_SALDOATT); } -void TContixCdc::aggiorna_totali(const TImporto importo, const TDate data) +void TContixCdc::aggiorna_totali(const TImporto& importo, const TDate& data) { if (data < _dataini) _t_sottoc._tot_progprec+=importo; @@ -425,8 +445,6 @@ void TContixCdc::main_loop() if (dacdc.empty() && acdc.empty()) filtro << " && " << "(CODCMS!=\"\")"; TRectype darec(LF_RMOV), arec(LF_RMOV); - darec.zero(); - arec.zero(); darec.put(RMV_GRUPPO, _mask->get_int(F_GRUPPOINI)); darec.put(RMV_CONTO, _mask->get_int(F_CONTOINI)); darec.put(RMV_SOTTOCONTO, _mask->get_long(F_SOTTOCINI)); @@ -474,7 +492,7 @@ void TContixCdc::main_loop() _currgruppo = rmovrec.get_int(RMV_GRUPPO); _currconto = rmovrec.get_int(RMV_CONTO); TDate datareg = rmovrec.get_date(RMV_DATAREG); - TImporto importo(rmovrec.get_char(RMV_SEZIONE), rmovrec.get_real(RMV_IMPORTO)); + const TImporto importo(rmovrec.get_char(RMV_SEZIONE), rmovrec.get_real(RMV_IMPORTO)); if ((_oldcms != _currcms) || (_oldfsc != _currfsc) || (_oldgruppo != _currgruppo) || (_oldconto != _currconto) || (_oldsottoc != _currsottoc)) { print_sottoc(); diff --git a/cm/cm0100.h b/cm/cm0100.h index 3708da2d2..2f3ed10da 100755 --- a/cm/cm0100.h +++ b/cm/cm0100.h @@ -21,3 +21,8 @@ #define FR_PERIODO 36 #define FR_PROG 37 #define FR_SALDOATT 38 + +#define FR_SEGNO_PROGPREC 45 +#define FR_SEGNO_PERIODO 46 +#define FR_SEGNO_PROG 47 +#define FR_SEGNO_SALDOATT 48 diff --git a/cm/cm0100a.frm b/cm/cm0100a.frm index 3c6e2938c..4332c4bb1 100755 --- a/cm/cm0100a.frm +++ b/cm/cm0100a.frm @@ -36,7 +36,7 @@ END NUMERO 4 7 BEGIN KEY "Nr. pagina" - PROMPT 120 1 "Pagina " + PROMPT 120 1 "Pag. " MESSAGE _PAGENO END @@ -96,49 +96,49 @@ SECTION HEADER ODD 5 STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 1 2 "------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 1 "____________________________________________________________________________________________________________________________________" END STRINGA FR_CMS 20 BEGIN KEY "Codice commessa" - PROMPT 1 3 "@bCDC/Commessa " + PROMPT 1 2 "@bCDC/Commessa " END STRINGA FR_D_CMS 50 BEGIN KEY "Descrizione commessa" - PROMPT 35 3 "@b" + PROMPT 35 2 "@b" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 70 4 " Progr. prec." + PROMPT 68 3 "Progr. prec." END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 85 4 " Tot. periodo" + PROMPT 85 3 "Tot. periodo" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 100 4 " Tot. progr." + PROMPT 103 3 "Tot. progr." END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 115 4 " Saldo attuale" + PROMPT 118 3 "Saldo attuale" END STRINGA -1 BEGIN KEY "Intestazione stampa" - PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 4 "____________________________________________________________________________________________________________________________________" END END // section header odd @@ -166,52 +166,71 @@ SECTION BODY ODD 1 NUMERO FR_GRUPPO 3 BEGIN KEY "Gruppo" - PROMPT 5 1 "" + PROMPT 1 1 "" END NUMERO FR_CONTO 3 BEGIN KEY "Conto" - PROMPT 9 1 "" + PROMPT 5 1 "" END NUMERO FR_SOTTOC 6 BEGIN KEY "Gruppo/Conto/Sottoconto" - PROMPT 13 1 "" + PROMPT 9 1 "" END - -STRINGA FR_D_SOTTOC 48 +STRINGA FR_D_SOTTOC 47 BEGIN - KEY "Descrizione sottoconto" - PROMPT 20 1 "" + KEY "Descrizione sottoconto" + PROMPT 16 1 "" END VALUTA FR_PROGPREC 14 BEGIN - PROMPT 70 1 "" - PICTURE "." + PROMPT 66 1 "" + PICTURE "." +END + +STRINGA FR_SEGNO_PROGPREC 1 +BEGIN + PROMPT 81 1 "" END VALUTA FR_PERIODO 14 BEGIN - PROMPT 85 1 "" - PICTURE "." + PROMPT 83 1 "" + PICTURE "." +END + +STRINGA FR_SEGNO_PERIODO 1 +BEGIN + PROMPT 98 1 "" END VALUTA FR_PROG 14 BEGIN PROMPT 100 1 "" - PICTURE "." + PICTURE "." END -VALUTA FR_SALDOATT 14 +STRINGA FR_SEGNO_PROG 1 BEGIN PROMPT 115 1 "" - PICTURE "." +END + +VALUTA FR_SALDOATT 14 +BEGIN + PROMPT 117 1 "" + PICTURE "." END +STRINGA FR_SEGNO_SALDOATT 1 +BEGIN + PROMPT 132 1 "" +END + END // section body END // form diff --git a/cm/cm0100a.uml b/cm/cm0100a.uml index f035ec02a..b2617a0ef 100755 --- a/cm/cm0100a.uml +++ b/cm/cm0100a.uml @@ -170,7 +170,7 @@ BEGIN OUTPUT F_CONTOINI CONTO OUTPUT F_SOTTOCINI SOTTOCONTO OUTPUT F_DESCRINI DESCR - CHECKTYPE NORMAL + CHECKTYPE SEARCH ADD RUN cg0 -0 END @@ -225,7 +225,7 @@ BEGIN OUTPUT F_CONTOFIN CONTO OUTPUT F_SOTTOCFIN SOTTOCONTO OUTPUT F_DESCRFIN DESCR - CHECKTYPE NORMAL + CHECKTYPE SEARCH WARNING "Sottoconto inesistente o mancante" ADD RUN cg0 -0 END