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:
parent
91d912e13b
commit
867a668a77
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 = "";
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user