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:
parent
dfe658e3a9
commit
c3b7b55667
123
ca/ca3700.cpp
123
ca/ca3700.cpp
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
149
ca/ca3700.uml
149
ca/ca3700.uml
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user