Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Soggetti per frequenza: possibilita' di impostare la condizione sul numero di donazioni (Almeno, Esattamente, Da 1 a) git-svn-id: svn://10.65.10.50/trunk@7739 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f7042030d7
commit
725ef771e3
142
at/at2900.cpp
142
at/at2900.cpp
@ -51,8 +51,9 @@ class TFrequenza : public TPrintapp
|
||||
ts _tipostampa;
|
||||
TString16 _codsez, _codsot;
|
||||
int _etlarghezza, _etcolonne;
|
||||
bool _stampa80;
|
||||
bool _stampa80, _ctrltotale;
|
||||
int _contatore;
|
||||
char _condizione;
|
||||
|
||||
protected:
|
||||
virtual bool user_create();
|
||||
@ -175,27 +176,42 @@ bool TFrequenza::filter_func_freq(const TRelation* rel)
|
||||
// filtro per numero donazioni nel periodo
|
||||
if (filtrato)
|
||||
{
|
||||
int numdon = 0;
|
||||
filtrato = FALSE;
|
||||
const long codice = sog.get_long(SOG_CODICE);
|
||||
TRectype* key = new TRectype(LF_DONAZ);
|
||||
key->put(DON_CODICE, codice);
|
||||
int err = app()._sdonazioni->read(key);
|
||||
if (err == NOERR)
|
||||
if (app()._ctrltotale)
|
||||
numdon = sog.get_int(SOG_TOTDON);
|
||||
else
|
||||
{
|
||||
int numdon = 0;
|
||||
for (int r=1; r<=app()._sdonazioni->rows(); r++)
|
||||
const long codice = sog.get_long(SOG_CODICE);
|
||||
TRectype* key = new TRectype(LF_DONAZ);
|
||||
key->put(DON_CODICE, codice);
|
||||
int err = app()._sdonazioni->read(key);
|
||||
if (err == NOERR)
|
||||
{
|
||||
const TRectype& riga = app()._sdonazioni->row(r);
|
||||
TDate datadon = riga.get_date(DON_DATADON);
|
||||
if ((datadon>=app()._dataini) && (datadon<=app()._datafin))
|
||||
for (int r=1; r<=app()._sdonazioni->rows(); r++)
|
||||
{
|
||||
TString16 tipodon = riga.get(DON_TIPODON);
|
||||
if ((app()._tipodon.empty()) || (app()._tipodon == tipodon))
|
||||
numdon++;
|
||||
}
|
||||
}
|
||||
if (numdon >= app()._numdon)
|
||||
filtrato = TRUE;
|
||||
const TRectype& riga = app()._sdonazioni->row(r);
|
||||
TDate datadon = riga.get_date(DON_DATADON);
|
||||
if ((datadon>=app()._dataini || !app()._dataini.ok()) && (datadon<=app()._datafin || !app()._datafin.ok()))
|
||||
{
|
||||
TString16 tipodon = riga.get(DON_TIPODON);
|
||||
if ((app()._tipodon.empty()) || (app()._tipodon == tipodon))
|
||||
numdon++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
switch (app()._condizione)
|
||||
{
|
||||
case 'A':
|
||||
filtrato = (numdon >= app()._numdon);
|
||||
break;
|
||||
case 'E':
|
||||
filtrato = (numdon == app()._numdon);
|
||||
break;
|
||||
case 'D':
|
||||
filtrato = (numdon > 1 && numdon <= app()._numdon);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return filtrato;
|
||||
@ -230,52 +246,54 @@ bool TFrequenza::preprocess_page(int file, int counter)
|
||||
if (_tipostampa == elenco)
|
||||
{
|
||||
TRectype recsog = current_cursor()->curr();
|
||||
const long codice = recsog.get_long(SOG_CODICE);
|
||||
TRectype* key = new TRectype(LF_DONAZ);
|
||||
key->put(DON_CODICE, codice);
|
||||
int err = _sdonazioni->read(key);
|
||||
if (err == NOERR)
|
||||
int numdon = 0;
|
||||
TDate dataultdon(NULLDATE);
|
||||
if (_ctrltotale)
|
||||
{
|
||||
int numdon = 0;
|
||||
TDate dataultdon(NULLDATE);
|
||||
for (int r=1; r<=_sdonazioni->rows(); r++)
|
||||
numdon = recsog.get_int(SOG_TOTDON);
|
||||
dataultdon = recsog.get_date(SOG_DATAULTDON);
|
||||
}
|
||||
else
|
||||
{
|
||||
const long codice = recsog.get_long(SOG_CODICE);
|
||||
TRectype* key = new TRectype(LF_DONAZ);
|
||||
key->put(DON_CODICE, codice);
|
||||
int err = _sdonazioni->read(key);
|
||||
if (err == NOERR)
|
||||
{
|
||||
const TRectype& riga = _sdonazioni->row(r);
|
||||
TDate datadon = riga.get_date(DON_DATADON);
|
||||
if ((datadon>=_dataini) && (datadon<=_datafin))
|
||||
for (int r=1; r<=_sdonazioni->rows(); r++)
|
||||
{
|
||||
TString16 tipodon = riga.get(DON_TIPODON);
|
||||
if ((app()._tipodon.empty()) || (app()._tipodon == tipodon))
|
||||
{
|
||||
numdon++;
|
||||
dataultdon = datadon;
|
||||
}
|
||||
}
|
||||
}
|
||||
_numdonsog = format("%3d",numdon);
|
||||
_dataultdon = dataultdon.string();
|
||||
const TRectype& riga = _sdonazioni->row(r);
|
||||
TDate datadon = riga.get_date(DON_DATADON);
|
||||
if ((datadon>=_dataini) && (datadon<=_datafin))
|
||||
{
|
||||
TString16 tipodon = riga.get(DON_TIPODON);
|
||||
if ((app()._tipodon.empty()) || (app()._tipodon == tipodon))
|
||||
{
|
||||
numdon++;
|
||||
dataultdon = datadon;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_numdonsog = format("%3d",numdon);
|
||||
_dataultdon = dataultdon.string();
|
||||
TString80 nome = recsog.get(SOG_COGNOME);
|
||||
nome << " ";
|
||||
nome << recsog.get(SOG_NOME);
|
||||
_cognome_nome = nome;
|
||||
TString256 localita = "";
|
||||
localita << current_cursor()->curr(-ALIAS_LCP).get("S6");
|
||||
if (localita.not_empty() && localita.ok())
|
||||
localita = recsog.get(SOG_DOM_CAP);
|
||||
localita << ' ';
|
||||
if (recsog.get(SOG_DOM_CODLOC).not_empty())
|
||||
{
|
||||
localita << " ";
|
||||
localita << current_cursor()->curr(-ALIAS_LCP).get("S0");
|
||||
localita << " - ";
|
||||
}
|
||||
else
|
||||
{
|
||||
localita = current_cursor()->curr(LF_COMUNI).get(COM_CAPCOM);
|
||||
localita << " ";
|
||||
}
|
||||
localita << current_cursor()->curr(LF_COMUNI).get(COM_DENCOM);
|
||||
localita.trim();
|
||||
_dencom = localita;
|
||||
|
||||
// salto pagina se cambio sezione
|
||||
const TString16 codsez = recsog.get(SOG_CODSEZ);
|
||||
const TString16 codsot = recsog.get(SOG_CODSOT);
|
||||
@ -340,10 +358,15 @@ bool TFrequenza::set_print(int m)
|
||||
reset_files();
|
||||
add_file(LF_SOGGETTI);
|
||||
filtra_sezioni();
|
||||
_condizione = _msk->get(F_CONDIZIONE)[0];
|
||||
_numdon = _msk->get_int(F_NUMDON);
|
||||
_dataini = _msk->get(F_DATAINI);
|
||||
_datafin = _msk->get(F_DATAFIN);
|
||||
_tipodon = _msk->get(F_TIPODON);
|
||||
if ((_tipodon.empty()) && (!_dataini.ok()) && (!_datafin.ok()))
|
||||
_ctrltotale = TRUE;
|
||||
else
|
||||
_ctrltotale = FALSE;
|
||||
_categorie.destroy();
|
||||
const TString16 catpri = _msk->get(F_CAT1);
|
||||
const TString16 catsec = _msk->get(F_CAT2);
|
||||
@ -379,12 +402,25 @@ void TFrequenza::crea_intestazione()
|
||||
if (_tipostampa == elenco)
|
||||
{
|
||||
TString sep(132);
|
||||
sep = "SOGGETTI CHE HANNO FATTO ALMENO ";
|
||||
sep = "SOGGETTI CHE HANNO FATTO ";
|
||||
switch (app()._condizione)
|
||||
{
|
||||
case 'A':
|
||||
sep << "ALMENO ";
|
||||
break;
|
||||
case 'E':
|
||||
sep << "ESATTAMENTE ";
|
||||
break;
|
||||
case 'D':
|
||||
sep << "DA 1 A ";
|
||||
break;
|
||||
}
|
||||
sep << _numdon;
|
||||
sep << " DONAZIONI DAL ";
|
||||
sep << _dataini.string();
|
||||
sep << " AL ";
|
||||
sep << _datafin.string();
|
||||
sep << " DONAZIONI";
|
||||
if (_dataini.ok())
|
||||
sep << " DAL " << _dataini.string();
|
||||
if (_datafin.ok())
|
||||
sep << "AL " << _datafin.string();
|
||||
if (_tipodon.not_empty())
|
||||
sep << " DI TIPO " << _tipodon;
|
||||
if (_stampa80)
|
||||
|
11
at/at2900a.h
11
at/at2900a.h
@ -23,11 +23,12 @@
|
||||
#define F_CAT6 211
|
||||
#define F_D_CAT6 212
|
||||
|
||||
#define F_NUMDON 301
|
||||
#define F_DATAINI 302
|
||||
#define F_DATAFIN 303
|
||||
#define F_TIPODON 304
|
||||
#define F_D_TIPODON 305
|
||||
#define F_CONDIZIONE 301
|
||||
#define F_NUMDON 302
|
||||
#define F_DATAINI 303
|
||||
#define F_DATAFIN 304
|
||||
#define F_TIPODON 305
|
||||
#define F_D_TIPODON 306
|
||||
|
||||
#define F_ELENCO 401
|
||||
#define F_ETICHETTE 402
|
||||
|
@ -269,24 +269,32 @@ BEGIN
|
||||
PROMPT 1 10 "Opzioni di elaborazione"
|
||||
END
|
||||
|
||||
LISTBOX F_CONDIZIONE 11
|
||||
BEGIN
|
||||
PROMPT 2 11 ""
|
||||
ITEM "A|Almeno"
|
||||
ITEM "E|Esattamente"
|
||||
ITEM "D|Da 1 a "
|
||||
END
|
||||
|
||||
NUMBER F_NUMDON 3
|
||||
BEGIN
|
||||
PROMPT 2 11 "Almeno "
|
||||
PROMPT 18 11 ""
|
||||
END
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMTP 17 11 "donazioni dal "
|
||||
PROMTP 24 11 "donazioni dal "
|
||||
END
|
||||
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 43 11 "al "
|
||||
PROMPT 50 11 "al "
|
||||
END
|
||||
|
||||
STRING F_TIPODON 2
|
||||
BEGIN
|
||||
PROMPT 2 12 "Tipo don. "
|
||||
PROMPT 2 12 "Tipo donazioni "
|
||||
FLAGS "U"
|
||||
USE TDN
|
||||
INPUT CODTAB F_TIPODON
|
||||
@ -300,7 +308,7 @@ END
|
||||
|
||||
STRING F_D_TIPODON 30
|
||||
BEGIN
|
||||
PROMPT 17 12 ""
|
||||
PROMPT 24 12 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user