Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Statistica soggetti per categoria: corretto nel caso di iscrizione e dimissione nel periodo scelto git-svn-id: svn://10.65.10.50/trunk@6674 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9f58f6898e
commit
b5997b3a23
136
at/at3300.cpp
136
at/at3300.cpp
@ -443,9 +443,9 @@ bool TStatSogxCat::riepilogo()
|
|||||||
_cur->setfilter((const char*) filtro, TRUE);
|
_cur->setfilter((const char*) filtro, TRUE);
|
||||||
TString16 codsez, codsot;
|
TString16 codsez, codsot;
|
||||||
long numero,numero2;
|
long numero,numero2;
|
||||||
TString16 catdon;
|
TString16 catdon, cati, catd;
|
||||||
TDate dataisc, datadim;
|
TDate dataisc, datadim;
|
||||||
bool nuovo, totale;
|
bool nuovoi, totalei, nuovod, totaled;
|
||||||
TTable ctd("CTD");
|
TTable ctd("CTD");
|
||||||
TRectype& recsog = _cur->curr();
|
TRectype& recsog = _cur->curr();
|
||||||
long last = _cur->items();
|
long last = _cur->items();
|
||||||
@ -453,11 +453,15 @@ bool TStatSogxCat::riepilogo()
|
|||||||
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
for ( *_cur=0; _cur->pos() < last; ++(*_cur) )
|
||||||
{
|
{
|
||||||
prg.addstatus(1);
|
prg.addstatus(1);
|
||||||
nuovo = FALSE;
|
nuovoi = FALSE;
|
||||||
totale = FALSE;
|
totalei = FALSE;
|
||||||
|
nuovod = FALSE;
|
||||||
|
totaled = FALSE;
|
||||||
codsez = recsog.get(SOG_CODSEZ);
|
codsez = recsog.get(SOG_CODSEZ);
|
||||||
codsot = recsog.get(SOG_CODSOT);
|
codsot = recsog.get(SOG_CODSOT);
|
||||||
catdon = recsog.get(SOG_CATDON);
|
catdon = recsog.get(SOG_CATDON);
|
||||||
|
cati = "";
|
||||||
|
catd = "";
|
||||||
if (catdon.not_empty())
|
if (catdon.not_empty())
|
||||||
{
|
{
|
||||||
ctd.put("CODTAB",catdon);
|
ctd.put("CODTAB",catdon);
|
||||||
@ -465,52 +469,98 @@ bool TStatSogxCat::riepilogo()
|
|||||||
{
|
{
|
||||||
bool dimissione = ctd.get_bool("B0");
|
bool dimissione = ctd.get_bool("B0");
|
||||||
if (dimissione)
|
if (dimissione)
|
||||||
{
|
{
|
||||||
|
catd = catdon;
|
||||||
datadim = recsog.get_date(SOG_DATADIM);
|
datadim = recsog.get_date(SOG_DATADIM);
|
||||||
nuovo = (datadim >= _dataini && datadim <= _datafin);
|
nuovod = (datadim >= _dataini && datadim <= _datafin);
|
||||||
totale = (datadim <= _datafin);
|
totaled = (datadim <= _datafin);
|
||||||
}
|
cati = ctd.get("S6");
|
||||||
else
|
|
||||||
{
|
|
||||||
dataisc = recsog.get_date(SOG_DATAISC);
|
dataisc = recsog.get_date(SOG_DATAISC);
|
||||||
nuovo = (dataisc >= _dataini && dataisc <= _datafin);
|
nuovoi = (dataisc >= _dataini && dataisc <= _datafin);
|
||||||
totale = (dataisc <= _datafin);
|
totalei = (dataisc <= _datafin && datadim >= _datafin);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cati = catdon;
|
||||||
|
dataisc = recsog.get_date(SOG_DATAISC);
|
||||||
|
nuovoi = (dataisc >= _dataini && dataisc <= _datafin);
|
||||||
|
totalei = (dataisc <= _datafin);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stat.zero();
|
if (cati.not_empty())
|
||||||
stat.put(ATSS_CODSEZ, codsez);
|
{
|
||||||
stat.put(ATSS_CODSOT, codsot);
|
stat.zero();
|
||||||
stat.put(ATSS_CATDON, catdon);
|
|
||||||
if (stat.read() == NOERR)
|
|
||||||
{
|
|
||||||
numero = stat.get_long(ATSS_NUMERO);
|
|
||||||
numero2 = stat.get_long(ATSS_NUMERO2);
|
|
||||||
if (nuovo)
|
|
||||||
numero++;
|
|
||||||
if (totale)
|
|
||||||
numero2++;
|
|
||||||
stat.put(ATSS_NUMERO, numero);
|
|
||||||
stat.put(ATSS_NUMERO2, numero2);
|
|
||||||
stat.rewrite();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stat.put(ATSS_CODSEZ, codsez);
|
stat.put(ATSS_CODSEZ, codsez);
|
||||||
stat.put(ATSS_CODSOT, codsot);
|
stat.put(ATSS_CODSOT, codsot);
|
||||||
stat.put(ATSS_CATDON, catdon);
|
stat.put(ATSS_CATDON, cati);
|
||||||
if (nuovo)
|
if (stat.read() == NOERR)
|
||||||
numero = 1;
|
{
|
||||||
|
numero = stat.get_long(ATSS_NUMERO);
|
||||||
|
numero2 = stat.get_long(ATSS_NUMERO2);
|
||||||
|
if (nuovoi)
|
||||||
|
numero++;
|
||||||
|
if (totalei)
|
||||||
|
numero2++;
|
||||||
|
stat.put(ATSS_NUMERO, numero);
|
||||||
|
stat.put(ATSS_NUMERO2, numero2);
|
||||||
|
stat.rewrite();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
numero = 0;
|
{
|
||||||
if (totale)
|
stat.put(ATSS_CODSEZ, codsez);
|
||||||
numero2 = 1;
|
stat.put(ATSS_CODSOT, codsot);
|
||||||
|
stat.put(ATSS_CATDON, cati);
|
||||||
|
if (nuovoi)
|
||||||
|
numero = 1;
|
||||||
|
else
|
||||||
|
numero = 0;
|
||||||
|
if (totalei)
|
||||||
|
numero2 = 1;
|
||||||
|
else
|
||||||
|
numero2 = 0;
|
||||||
|
stat.put(ATSS_NUMERO, numero);
|
||||||
|
stat.put(ATSS_NUMERO2, numero2);
|
||||||
|
stat.write();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (catd.not_empty())
|
||||||
|
{
|
||||||
|
stat.zero();
|
||||||
|
stat.put(ATSS_CODSEZ, codsez);
|
||||||
|
stat.put(ATSS_CODSOT, codsot);
|
||||||
|
stat.put(ATSS_CATDON, catd);
|
||||||
|
if (stat.read() == NOERR)
|
||||||
|
{
|
||||||
|
numero = stat.get_long(ATSS_NUMERO);
|
||||||
|
numero2 = stat.get_long(ATSS_NUMERO2);
|
||||||
|
if (nuovod)
|
||||||
|
numero++;
|
||||||
|
if (totaled)
|
||||||
|
numero2++;
|
||||||
|
stat.put(ATSS_NUMERO, numero);
|
||||||
|
stat.put(ATSS_NUMERO2, numero2);
|
||||||
|
stat.rewrite();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
numero2 = 0;
|
{
|
||||||
stat.put(ATSS_NUMERO, numero);
|
stat.put(ATSS_CODSEZ, codsez);
|
||||||
stat.put(ATSS_NUMERO2, numero2);
|
stat.put(ATSS_CODSOT, codsot);
|
||||||
stat.write();
|
stat.put(ATSS_CATDON, catd);
|
||||||
}
|
if (nuovod)
|
||||||
|
numero = 1;
|
||||||
|
else
|
||||||
|
numero = 0;
|
||||||
|
if (totaled)
|
||||||
|
numero2 = 1;
|
||||||
|
else
|
||||||
|
numero2 = 0;
|
||||||
|
stat.put(ATSS_NUMERO, numero);
|
||||||
|
stat.put(ATSS_NUMERO2, numero2);
|
||||||
|
stat.write();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return (stat.eod() > 0);
|
return (stat.eod() > 0);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user