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;
|
virtual void set_custom_filter(TCursor& cur) const;
|
||||||
|
|
||||||
void calcola_date_da_maschera(const TMask& msk, TDate& dal, TDate& al);
|
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(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);
|
|
||||||
void crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
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(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);
|
|
||||||
void crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
void crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
||||||
|
|
||||||
void crea_trr(const TFilename& trr) const;
|
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;
|
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
|
//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;
|
int cur_key = 4;
|
||||||
//intanto sistema darec arec
|
//intanto sistema darec arec
|
||||||
@ -1377,10 +1313,8 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
|
|||||||
TRectype a_rmovana(LF_RMOVANA);
|
TRectype a_rmovana(LF_RMOVANA);
|
||||||
TString filtro;
|
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)
|
//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);
|
TCursor cur_rmovana(&rel_rmovana, filtro, cur_key, &da_rmovana, &a_rmovana);
|
||||||
const TRecnotype rmovana_items = cur_rmovana.items();
|
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..
|
//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
|
//..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;
|
int cur_key = 6;
|
||||||
//intanto sistema darec arec
|
//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);
|
TRectype a_rdoc(LF_RIGHEDOC);
|
||||||
TString filtro_date;
|
TString filtro_date;
|
||||||
|
|
||||||
//metodo antico
|
|
||||||
//const int cur_key = crea_filtro_rdoc_antica(msk, da_rdoc, a_rdoc, filtro_date);
|
|
||||||
//metodo moderno
|
//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
|
TContabilizzazione_analitica cont_anal; //oggetto necessario per contabilizzare il documento in osservazione
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#define F_DATAFIN 257
|
#define F_DATAFIN 257
|
||||||
#define F_REV_COSRIC 258
|
#define F_REV_COSRIC 258
|
||||||
#define F_IMPLODE_ROWS 259
|
#define F_IMPLODE_ROWS 259
|
||||||
#define F_VITAINTERA 261
|
#define F_VITAINTERA 261
|
||||||
#define F_PATH 262
|
#define F_PATH 262
|
||||||
|
|
||||||
//campi generati dai piani dei conti
|
//campi generati dai piani dei conti
|
||||||
|
149
ca/ca3700.uml
149
ca/ca3700.uml
@ -8,7 +8,7 @@ BUTTON DLG_EXPORT 2 2
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "~Esporta XLS"
|
PROMPT 1 1 "~Esporta XLS"
|
||||||
MESSAGE EXIT,K_F6
|
MESSAGE EXIT,K_F6
|
||||||
PICTURE TOOL_EXPORT
|
PICTURE TOOL_EXCEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -71,19 +71,50 @@ BEGIN
|
|||||||
ADD NONE
|
ADD NONE
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "@bParametri stampa"
|
||||||
|
END
|
||||||
|
|
||||||
BOOLEAN F_REV_COSRIC
|
BOOLEAN F_REV_COSRIC
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Stampa Ricavi prima dei Costi"
|
PROMPT 2 4 "Stampa Ricavi prima dei Costi"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_IMPLODE_ROWS
|
BOOLEAN F_IMPLODE_ROWS
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Compatta movimenti ripartiti"
|
PROMPT 2 5 "Compatta movimenti ripartiti"
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE -1 -6
|
BOOLEAN F_VITAINTERA
|
||||||
BEGIN
|
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 "Cdc1"
|
||||||
ITEM "Cdc2"
|
ITEM "Cdc2"
|
||||||
ITEM "Cdc3"
|
ITEM "Cdc3"
|
||||||
@ -98,34 +129,6 @@ BEGIN
|
|||||||
ITEM "Cdc12"
|
ITEM "Cdc12"
|
||||||
END
|
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
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Conti" 0 2 0 0
|
PAGE "Conti" 0 2 0 0
|
||||||
@ -162,84 +165,84 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Istruzioni" 0 2 0 0
|
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
|
GROUPBOX DLG_NULL 78 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bUtilizzo campi dalla/alla data ed esercizio"
|
PROMPT 0 4 "@bUtilizzo campi relativi alle date"
|
||||||
END
|
|
||||||
|
|
||||||
TEXT -1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 2 "1) Lasciare vuoti tutti i campi non pone alcun limite sulle date di movimenti"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 " e documenti."
|
PROMPT 1 5 "@bVita intera"
|
||||||
END
|
|
||||||
|
|
||||||
TEXT -1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 4 "2) Selezionare un esercizio senza specificare date equivale a porre come date"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 " limite l'inizio e la fine dell'esercizio stesso."
|
PROMPT 2 6 "Spuntato => non porre limiti alle date di movimenti e documenti esaminati."
|
||||||
END
|
|
||||||
|
|
||||||
TEXT -1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 6 "3) Selezionare un esercizio implica che i campi data accettino solo date"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 " appartenenti all'esercizio."
|
PROMPT 2 7 "NON spuntato => utilizzare date limite e/o esercizio per movimenti e documenti esaminati "
|
||||||
END
|
|
||||||
|
|
||||||
TEXT -1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 8 "4) Lasciare vuoto l'esercizio consente di impostare un intervallo di date"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 " qualunque, anche comprendente più di un esercizio."
|
PROMPT 1 8 "@bSelezionanre un Esercizio"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
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
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 " anche se l'esercizio risulta selezionato."
|
PROMPT 2 10 "Implica che i campi data limite accettino solo date appartenenti all'esercizio."
|
||||||
END
|
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 4
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 13 "@bUtilizzo sheet"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
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
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 15 "2) Ogni riga aggiunta specifica un particolare cdc/commessa."
|
PROMPT 1 12 "@bIndicare date limite"
|
||||||
END
|
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 4
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 17 "@bGenerale"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
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
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
|
@ -16,7 +16,9 @@ CODCCORI|1|20|0|Codice centro di costo originario
|
|||||||
CODCMSORI|1|20|0|Codice commessa originario
|
CODCMSORI|1|20|0|Codice commessa originario
|
||||||
CODFASEORI|1|10|0|Codice fase originario
|
CODFASEORI|1|10|0|Codice fase originario
|
||||||
CODCONTORI|1|20|0|Codice conto originario
|
CODCONTORI|1|20|0|Codice conto originario
|
||||||
3
|
5
|
||||||
NUMREG+NUMRIG|
|
NUMREG+NUMRIG|
|
||||||
CODCONTO+DATACOMP+NUMREG+NUMRIG|X
|
CODCONTO+DATACOMP+NUMREG+NUMRIG|X
|
||||||
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