Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Possibilitá di fare queste statistiche per gruppo aziendale + toolbar nella maschera


git-svn-id: svn://10.65.10.50/trunk@8976 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2000-05-04 14:51:39 +00:00
parent 91d912e13b
commit 867a668a77
12 changed files with 393 additions and 144 deletions

View File

@ -89,11 +89,11 @@ class TStatSogxEta : public TApplication
TLocalisamfile* _atstats;
TAssoc_array* _colonne;
TArray _righe;
TString16 _sezini, _sotini, _sezfin, _sotfin;
TString16 _sezini, _sotini, _sezfin, _sotfin, _gruppoazie;
TString16 _catdon;
TDate _data;
TArray _etaini, _etafin;
bool _solotot;
bool _solotot, _pergruppo;
int _sezionistampate;
protected:
@ -210,7 +210,9 @@ bool TStatSogxEta::menu(MENU_TAG m)
_sotfin = _msk->get(F_SOTFIN);
_catdon = _msk->get(F_CATDON);
_data = _msk->get_date(F_DATA);
_solotot = msk.get_bool(F_SOLOTOT);
_pergruppo = _msk->get_bool(F_PERGRUPPO);
_gruppoazie = _msk->get(F_GRUPPOAZIE);
_solotot = msk.get_bool(F_SOLOTOT);
TSheet_field& s = (TSheet_field&)_msk->field(F_FASCIE);
for (int r=0; r<s.items(); r++)
{
@ -341,38 +343,48 @@ void TStatSogxEta::stampa_sezione(TString16 codsez, TString16 codsot)
{
if (_sezionistampate != 1)
{
//rigastampa = "RIEPILOGO TOTALE PER TUTTE LE SEZIONI STAMPATE";
rigastampa = "";
rigastampa << "RIEPILOGO TOTALE SEZIONI DA " << _sezini << '/' << _sotini << " A " << _sezfin << '/' << _sotfin;
if (_pergruppo)
rigastampa << " - SOLO GRUPPI AZIENDALI";
}
}
else
{
_sezionistampate++;
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
if (_pergruppo)
{
rigastampa << "/";
rigastampa = "Gruppo aziendale ";
rigastampa << codsez;
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
}
else
{
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
{
rigastampa << "/";
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
{
rigastampa << "/";
rigastampa << den;
}
}
}
}
}
if ((codsez == "ZZ" && codsot == "ZZ" && _sezionistampate != 1) || (codsez != "ZZ"))
{
@ -536,8 +548,17 @@ bool TStatSogxEta::riepilogo()
else
filtro << format("(90->CODSEZ <= \"%s\")",(const char*)_sezfin);
}
_cur->setfilter((const char*) filtro, TRUE);
TString16 codsez, codsot, catdon, catcoll;
if (_pergruppo)
{
if (filtro.not_empty())
filtro << " && ";
if (_gruppoazie.not_empty())
filtro << format("(90->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
else
filtro << format("(90->GRUPPOAZIE != \"\")");
}
_cur->setfilter((const char*) filtro, TRUE);
TString16 codsez, codsot, catdon, catcoll, gruppoazie;
long numero;
TString16 sesso;
int eta, fascia;
@ -602,8 +623,17 @@ bool TStatSogxEta::riepilogo()
}
if (ok)
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
if (_pergruppo)
{
gruppoazie = recsog.get(SOG_GRUPPOAZIE);
codsez = gruppoazie.sub(0,2);
codsot = gruppoazie.sub(2,4);
}
else
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
}
datanasc = recsog.get_date(SOG_DATANASC);
eta = _data.year() - datanasc.year();
fascia = data2row(eta);

View File

@ -13,8 +13,11 @@
#define F_CATDON 301
#define F_D_CATDON 302
#define F_DATA 303
#define F_SOLOTOT 304
#define F_FASCIE 305
#define F_PERGRUPPO 304
#define F_GRUPPOAZIE 305
#define F_D_GRUPPOAZIE 306
#define F_SOLOTOT 307
#define F_FASCIE 308
#define F_ETAINI 101
#define F_ETAFIN 102

View File

@ -1,5 +1,17 @@
#include "at3100a.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Statistica donatori per sesso e fascie di eta'" -1 -1 78 20
GROUPBOX DLG_NULL 77 4
@ -117,7 +129,7 @@ BEGIN
HELP "Sottogruppo finale"
END
GROUPBOX DLG_NULL 77 14
GROUPBOX DLG_NULL 77 15
BEGIN
PROMPT 1 5 "Opzioni per la statistica"
END
@ -149,43 +161,70 @@ BEGIN
CHECKTYPE REQUIRED
END
BOOLEAN F_PERGRUPPO
BEGIN
PROMPT 2 7 "Stampa per gruppo aziendale"
MESSAGE TRUE ENABLE,F_GRUPPOAZIE|ENABLE,F_D_GRUPPOAZIE|RESET,F_SOLOTOT|DISABLE,F_SOLOTOT
MESSAGE FALSE RESET,F_GRUPPOAZIE|RESET,F_D_GRUPPOAZIE|DISABLE,F_GRUPPOAZIE|DISABLE,F_D_GRUPPOAZIE|ENABLE,F_SOLOTOT
END
STRING F_GRUPPOAZIE 4
BEGIN
PROMPT 35 7 ""
FLAGS "U"
USE GAZ
INPUT CODTAB F_GRUPPOAZIE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
OUTPUT F_GRUPPOAZIE CODTAB
OUTPUT F_D_GRUPPOAZIE S0
CHECKTYPE NORMAL
WARNING "Codice gruppo aziendale non presente"
HELP "Gruppo aziendale di appartenenza"
END
STRING F_D_GRUPPOAZIE 30
BEGIN
PROMPT 43 7 ""
FLAGS "U"
USE GAZ KEY 2
INPUT S0 F_D_GRUPPOAZIE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
COPY OUTPUT F_GRUPPOAZIE
CHECKTYPE NORMAL
WARNING "Gruppo aziendale non presente"
HELP "Gruppo aziendale di appartenenza"
END
TEXT DLG_NULL
BEGIN
PROMPT 25 8 "Se la categoria e' vuota, la statistica vale"
PROMPT 25 10 "Se la categoria e' vuota, la statistica vale"
END
TEXT DLG_NULL
BEGIN
PROMPT 25 9 "per tutte le categorie non di dimissione"
PROMPT 25 11 "per tutte le categorie non di dimissione"
END
BOOLEAN F_SOLOTOT
BEGIN
PROMPT 2 7 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
PROMPT 2 8 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 8 "Fascie di eta'"
PROMPT 2 9 "Fascie di eta'"
END
SPREADSHEET F_FASCIE 15 9
BEGIN
PROMPT 3 9 ""
PROMPT 3 10 ""
ITEM "Da "
ITEM "A "
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
@ -198,7 +237,7 @@ END
NUMBER F_ETAFIN 3
BEGIN
PROMPT 3 2 "Eta' finale "
PROMPT 2 3 "Eta' finale "
END
BUTTON DLG_OK 9 2

View File

@ -87,9 +87,9 @@ class TStatSogxCat : public TApplication
TAssoc_array* _colonne;
TAssoc_array* _categorie;
TArray _righe;
TString16 _sezini, _sotini, _sezfin, _sotfin;
TString16 _sezini, _sotini, _sezfin, _sotfin, _gruppoazie;
TDate _dataini, _datafin;
bool _solotot;
bool _solotot, _pergruppo;
int _sezionistampate;
protected:
@ -192,6 +192,8 @@ bool TStatSogxCat::menu(MENU_TAG m)
_sotfin = _msk->get(F_SOTFIN);
_dataini = _msk->get_date(F_DATAINI);
_datafin = _msk->get_date(F_DATAFIN);
_pergruppo = _msk->get_bool(F_PERGRUPPO);
_gruppoazie = _msk->get(F_GRUPPOAZIE);
_solotot = msk.get_bool(F_SOLOTOT);
if (riepilogo())
stampa();
@ -307,38 +309,48 @@ void TStatSogxCat::stampa_sezione(TString16 codsez, TString16 codsot)
{
if (_sezionistampate != 1)
{
//rigastampa = "RIEPILOGO TOTALE PER TUTTE LE SEZIONI STAMPATE";
rigastampa = "";
rigastampa << "RIEPILOGO TOTALE SEZIONI DA " << _sezini << '/' << _sotini << " A " << _sezfin << '/' << _sotfin;
if (_pergruppo)
rigastampa << " - SOLO GRUPPI AZIENDALI";
}
}
else
{
_sezionistampate++;
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
if (_pergruppo)
{
rigastampa << "/";
rigastampa = "Gruppo aziendale ";
rigastampa << codsez;
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
}
else
{
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
{
rigastampa << "/";
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
{
rigastampa << "/";
rigastampa << den;
}
}
}
}
}
if ((codsez == "ZZ" && codsot == "ZZ" && _sezionistampate != 1) || (codsez != "ZZ"))
{
@ -455,8 +467,17 @@ bool TStatSogxCat::riepilogo()
else
filtro << format("(90->CODSEZ <= \"%s\")",(const char*)_sezfin);
}
if (_pergruppo)
{
if (filtro.not_empty())
filtro << " && ";
if (_gruppoazie.not_empty())
filtro << format("(90->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
else
filtro << format("(90->GRUPPOAZIE != \"\")");
}
_cur->setfilter((const char*) filtro, TRUE);
TString16 codsez, codsot;
TString16 codsez, codsot, gruppoazie;
long numero,numero2;
TString16 catdon, cati, catd;
TDate dataisc, datadim;
@ -472,8 +493,17 @@ bool TStatSogxCat::riepilogo()
totalei = FALSE;
nuovod = FALSE;
totaled = FALSE;
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
if (_pergruppo)
{
gruppoazie = recsog.get(SOG_GRUPPOAZIE);
codsez = gruppoazie.sub(0,2);
codsot = gruppoazie.sub(2,4);
}
else
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
}
catdon = recsog.get(SOG_CATDON);
cati = "";
catd = "";

View File

@ -10,6 +10,9 @@
#define F_SOTFIN 107
#define F_D_SOTFIN 108
#define F_DATAINI 301
#define F_DATAFIN 302
#define F_SOLOTOT 303
#define F_DATAINI 301
#define F_DATAFIN 302
#define F_PERGRUPPO 303
#define F_GRUPPOAZIE 304
#define F_D_GRUPPOAZIE 305
#define F_SOLOTOT 306

View File

@ -117,7 +117,7 @@ BEGIN
HELP "Sottogruppo finale"
END
GROUPBOX DLG_NULL 77 4
GROUPBOX DLG_NULL 77 5
BEGIN
PROMPT 1 5 "Opzioni per la statistica"
END
@ -125,16 +125,56 @@ END
DATE F_DATAINI
BEGIN
PROMPT 2 6 "Segnala i cambi di categoria dal "
CHECKTYPE REQUIRED
HELP "Data iniziale per elaborazione"
END
DATE F_DATAFIN
BEGIN
PROMPT 50 6 "al "
CHECKTYPE REQUIRED
HELP "Data finale per elaborazione"
END
BOOLEAN F_PERGRUPPO
BEGIN
PROMPT 2 7 "Stampa per gruppo aziendale"
MESSAGE TRUE ENABLE,F_GRUPPOAZIE|ENABLE,F_D_GRUPPOAZIE|RESET,F_SOLOTOT|DISABLE,F_SOLOTOT
MESSAGE FALSE RESET,F_GRUPPOAZIE|RESET,F_D_GRUPPOAZIE|DISABLE,F_GRUPPOAZIE|DISABLE,F_D_GRUPPOAZIE|ENABLE,F_SOLOTOT
END
STRING F_GRUPPOAZIE 4
BEGIN
PROMPT 35 7 ""
FLAGS "U"
USE GAZ
INPUT CODTAB F_GRUPPOAZIE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
OUTPUT F_GRUPPOAZIE CODTAB
OUTPUT F_D_GRUPPOAZIE S0
CHECKTYPE NORMAL
WARNING "Codice gruppo aziendale non presente"
HELP "Gruppo aziendale di appartenenza"
END
STRING F_D_GRUPPOAZIE 30
BEGIN
PROMPT 43 7 ""
FLAGS "U"
USE GAZ KEY 2
INPUT S0 F_D_GRUPPOAZIE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
COPY OUTPUT F_GRUPPOAZIE
CHECKTYPE NORMAL
WARNING "Gruppo aziendale non presente"
HELP "Gruppo aziendale di appartenenza"
END
BOOLEAN F_SOLOTOT
BEGIN
PROMPT 2 7 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
PROMPT 2 8 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
END
BUTTON DLG_OK 9 2

View File

@ -94,7 +94,7 @@ class TStatDonGrRh : public TApplication
TArray _righe; // array per riepilogo donazioni
TString16 _sezini, _sotini, _sezfin, _sotfin;
TAssoc_array* _asoggetti;
bool _solotot;
bool _solotot, _pergruppo;
int _sezionistampate;
protected:
@ -241,6 +241,7 @@ bool TStatDonGrRh::menu(MENU_TAG m)
_tipodon3 = msk.get(F_TIPODON3);
_tipodon4 = msk.get(F_TIPODON4);
_tipodon5 = msk.get(F_TIPODON5);
_pergruppo = msk.get_bool(F_PERGRUPPO);
_solotot = msk.get_bool(F_SOLOTOT);
_sezini = msk.get(F_SEZINI);
_sotini = msk.get(F_SOTINI);
@ -414,38 +415,48 @@ void TStatDonGrRh::stampa_sezione(TString16 codsez, TString16 codsot)
{
if (_sezionistampate != 1)
{
//rigastampa = "RIEPILOGO TOTALE PER TUTTE LE SEZIONI STAMPATE";
rigastampa = "";
rigastampa << "RIEPILOGO TOTALE SEZIONI DA " << _sezini << '/' << _sotini << " A " << _sezfin << '/' << _sotfin;
if (_pergruppo)
rigastampa << " - SOLO GRUPPI AZIENDALI";
}
}
else
{
_sezionistampate++;
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
if (_pergruppo)
{
rigastampa << "/";
rigastampa = "Gruppo aziendale ";
rigastampa << codsez;
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
}
else
{
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
{
rigastampa << "/";
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
{
rigastampa << "/";
rigastampa << den;
}
}
}
}
}
if ((codsez == "ZZ" && codsot == "ZZ" && _sezionistampate != 1) || (codsez != "ZZ"))
{
@ -696,7 +707,6 @@ bool TStatDonGrRh::riepilogo()
{
if (filtro.not_empty())
filtro << " && ";
if (_sotfin.not_empty())
{
filtro << "(";
@ -711,6 +721,13 @@ bool TStatDonGrRh::riepilogo()
else
filtro << format("(92->CODSEZ <= \"%s\")",(const char*)_sezfin);
}
// filtro per gruppi aziendali
if (_pergruppo)
{
if (filtro.not_empty())
filtro << " && ";
filtro << format("(90->GRUPPOAZIE != \"\")");
}
// filtro per tipo donazione
TString256 filtrotd = "";
if (_tipodon1.not_empty())
@ -746,9 +763,8 @@ bool TStatDonGrRh::riepilogo()
filtro << '(' << filtrotd << ')';
}
_cur->setfilter((const char*) filtro, TRUE);
TString16 codsez, codsot, tipodon, sesso;
TString16 codsez, codsot, tipodon, sesso, gruppoazie, gruppo, rh;
TDate datadon;
TString16 gruppo, rh;
long numero;
bool esiste;
TRectype& recdon = _cur->curr();
@ -766,13 +782,22 @@ bool TStatDonGrRh::riepilogo()
_asoggetti->add(codice);
esiste = FALSE;
}
codsez = recdon.get(DON_CODSEZ);
codsot = recdon.get(DON_CODSOT);
if (codsez.empty())
if (_pergruppo)
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
}
gruppoazie = recsog.get(SOG_GRUPPOAZIE);
codsez = gruppoazie.sub(0,2);
codsot = gruppoazie.sub(2,4);
}
else
{
codsez = recdon.get(DON_CODSEZ);
codsot = recdon.get(DON_CODSOT);
if (codsez.empty())
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
}
}
sesso = recsog.get(SOG_SESSO);
gruppo = recsog.get(SOG_GRUPPOAB0);
if (gruppo == "A1" || gruppo == "A2")

View File

@ -1,4 +1,4 @@
// statistica donazioni per gruppo e rh
// statistica donazioni/donatori
// definizione campi per maschera di selezione
#define F_SEZINI 101
@ -22,4 +22,5 @@
#define F_D_TIPODON3 310
#define F_D_TIPODON4 311
#define F_D_TIPODON5 312
#define F_SOLOTOT 316
#define F_SOLOTOT 313
#define F_PERGRUPPO 314

View File

@ -117,7 +117,7 @@ BEGIN
HELP "Sottogruppo finale"
END
GROUPBOX DLG_NULL 77 9
GROUPBOX DLG_NULL 77 10
BEGIN
PROMPT 1 5 "Opzioni per la statistica"
END
@ -234,9 +234,16 @@ BEGIN
FLAGS "D"
END
BOOLEAN F_PERGRUPPO
BEGIN
PROMPT 2 12 "Statistica per gruppi aziendali"
MESSAGE TRUE RESET, F_SOLOTOT|DISABLE,F_SOLOTOT
MESSAGE FALSE ENABLE,F_SOLOTOT
END
BOOLEAN F_SOLOTOT
BEGIN
PROMPT 2 12 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
PROMPT 2 13 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
END
BUTTON DLG_OK 9 2

View File

@ -88,10 +88,10 @@ class TStatisticaSog : public TApplication
TLocalisamfile* _atstats;
TAssoc_array* _colonne;
TArray _righe;
TString16 _sezini, _sotini, _sezfin, _sotfin;
TString16 _sezini, _sotini, _sezfin, _sotfin, _gruppoazie;
TString16 _catdon;
TDate _data;
bool _solotot;
bool _solotot, _pergruppo;
int _sezionistampate;
protected:
@ -234,6 +234,8 @@ bool TStatisticaSog::menu(MENU_TAG m)
_sotfin = _msk->get(F_SOTFIN);
_catdon = _msk->get(F_CATDON);
_data = _msk->get_date(F_DATA);
_pergruppo = _msk->get_bool(F_PERGRUPPO);
_gruppoazie = _msk->get(F_GRUPPOAZIE);
_solotot = msk.get_bool(F_SOLOTOT);
if (riepilogo())
stampa();
@ -370,38 +372,48 @@ void TStatisticaSog::stampa_sezione(TString16 codsez, TString16 codsot)
{
if (_sezionistampate != 1)
{
//rigastampa = "RIEPILOGO TOTALE PER TUTTE LE SEZIONI STAMPATE";
rigastampa = "";
rigastampa << "RIEPILOGO TOTALE SEZIONI DA " << _sezini << '/' << _sotini << " A " << _sezfin << '/' << _sotfin;
if (_pergruppo)
rigastampa << " - SOLO GRUPPI AZIENDALI";
}
}
else
{
_sezionistampate++;
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
if (_pergruppo)
{
rigastampa << "/";
rigastampa = "Gruppo aziendale ";
rigastampa << codsez;
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
}
else
{
rigastampa = "Sezione: ";
rigastampa << codsez;
if (codsot.not_empty())
{
rigastampa << "/";
rigastampa << codsot;
}
rigastampa << " ";
TLocalisamfile sezioni(LF_SEZIONI);
sezioni.setkey(1);
sezioni.zero();
sezioni.put(SEZ_CODSEZ,codsez);
sezioni.put(SEZ_CODSOT,codsot);
if (sezioni.read() == NOERR)
{
TString80 den = sezioni.get(SEZ_DENSEZ);
rigastampa << den;
den = sezioni.get(SEZ_DENSOT);
if (den.not_empty())
{
rigastampa << "/";
rigastampa << den;
}
}
}
}
}
if ((codsez == "ZZ" && codsot == "ZZ" && _sezionistampate != 1) || (codsez != "ZZ"))
{
@ -538,8 +550,17 @@ bool TStatisticaSog::riepilogo()
else
filtro << format("(90->CODSEZ <= \"%s\")",(const char*)_sezfin);
}
if (_pergruppo)
{
if (filtro.not_empty())
filtro << " && ";
if (_gruppoazie.not_empty())
filtro << format("(90->GRUPPOAZIE == \"%s\")",(const char*)_gruppoazie);
else
filtro << format("(90->GRUPPOAZIE != \"\")");
}
_cur->setfilter((const char*) filtro, TRUE);
TString16 codsez, codsot, catdon, catcoll;
TString16 codsez, codsot, catdon, catcoll, gruppoazie;
long numero;
TString16 gruppo, rh, sesso;
TDate dataisc, datadim;
@ -601,8 +622,17 @@ bool TStatisticaSog::riepilogo()
}
if (ok)
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
if (_pergruppo)
{
gruppoazie = recsog.get(SOG_GRUPPOAZIE);
codsez = gruppoazie.sub(0,2);
codsot = gruppoazie.sub(2,4);
}
else
{
codsez = recsog.get(SOG_CODSEZ);
codsot = recsog.get(SOG_CODSOT);
}
gruppo = recsog.get(SOG_GRUPPOAB0);
rh = recsog.get(SOG_RHANTID);
sesso = recsog.get(SOG_SESSO);

View File

@ -13,4 +13,7 @@
#define F_CATDON 301
#define F_D_CATDON 302
#define F_DATA 303
#define F_SOLOTOT 304
#define F_PERGRUPPO 304
#define F_GRUPPOAZIE 305
#define F_D_GRUPPOAZIE 306
#define F_SOLOTOT 307

View File

@ -1,5 +1,17 @@
#include "at3700a.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Statistica donatori per sesso, gruppo e rh" -1 -1 78 12
GROUPBOX DLG_NULL 77 4
@ -117,7 +129,7 @@ BEGIN
HELP "Sottogruppo finale"
END
GROUPBOX DLG_NULL 77 6
GROUPBOX DLG_NULL 77 7
BEGIN
PROMPT 1 5 "Opzioni per la statistica"
END
@ -158,19 +170,45 @@ BEGIN
PROMPT 2 8 "per tutte le categorie non di dimissione"
END
BOOLEAN F_PERGRUPPO
BEGIN
PROMPT 2 9 "Stampa per gruppo aziendale"
MESSAGE TRUE ENABLE,F_GRUPPOAZIE|ENABLE,F_D_GRUPPOAZIE|RESET,F_SOLOTOT|DISABLE,F_SOLOTOT
MESSAGE FALSE RESET,F_GRUPPOAZIE|RESET,F_D_GRUPPOAZIE|DISABLE,F_GRUPPOAZIE|DISABLE,F_D_GRUPPOAZIE|ENABLE,F_SOLOTOT
END
STRING F_GRUPPOAZIE 4
BEGIN
PROMPT 35 9 ""
FLAGS "U"
USE GAZ
INPUT CODTAB F_GRUPPOAZIE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
OUTPUT F_GRUPPOAZIE CODTAB
OUTPUT F_D_GRUPPOAZIE S0
CHECKTYPE NORMAL
WARNING "Codice gruppo aziendale non presente"
HELP "Gruppo aziendale di appartenenza"
END
STRING F_D_GRUPPOAZIE 30
BEGIN
PROMPT 43 9 ""
FLAGS "U"
USE GAZ KEY 2
INPUT S0 F_D_GRUPPOAZIE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@30" S0
COPY OUTPUT F_GRUPPOAZIE
CHECKTYPE NORMAL
WARNING "Gruppo aziendale non presente"
HELP "Gruppo aziendale di appartenenza"
END
BOOLEAN F_SOLOTOT
BEGIN
PROMPT 2 9 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
PROMPT 2 10 "Stampa solo totale finale (non stampa il dettaglio per sezione)"
END
ENDPAGE