diff --git a/at/at3100.cpp b/at/at3100.cpp index abcf33739..49d4c4db4 100755 --- a/at/at3100.cpp +++ b/at/at3100.cpp @@ -237,16 +237,19 @@ void TStatSogxEta::crea_intestazione() row.put("@>", 1); row.put("Pag. @#", 105); printer().setheaderline(2, row); - sep = ""; - sep << "Categoria "; - sep << _catdon; - sep << " "; - TTable ctd("CTD"); - ctd.zero(); - ctd.put("CODTAB", _catdon); - ctd.read(); - if (ctd.good()) - sep << ctd.get("S0"); + sep = ""; + if (_catdon.not_empty()) + { + sep << "Categoria " << _catdon << ' '; + TTable ctd("CTD"); + ctd.zero(); + ctd.put("CODTAB", _catdon); + ctd.read(); + if (ctd.good()) + sep << ctd.get("S0"); + } + else + sep << "Tutte le categorie non dimessi"; sep.center_just(120); row.reset(); row.put(sep); @@ -541,31 +544,47 @@ bool TStatSogxEta::riepilogo() catcoll = ""; dataisc = NULLDATE; datadim = NULLDATE; - ok = FALSE; + ok = FALSE; if (catdon.not_empty()) { - if (catdim) - { - datadim = recsog.get_date(SOG_DATADIM); - ok = ((catdon == _catdon) && (datadim <= _data)); - } - else - { - dataisc = recsog.get_date(SOG_DATAISC); - ok = ((catdon == _catdon) && (dataisc <= _data)); - if (!ok) - { - ctd.put("CODTAB", catdon); - if (ctd.read() == NOERR) + if (_catdon.not_empty()) + { + if (catdim) + { + datadim = recsog.get_date(SOG_DATADIM); + ok = ((catdon == _catdon) && (datadim <= _data)); + } + else + { + dataisc = recsog.get_date(SOG_DATAISC); + ok = ((catdon == _catdon) && (dataisc <= _data)); + if (!ok) { - catcoll = ctd.get("S6"); - datadim = recsog.get_date(SOG_DATADIM); - ok = ((catcoll == _catdon) && (dataisc <= _data) && (datadim > _data)); - } - // se la categoria collegata è vuota occorre esaminare lo storico - } - } - } + ctd.put("CODTAB", catdon); + if (ctd.read() == NOERR) + { + catcoll = ctd.get("S6"); + datadim = recsog.get_date(SOG_DATADIM); + ok = ((catcoll == _catdon) && (dataisc <= _data) && (datadim > _data)); + } + // se la categoria collegata è vuota occorre esaminare lo storico + } + } + } + else + { + ctd.put("CODTAB", catdon); + dataisc = recsog.get_date(SOG_DATAISC); + datadim = recsog.get_date(SOG_DATADIM); + if (ctd.read() == NOERR) + { + if (ctd.get_bool("B0")) + ok = ((dataisc <= _data) && (datadim > _data)); + else + ok = (dataisc <= _data); + } + } + } if (ok) { codsez = recsog.get(SOG_CODSEZ); diff --git a/at/at3100a.uml b/at/at3100a.uml index 2d3a81898..47ffba0eb 100755 --- a/at/at3100a.uml +++ b/at/at3100a.uml @@ -148,6 +148,16 @@ BEGIN PROMPT 45 6 "Data elaborazione " END +TEXT DLG_NULL +BEGIN + PROMPT 25 8 "Se la categoria e' vuota, la statistica vale" +END + +TEXT DLG_NULL +BEGIN + PROMPT 25 9 "per tutte le categorie non di dimissione" +END + TEXT DLG_NULL BEGIN PROMPT 2 7 "Fascie di eta'" diff --git a/at/at3700.cpp b/at/at3700.cpp index 62b7c65fe..f0bd517ec 100755 --- a/at/at3700.cpp +++ b/at/at3700.cpp @@ -1,5 +1,4 @@ #include -//#include #include #include #include @@ -251,8 +250,18 @@ void TStatisticaSog::crea_intestazione() row.put("Pag. @#", 70); printer().setheaderline(2, row); sep = ""; - sep << "Categoria "; - sep << _catdon; + if (_catdon.not_empty()) + { + sep << "Categoria " << _catdon << ' '; + TTable ctd("CTD"); + ctd.zero(); + ctd.put("CODTAB", _catdon); + ctd.read(); + if (ctd.good()) + sep << ctd.get("S0"); + } + else + sep << "Tutte le categorie non dimessi"; sep.center_just(80); row.reset(); row.put(sep); @@ -536,28 +545,44 @@ bool TStatisticaSog::riepilogo() datadim = NULLDATE; ok = FALSE; if (catdon.not_empty()) - { - if (catdim) - { - datadim = recsog.get_date(SOG_DATADIM); - ok = ((catdon == _catdon) && (datadim <= _data)); + { + if (_catdon.not_empty()) + { + if (catdim) + { + datadim = recsog.get_date(SOG_DATADIM); + ok = ((catdon == _catdon) && (datadim <= _data)); + } + else + { + dataisc = recsog.get_date(SOG_DATAISC); + ok = ((catdon == _catdon) && (dataisc <= _data)); + if (!ok) + { + ctd.put("CODTAB", catdon); + if (ctd.read() == NOERR) + { + catcoll = ctd.get("S6"); + datadim = recsog.get_date(SOG_DATADIM); + ok = ((catcoll == _catdon) && (dataisc <= _data) && (datadim > _data)); + } + // se la categoria collegata è vuota occorre esaminare lo storico + } + } } else - { + { + ctd.put("CODTAB", catdon); dataisc = recsog.get_date(SOG_DATAISC); - ok = ((catdon == _catdon) && (dataisc <= _data)); - if (!ok) + datadim = recsog.get_date(SOG_DATADIM); + if (ctd.read() == NOERR) { - ctd.put("CODTAB", catdon); - if (ctd.read() == NOERR) - { - catcoll = ctd.get("S6"); - datadim = recsog.get_date(SOG_DATADIM); - ok = ((catcoll == _catdon) && (dataisc <= _data) && (datadim > _data)); - } - // se la categoria collegata è vuota occorre esaminare lo storico - } - } + if (ctd.get_bool("B0")) + ok = ((dataisc <= _data) && (datadim > _data)); + else + ok = (dataisc <= _data); + } + } } if (ok) { diff --git a/at/at3700a.uml b/at/at3700a.uml index 232e0a34c..d015b1abe 100755 --- a/at/at3700a.uml +++ b/at/at3700a.uml @@ -117,7 +117,7 @@ BEGIN HELP "Sottogruppo finale" END -GROUPBOX DLG_NULL 77 3 +GROUPBOX DLG_NULL 77 5 BEGIN PROMPT 1 5 "Opzioni per la statistica" END @@ -148,6 +148,15 @@ BEGIN PROMPT 45 6 "Data elaborazione " END +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "Se la categoria e' vuota, la statistica vale" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "per tutte le categorie non di dimissione" +END BUTTON DLG_OK 9 2 BEGIN