diff --git a/at/at3600.cpp b/at/at3600.cpp index 19a3f519d..8e1f1daea 100755 --- a/at/at3600.cpp +++ b/at/at3600.cpp @@ -89,7 +89,7 @@ class TStatDonGrRh : public TApplication TLocalisamfile* _donaz; TLocalisamfile* _atstatd; TDate _dataini, _datafin; - TString16 _tipodon; + TString16 _tipodon1, _tipodon2, _tipodon3, _tipodon4, _tipodon5; TAssoc_array* _colonne; TArray _righe; // array per riepilogo donazioni TString16 _sezini, _sotini, _sezfin, _sotfin; @@ -236,7 +236,11 @@ bool TStatDonGrRh::menu(MENU_TAG m) { _dataini = msk.get(F_DATAINI); _datafin = msk.get(F_DATAFIN); - _tipodon = msk.get(F_TIPODON); + _tipodon1 = msk.get(F_TIPODON1); + _tipodon2 = msk.get(F_TIPODON2); + _tipodon3 = msk.get(F_TIPODON3); + _tipodon4 = msk.get(F_TIPODON4); + _tipodon5 = msk.get(F_TIPODON5); _solotot = msk.get_bool(F_SOLOTOT); _sezini = msk.get(F_SEZINI); _sotini = msk.get(F_SOTINI); @@ -257,11 +261,20 @@ void TStatDonGrRh::crea_intestazione() row.put(sep); printer().setheaderline(2, row); sep = ""; - if (_tipodon.not_empty()) + if (_tipodon1.not_empty()) { sep << "Tipo "; - sep << _tipodon; + sep << _tipodon1; } + if (_tipodon2.not_empty()) + sep << ' ' << _tipodon2; + if (_tipodon3.not_empty()) + sep << ' ' << _tipodon3; + if (_tipodon4.not_empty()) + sep << ' ' << _tipodon4; + if (_tipodon5.not_empty()) + sep << ' ' << _tipodon5; + if (_dataini.ok()) { sep << " dal "; @@ -699,16 +712,39 @@ bool TStatDonGrRh::riepilogo() filtro << format("(92->CODSEZ <= \"%s\")",(const char*)_sezfin); } // filtro per tipo donazione - if (_tipodon.not_empty()) + TString256 filtrotd = ""; + if (_tipodon1.not_empty()) + filtrotd << format("(92->TIPODON==\"%s\")",(const char*)_tipodon1); + if (_tipodon2.not_empty()) { - if (filtro.empty()) - filtro = format("(92->TIPODON==\"%s\")",(const char*)_tipodon); - else - { + if (!filtrotd.empty()) + filtrotd << " || "; + filtrotd << format("(92->TIPODON==\"%s\")",(const char*)_tipodon2); + } + if (_tipodon3.not_empty()) + { + if (!filtrotd.empty()) + filtrotd << " || "; + filtrotd << format("(92->TIPODON==\"%s\")",(const char*)_tipodon3); + } + if (_tipodon4.not_empty()) + { + if (!filtrotd.empty()) + filtrotd << " || "; + filtrotd << format("(92->TIPODON==\"%s\")",(const char*)_tipodon4); + } + if (_tipodon5.not_empty()) + { + if (!filtrotd.empty()) + filtrotd << " || "; + filtrotd << format("(92->TIPODON==\"%s\")",(const char*)_tipodon5); + } + if (!filtrotd.empty()) + { + if (!filtro.empty()) filtro << " && "; - filtro << format("(92->TIPODON==\"%s\")",(const char*)_tipodon); - } - } + filtro << '(' << filtrotd << ')'; + } _cur->setfilter((const char*) filtro, TRUE); TString16 codsez, codsot, tipodon, sesso; TDate datadon; diff --git a/at/at3600a.h b/at/at3600a.h index 136624b10..b28cbc0cb 100755 --- a/at/at3600a.h +++ b/at/at3600a.h @@ -10,8 +10,16 @@ #define F_SOTFIN 107 #define F_D_SOTFIN 108 -#define F_DATAINI 301 -#define F_DATAFIN 302 -#define F_TIPODON 303 -#define F_D_TIPODON 304 -#define F_SOLOTOT 305 +#define F_DATAINI 301 +#define F_DATAFIN 302 +#define F_TIPODON1 303 +#define F_TIPODON2 304 +#define F_TIPODON3 305 +#define F_TIPODON4 306 +#define F_TIPODON5 307 +#define F_D_TIPODON1 308 +#define F_D_TIPODON2 309 +#define F_D_TIPODON3 310 +#define F_D_TIPODON4 311 +#define F_D_TIPODON5 312 +#define F_SOLOTOT 316 diff --git a/at/at3600a.uml b/at/at3600a.uml index bb95163bd..8eb25af03 100755 --- a/at/at3600a.uml +++ b/at/at3600a.uml @@ -1,6 +1,6 @@ #include "at3600a.h" -PAGE "Statistica donazioni/donatori" -1 -1 78 12 +PAGE "Statistica donazioni/donatori" -1 -1 78 16 GROUPBOX DLG_NULL 77 4 BEGIN @@ -117,7 +117,7 @@ BEGIN HELP "Sottogruppo finale" END -GROUPBOX DLG_NULL 77 5 +GROUPBOX DLG_NULL 77 9 BEGIN PROMPT 1 5 "Opzioni per la statistica" END @@ -134,29 +134,109 @@ BEGIN HELP "Data finale" END -STRING F_TIPODON 2 +STRING F_TIPODON1 2 BEGIN PROMPT 2 7 "Tipo donazioni " FLAGS "U" USE TDN - INPUT CODTAB F_TIPODON + INPUT CODTAB F_TIPODON1 DISPLAY "Codice" CODTAB DISPLAY "Descrizione@30" S0 - OUTPUT F_TIPODON CODTAB - OUTPUT F_D_TIPODON S0 + OUTPUT F_TIPODON1 CODTAB + OUTPUT F_D_TIPODON1 S0 CHECKTYPE NORMAL WARNING "Codice non presente" END -STRING F_D_TIPODON 30 +STRING F_D_TIPODON1 30 BEGIN PROMPT 23 7 "" FLAGS "D" END +STRING F_TIPODON2 2 +BEGIN + PROMPT 2 8 " " + FLAGS "U" + USE TDN + INPUT CODTAB F_TIPODON2 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TIPODON2 CODTAB + OUTPUT F_D_TIPODON2 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_D_TIPODON2 30 +BEGIN + PROMPT 23 8 "" + FLAGS "D" +END + +STRING F_TIPODON3 2 +BEGIN + PROMPT 2 9 " " + FLAGS "U" + USE TDN + INPUT CODTAB F_TIPODON3 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TIPODON3 CODTAB + OUTPUT F_D_TIPODON3 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_D_TIPODON3 30 +BEGIN + PROMPT 23 9 "" + FLAGS "D" +END + +STRING F_TIPODON4 2 +BEGIN + PROMPT 2 10 " " + FLAGS "U" + USE TDN + INPUT CODTAB F_TIPODON4 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TIPODON4 CODTAB + OUTPUT F_D_TIPODON4 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_D_TIPODON4 30 +BEGIN + PROMPT 23 10 "" + FLAGS "D" +END + +STRING F_TIPODON5 2 +BEGIN + PROMPT 2 11 " " + FLAGS "U" + USE TDN + INPUT CODTAB F_TIPODON5 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_TIPODON5 CODTAB + OUTPUT F_D_TIPODON5 S0 + CHECKTYPE NORMAL + WARNING "Codice non presente" +END + +STRING F_D_TIPODON5 30 +BEGIN + PROMPT 23 11 "" + FLAGS "D" +END + BOOLEAN F_SOLOTOT BEGIN - PROMPT 2 8 "Stampa solo totale finale (non stampa il dettaglio per sezione)" + PROMPT 2 12 "Stampa solo totale finale (non stampa il dettaglio per sezione)" END BUTTON DLG_OK 9 2