From da5941233ed384e2159e910f1783f4b2558ce71e Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Tue, 29 Jun 2021 11:10:04 +0200 Subject: [PATCH] Patch level : 12.0 1066 Files correlati : ce3.exe ce3900.msk rimosso ce3900b.rep Commento : Modificato i flag di ordinamento e di totale nella stampa registro sintetico. Interno : Controllare i totali visto che ho dovuto modicae il modo di calcolarlo. --- src/ce/ce3900.cpp | 83 ++++++++++++++++++---------------------------- src/ce/ce3900.h | 18 +++++----- src/ce/ce3900.uml | 70 ++++++++++++++++++++++++-------------- src/ce/ce3900a.rep | 83 +++++++++++++++------------------------------- 4 files changed, 113 insertions(+), 141 deletions(-) diff --git a/src/ce/ce3900.cpp b/src/ce/ce3900.cpp index eff401b44..fafd6d453 100755 --- a/src/ce/ce3900.cpp +++ b/src/ce/ce3900.cpp @@ -151,26 +151,20 @@ void TStampa_sintetica_recordset::set_filter(const TStampa_sintetica_mask& msk) } //ordinamenti - const int sort_type = msk.get_int(F_SORT); - - if (sort_type & SORT_CAT) - { - query << "\nBY "; - if (sort_type & SORT_DATACOMP) - query << "CODCAT|CODIMP|CODLOC|DTCOMP|IDCESPITE"; - else - query << "CODCAT|CODIMP|CODLOC|IDCESPITE"; - } - else - { - query << "\nBY "; - if (sort_type & SORT_DATACOMP) - query << "CODIMP|CODLOC|DTCOMP|IDCESPITE"; - else - query << "CODIMP|CODLOC|IDCESPITE"; - } + TToken_string order("", '|'); + query << "\nBY "; + if (msk.get_bool(F_SORTCAT)) + order.add("CODCAT"); + if (msk.get_bool(F_SORTIMP)) + order.add("CODIMP"); + if (msk.get_bool(F_SORTLOC)) + order.add("CODLOC"); + if (msk.get_bool(F_SORTCOMP)) + order.add("DTCOMP"); + order.add("IDCESPITE"); + query << order; //setta la nuova complicata query nel report (che avrebbe solo USE CESPI) set(query); @@ -191,7 +185,6 @@ class TStampa_sintetica_rep : public TReport { int _anno; int _tpamm; - int _group_codimp, _group_codloc; TCespite _cespite; protected: @@ -204,13 +197,28 @@ public: void TStampa_sintetica_rep::set_filter(const TStampa_sintetica_mask& msk) { - _anno = msk.get_int(F_ESERCIZIO); - _tpamm = msk.get_int(F_SITUAZIONE); + const bool shcat = (!msk.excel()) && msk.get_bool(F_TOTCAT); + const bool shimp = (!msk.excel()) && msk.get_bool(F_TOTIMP); + const bool shloc = (!msk.excel()) && msk.get_bool(F_TOTLOC); - _group_codimp = msk.get_bool(F_GROUP_CODIMP); - _group_codloc = msk.get_bool(F_GROUP_CODLOC); + section('H', 2).show(shcat); + section('H', 3).show(shimp); + section('H', 4).show(shloc); + section('F', 2).show(shcat); + section('F', 3).show(shimp); + section('F', 4).show(shloc); + + section('H', 2).group_by(shcat ? section('H', 2).grouped_by() : ""); + section('H', 3).group_by(shimp ? section('H', 3).grouped_by() : ""); + section('H', 4).group_by(shloc ? section('H', 4).grouped_by() : ""); + + + section('H', 2).force_page_break(msk.get_bool(F_BREAK)); + _anno = msk.get_int(F_ESERCIZIO); + _tpamm = msk.get_int(F_SITUAZIONE); TStampa_sintetica_recordset* rs = new TStampa_sintetica_recordset(EMPTY_STRING); + set_recordset(rs); rs->set_filter(msk); } @@ -278,16 +286,6 @@ bool TStampa_sintetica_rep::get_usr_val(const TString& name, TVariant& var) cons } return true; } - if (name == "#GROUP_CODIMP") - { - var.set(_group_codimp); - return true; - } - if (name == "#GROUP_CODLOC") - { - var.set(_group_codloc); - return true; - } if (name == "#QAMMMV") //quote ammortamento su movimento esercizio corrente { real quote_ammmv; @@ -415,26 +413,9 @@ void TStampa_sintetica::main_loop() //report e book dei report TReport_book book; TStampa_sintetica_rep rep; - const int sort_type = mask.get_int(F_SORT); - - if (sort_type & SORT_CAT) - { - rep.load("ce3900a"); - rep.section('H', 2).force_page_break(mask.get_bool(F_BREAK)); - } - else - rep.load("ce3900b"); + rep.load("ce3900a"); rep.set_filter(mask); - if (mask.excel()) - { - rep.section('H', 2).hide(); - rep.section('H', 3).hide(); - rep.section('H', 4).hide(); - rep.section('F', 2).hide(); - rep.section('F', 3).hide(); - rep.section('F', 4).hide(); - } book.add(rep); //stampa il book dei report diff --git a/src/ce/ce3900.h b/src/ce/ce3900.h index b57e1e51a..37e8f8540 100755 --- a/src/ce/ce3900.h +++ b/src/ce/ce3900.h @@ -14,18 +14,16 @@ #define F_D_TO_CAT 115 #define F_SITUAZIONE 116 -#define F_GROUP_CODIMP 117 -#define F_GROUP_CODLOC 118 #define F_EXCLUDE_ALIENS 119 #define F_CALCOLO 120 -/*#define F_CODCMS 120 -#define F_DESCMS 121 -#define F_CODFASE 122 -#define F_DESFASE 123 -#define F_CODCDC 124 -#define F_DESCDC 125*/ +#define F_TOTCAT 121 +#define F_TOTIMP 122 +#define F_TOTLOC 123 #define F_REPORT 126 -#define F_SORT 127 -#define F_BREAK 128 +#define F_SORTCAT 127 +#define F_SORTIMP 128 +#define F_SORTLOC 129 +#define F_SORTCOMP 130 +#define F_BREAK 131 diff --git a/src/ce/ce3900.uml b/src/ce/ce3900.uml index 25011a2c9..601451a8a 100755 --- a/src/ce/ce3900.uml +++ b/src/ce/ce3900.uml @@ -132,46 +132,70 @@ BEGIN FLAGS "Z" END -GROUPBOX DLG_NULL 39 3 -BEGIN - PROMPT 1 13 "@bRaggruppamenti" +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 0 13 "@bOrdinamento per" END -BOOLEAN F_GROUP_CODIMP +BOOLEAN F_SORTCAT BEGIN - PROMPT 2 14 "Per impianto " - MESSAGE FALSE CLEAR,F_GROUP_CODLOC - MESSAGE TRUE ENABLE,F_GROUP_CODLOC + PROMPT 1 14 "Categoria" + MESSAGE TRUE ENABLE,F_TOTCAT|"X",F_TOTCAT + MESSAGE FALSE CLEAR,F_TOTCAT END -BOOLEAN F_GROUP_CODLOC +BOOLEAN F_SORTIMP BEGIN - PROMPT 20 14 "Per localita' " + PROMPT 14 14 "Impianto" + MESSAGE TRUE ENABLE,F_TOTIMP|"X",F_TOTIMP + MESSAGE FALSE CLEAR,F_TOTIMP + END + +BOOLEAN F_SORTLOC +BEGIN + PROMPT 28 14 "Località" + MESSAGE TRUE ENABLE,F_TOTLOC|"X",F_TOTLOC + MESSAGE FALSE CLEAR,F_TOTLOC +END + +BOOLEAN F_SORTCOMP +BEGIN + PROMPT 42 14 "Completamento" +END + +GROUPBOX DLG_NULL 40 3 +BEGIN + PROMPT 0 16 "@bTotali per" +END + +BOOLEAN F_TOTCAT +BEGIN + PROMPT 1 17 "Categoria" +END + +BOOLEAN F_TOTIMP +BEGIN + PROMPT 14 17 "Impianto" +END + +BOOLEAN F_TOTLOC +BEGIN + PROMPT 28 17 "Località" END GROUPBOX DLG_NULL 38 3 BEGIN - PROMPT 41 13 "@bEsclusioni" + PROMPT 41 16 "@bEsclusioni" END BOOLEAN F_EXCLUDE_ALIENS BEGIN - PROMPT 42 14 "Escludere i cespiti alienati" + PROMPT 42 17 "Cespiti alienati" END BOOLEAN F_CALCOLO BEGIN - PROMPT 2 16 "Esegui calcolo ammortamenti prima di stampare" -END - -RADIOBUTTON F_SORT 78 -BEGIN - PROMPT 1 17 "@bOrdinamento" - ITEM "2|Categoria+Cespite" MESSAGE ENABLE,F_BREAK - ITEM "0|Cespite" MESSAGE CLEAR,F_BREAK - ITEM "3|Categoria+Completamento" MESSAGE ENABLE,F_BREAK - ITEM "1|Completamento" MESSAGE CLEAR,F_BREAK - FLAGS "Z" + PROMPT 2 19 "Esegui calcolo ammortamenti prima di stampare" END BOOLEAN F_BREAK @@ -180,7 +204,5 @@ BEGIN FLAGS "Z" END - ENDPAGE - ENDMASK diff --git a/src/ce/ce3900a.rep b/src/ce/ce3900a.rep index 45d037511..ce606b0c1 100755 --- a/src/ce/ce3900a.rep +++ b/src/ce/ce3900a.rep @@ -27,8 +27,6 @@