Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
rivoluzionata la stampa del rendiconto; filtri date su commesse sganciati da docs e movana; usate chiavi migliori; migliorata velocità di esecuzione


git-svn-id: svn://10.65.10.50/trunk@20005 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-01-28 10:51:41 +00:00
parent dfe658e3a9
commit c3b7b55667
4 changed files with 86 additions and 192 deletions

View File

@ -340,11 +340,9 @@ protected:
virtual void set_custom_filter(TCursor& cur) const;
void calcola_date_da_maschera(const TMask& msk, TDate& dal, TDate& al);
int crea_filtro_rmovana_antica(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro);
int crea_filtro_rmovana_moderna(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro);
int crea_filtro_rmovana(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro);
void crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
int crea_filtro_rdoc_antica(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date);
int crea_filtro_rdoc_moderna(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date);
int crea_filtro_rdoc(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date);
void crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
void crea_trr(const TFilename& trr) const;
@ -1259,71 +1257,9 @@ void TPrint_rendiconto_ca_recordset::calcola_date_da_maschera(const TMask& msk,
al = _adata;
}
//vecchio modo di stabilire il filtro ed i darec arec, quando non esistevano chiavi su codcms e codcdc su lf_rmovana
int TPrint_rendiconto_ca_recordset::crea_filtro_rmovana_antica(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro)
{
int cur_key = 2;
if (!_riclassificato)
{
da_rmovana.put(RMOVANA_CODCONTO, _daconto);
a_rmovana.put(RMOVANA_CODCONTO, _aconto);
}
TDate dal, al;
//se siamo fortunati l'anno si può trovare così..
int anno = msk.get_int(F_ANNO);
if (anno > 0)
{
TEsercizi_contabili esc;
esc.code2range(anno, dal, al);
}
if (_dadata.ok())
dal = _dadata;
if (!_vitaintera)
{
if (_adata.ok())
al = _adata;
}
else
al = TDate();
//gestione della chiave di ricerca: se specificata almeno _dadata usa la chiave 3 per DATACOMP,..
//..nell'altro caso usa la chiave 2 per CODCONTO
if (dal.ok())
{
cur_key = 3;
da_rmovana.put(RMOVANA_DATACOMP, dal);
if (al.ok())
a_rmovana.put(RMOVANA_DATACOMP, al);
if (!_riclassificato)
filtro << "BETWEEN(CODCONTO,\"" << _daconto << "\",\"" << _aconto << "\")";
}
else
filtro << "BETWEEN(DATACOMP," << dal.date2ansi() << ',' << al.date2ansi() << ')';
if (_codcosto.not_empty())
{
if (filtro.not_empty())
filtro << "&&";
filtro << "(" << RMOVANA_CODCCOSTO << "==\"" << _codcosto << "\")";
}
if (_codcms.not_empty())
{
if (filtro.not_empty())
filtro << "&&";
filtro << "(" << RMOVANA_CODCMS << "==\"" << _codcms << "\")";
}
if (_codfas.not_empty())
{
if (filtro.not_empty())
filtro << "&&";
filtro << "(" << RMOVANA_CODFASE << "==\"" << _codfas << "\")";
}
return cur_key;
}
//nuovo modo di costruire il filtro e darec arec, da quando esistono le chiavi per codcm e codcdc su lf_rmovana
int TPrint_rendiconto_ca_recordset::crea_filtro_rmovana_moderna(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro)
int TPrint_rendiconto_ca_recordset::crea_filtro_rmovana(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro)
{
int cur_key = 4;
//intanto sistema darec arec
@ -1377,10 +1313,8 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
TRectype a_rmovana(LF_RMOVANA);
TString filtro;
//antico metodo di filtraggio (chiave 2 o 3)
//int cur_key = crea_filtro_rmovana_antica(msk, da_rmovana, a_rmovana, filtro);
//nuovo metodo di filtraggio (chiave 4 o 5)
int cur_key = crea_filtro_rmovana_moderna(msk, da_rmovana, a_rmovana, filtro);
int cur_key = crea_filtro_rmovana(msk, da_rmovana, a_rmovana, filtro);
TCursor cur_rmovana(&rel_rmovana, filtro, cur_key, &da_rmovana, &a_rmovana);
const TRecnotype rmovana_items = cur_rmovana.items();
@ -1450,52 +1384,9 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
}
int TPrint_rendiconto_ca_recordset::crea_filtro_rdoc_antica(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date)
{
int curr_key = 3;
//intanto darec arec
da_rdoc.put(RDOC_PROVV, 'D');
a_rdoc.put(RDOC_PROVV, 'D');
TDate dal, al;
//se siamo fortunati l'anno si può trovare così..
int anno = msk.get_int(F_ANNO);
if (anno > 0)
{
da_rdoc.put(RDOC_ANNO, anno);
a_rdoc.put(RDOC_ANNO, anno);
}
else
{
da_rdoc.put(RDOC_ANNO, _dadata.year());
a_rdoc.put(RDOC_ANNO, _adata.year());
if (_dadata.year() == _adata.year())
anno = _dadata.year();
}
if (anno > 0)
{
TEsercizi_contabili esc;
esc.code2range(anno, dal, al);
}
if (_dadata.ok())
dal = _dadata;
if (!_vitaintera)
{
if (_adata.ok())
al = _adata;
}
else
al = TDate();
filtro_date << "BETWEEN(33->DATADOC," << dal.date2ansi() << ',' << al.date2ansi() << ')';
return curr_key;
}
//fatta su chiave 6 e 7 di lf_rdoc; non controlla le date, ammettendo movimenti non rientranti nell'intervallo di..
//..date scelto dalla maschera, purchè tali movimenti appartengano a commessa/cdc in esame
int TPrint_rendiconto_ca_recordset::crea_filtro_rdoc_moderna(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date)
int TPrint_rendiconto_ca_recordset::crea_filtro_rdoc(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date)
{
int cur_key = 6;
//intanto sistema darec arec
@ -1533,10 +1424,8 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
TRectype a_rdoc(LF_RIGHEDOC);
TString filtro_date;
//metodo antico
//const int cur_key = crea_filtro_rdoc_antica(msk, da_rdoc, a_rdoc, filtro_date);
//metodo moderno
const int cur_key = crea_filtro_rdoc_moderna(msk, da_rdoc, a_rdoc, filtro_date);
const int cur_key = crea_filtro_rdoc(msk, da_rdoc, a_rdoc, filtro_date);
TContabilizzazione_analitica cont_anal; //oggetto necessario per contabilizzare il documento in osservazione

View File

@ -11,7 +11,7 @@
#define F_DATAFIN 257
#define F_REV_COSRIC 258
#define F_IMPLODE_ROWS 259
#define F_VITAINTERA 261
#define F_VITAINTERA 261
#define F_PATH 262
//campi generati dai piani dei conti

View File

@ -8,7 +8,7 @@ BUTTON DLG_EXPORT 2 2
BEGIN
PROMPT 1 1 "~Esporta XLS"
MESSAGE EXIT,K_F6
PICTURE TOOL_EXPORT
PICTURE TOOL_EXCEL
END
ENDPAGE
@ -71,19 +71,50 @@ BEGIN
ADD NONE
END
GROUPBOX DLG_NULL 76 6
BEGIN
PROMPT 1 3 "@bParametri stampa"
END
BOOLEAN F_REV_COSRIC
BEGIN
PROMPT 1 3 "Stampa Ricavi prima dei Costi"
PROMPT 2 4 "Stampa Ricavi prima dei Costi"
END
BOOLEAN F_IMPLODE_ROWS
BEGIN
PROMPT 1 4 "Compatta movimenti ripartiti"
PROMPT 2 5 "Compatta movimenti ripartiti"
END
SPREADSHEET F_RIGHE -1 -6
BOOLEAN F_VITAINTERA
BEGIN
PROMPT 0 6 "Centro di Costo / Commessa / Fase"
PROMPT 2 6 "Includere movimenti e documenti al di fuori della durata della commessa (vita intera commessa)"
END
DATE F_DATAINI
BEGIN
PROMPT 2 9 "Dalla data "
END
DATE F_DATAFIN
BEGIN
PROMPT 36 9 "Alla data "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 10 "Digitare o selezionare attraverso la ricerca la cartella in cui creare il file rendiconto.xls. E' necessario indicare l'intero percorso!"
END
STRING F_PATH 256 40
BEGIN
PROMPT 2 11 "Cartella dove esportare il file rendiconto.xls "
DSELECT
END
SPREADSHEET F_RIGHE -1 -2
BEGIN
PROMPT 0 14 "Centro di Costo / Commessa / Fase"
ITEM "Cdc1"
ITEM "Cdc2"
ITEM "Cdc3"
@ -98,34 +129,6 @@ BEGIN
ITEM "Cdc12"
END
BOOLEAN F_VITAINTERA
BEGIN
PROMPT 2 -6 "Includere esercizi successivi (vita intera)"
MESSAGE FALSE ENABLE,F_DATAFIN
MESSAGE TRUE CLEAR,F_DATAFIN
END
DATE F_DATAINI
BEGIN
PROMPT 2 -5 "Dalla data "
END
DATE F_DATAFIN
BEGIN
PROMPT 36 -5 "Alla data "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 -3 "Digitare o selezionare attraverso la ricerca la cartella in cui creare il file rendiconto.xls. E' necessario indicare l'intero percorso!"
END
STRING F_PATH 256 40
BEGIN
PROMPT 2 -2 "Cartella dove esportare il file rendiconto.xls "
DSELECT
END
ENDPAGE
PAGE "Conti" 0 2 0 0
@ -162,84 +165,84 @@ ENDPAGE
PAGE "Istruzioni" 0 2 0 0
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 "@bUtilizzo sheet"
END
TEXT -1
BEGIN
PROMPT 2 1 "Lasciare vuoto lo sheet significa selezionare tutti i cdc/commesse."
END
TEXT -1
BEGIN
PROMPT 2 2 "Ogni riga aggiunta specifica un particolare cdc/commessa."
END
GROUPBOX DLG_NULL 78 12
BEGIN
PROMPT 1 1 "@bUtilizzo campi dalla/alla data ed esercizio"
END
TEXT -1
BEGIN
PROMPT 1 2 "1) Lasciare vuoti tutti i campi non pone alcun limite sulle date di movimenti"
PROMPT 0 4 "@bUtilizzo campi relativi alle date"
END
TEXT -1
BEGIN
PROMPT 1 3 " e documenti."
END
TEXT -1
BEGIN
PROMPT 1 4 "2) Selezionare un esercizio senza specificare date equivale a porre come date"
PROMPT 1 5 "@bVita intera"
END
TEXT -1
BEGIN
PROMPT 1 5 " limite l'inizio e la fine dell'esercizio stesso."
END
TEXT -1
BEGIN
PROMPT 1 6 "3) Selezionare un esercizio implica che i campi data accettino solo date"
PROMPT 2 6 "Spuntato => non porre limiti alle date di movimenti e documenti esaminati."
END
TEXT -1
BEGIN
PROMPT 1 7 " appartenenti all'esercizio."
END
TEXT -1
BEGIN
PROMPT 1 8 "4) Lasciare vuoto l'esercizio consente di impostare un intervallo di date"
PROMPT 2 7 "NON spuntato => utilizzare date limite e/o esercizio per movimenti e documenti esaminati "
END
TEXT -1
BEGIN
PROMPT 1 9 " qualunque, anche comprendente più di un esercizio."
PROMPT 1 8 "@bSelezionanre un Esercizio"
END
TEXT -1
BEGIN
PROMPT 1 10 "5) Includere esercizi successivi equivale a non porre il limite alla data"
PROMPT 2 9 "Senza specificare date equivale a porre come date limite l'inizio e la fine dell'esercizio stesso."
END
TEXT -1
BEGIN
PROMPT 1 11 " anche se l'esercizio risulta selezionato."
END
GROUPBOX DLG_NULL 76 4
BEGIN
PROMPT 1 13 "@bUtilizzo sheet"
PROMPT 2 10 "Implica che i campi data limite accettino solo date appartenenti all'esercizio."
END
TEXT -1
BEGIN
PROMPT 1 14 "1) Lasciare vuoto lo sheet significa selezionare tutti i cdc/commesse."
PROMPT 2 11 "Lasciare vuoto l'esercizio consente di impostare un intervallo di date qualunque,anche comprendente più di un esercizio."
END
TEXT -1
BEGIN
PROMPT 1 15 "2) Ogni riga aggiunta specifica un particolare cdc/commessa."
END
GROUPBOX DLG_NULL 76 4
BEGIN
PROMPT 1 17 "@bGenerale"
PROMPT 1 12 "@bIndicare date limite"
END
TEXT -1
BEGIN
PROMPT 1 18 "1) Compattare i movimenti ripartiti: riporta temporaneamente tutti i movimenti"
PROMPT 2 13 "SENZA specificare commesse: considera solo commesse la cui durata ricade almeno in parte nell'intervallo indicato"
END
TEXT -1
BEGIN
PROMPT 2 14 "Specificando una o più commesse: non considera alcuna limitazione sulla durata della/e commessa/e."
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 17 "@bGenerale"
END
TEXT -1
BEGIN
PROMPT 1 18 "Compattare i movimenti ripartiti: riporta temporaneamente tutti i movimenti"
END
TEXT -1

View File

@ -16,7 +16,9 @@ CODCCORI|1|20|0|Codice centro di costo originario
CODCMSORI|1|20|0|Codice commessa originario
CODFASEORI|1|10|0|Codice fase originario
CODCONTORI|1|20|0|Codice conto originario
3
5
NUMREG+NUMRIG|
CODCONTO+DATACOMP+NUMREG+NUMRIG|X
DATACOMP+NUMREG+NUMRIG|X
CODCMS+CODCCOSTO+NUMREG+NUMRIG|X
CODCCOSTO+CODCMS+NUMREG+NUMRIG|X