Patch level :10.0 72
Files correlati : Ricompilazione Demo : [ ] Commento :riportate le modifiche 5.0 alla 1072 git-svn-id: svn://10.65.10.50/trunk@16827 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2aed525877
commit
e9caf569dd
@ -424,6 +424,7 @@ END
|
||||
BOOLEAN F_CMS_APPOGGIO
|
||||
BEGIN
|
||||
PROMPT 2 6 "Commessa di appoggio"
|
||||
FIELD APPOGGIO
|
||||
END
|
||||
|
||||
DATE F_CMS_DATAGARA
|
||||
|
@ -134,7 +134,7 @@ protected:
|
||||
bool pareggia_commessa(TAnal_mov& anal_mov);
|
||||
|
||||
public:
|
||||
bool cappotta_movimento(TAnal_mov& anal_mov);
|
||||
bool elabora_movimento(TAnal_mov& anal_mov, const bool esplodi);
|
||||
TRib_movanal_app(){}
|
||||
};
|
||||
|
||||
@ -248,46 +248,67 @@ bool TRib_movanal_app::pareggia_commessa(TAnal_mov& anal_mov)
|
||||
return ho_cambiato_qualchecosa;
|
||||
}
|
||||
|
||||
bool TRib_movanal_app::cappotta_movimento(TAnal_mov& anal_mov)
|
||||
bool TRib_movanal_app::elabora_movimento(TAnal_mov& anal_mov, const bool esplodi)
|
||||
{
|
||||
TRecord_array& input_rows = anal_mov.body(); //record_array con le righe del mov_anal (INPUT)
|
||||
bool do_rewrite = false;
|
||||
|
||||
//Per prima cosa prende le righe del movimento su RMOVANA e le ricompatta..
|
||||
TRecord_array compact_rows = input_rows; //record array con le righe compattate da creare con la..
|
||||
compact_rows.destroy_rows(); //..implode_rows(); intanto le azzera per sicurezza
|
||||
//Imploditore
|
||||
ca_implode_rows(input_rows, compact_rows);
|
||||
|
||||
//..poi lo riesplode in tutte le righe che possono nascere secondo le regole delle ripartizioni!
|
||||
TRecord_array output_rows = input_rows; //crea il record_array di output come copia dell'INPUT..
|
||||
output_rows.destroy_rows(); //..e poi lo pulisce
|
||||
|
||||
bool do_rewrite = false;
|
||||
//Esploditore
|
||||
if (explode_rows(compact_rows, output_rows, anal_mov.get_int(MOVANA_ANNOES), anal_mov.get_char(MOVANA_TIPOMOV)))
|
||||
if (esplodi)
|
||||
{
|
||||
input_rows = output_rows; //rimette i record elaborati negli originali
|
||||
do_rewrite = true;
|
||||
}
|
||||
if (pareggia_commessa(anal_mov))
|
||||
do_rewrite = true;
|
||||
//Imploditore
|
||||
ca_implode_rows(input_rows, compact_rows);
|
||||
//..poi lo riesplode in tutte le righe che possono nascere secondo le regole delle ripartizioni!
|
||||
TRecord_array output_rows = input_rows; //crea il record_array di output come copia dell'INPUT..
|
||||
output_rows.destroy_rows(); //..e poi lo pulisce
|
||||
|
||||
if (_definitivo) //se l'elaborazione e' definitiva...
|
||||
//Esploditore
|
||||
if (explode_rows(compact_rows, output_rows, anal_mov.get_int(MOVANA_ANNOES), anal_mov.get_char(MOVANA_TIPOMOV)))
|
||||
{
|
||||
input_rows = output_rows; //rimette i record elaborati negli originali
|
||||
do_rewrite = true;
|
||||
}
|
||||
if (pareggia_commessa(anal_mov))
|
||||
do_rewrite = true;
|
||||
|
||||
if (_definitivo) //se l'elaborazione e' definitiva...
|
||||
{
|
||||
anal_mov.put(MOVANA_BLOCCATO, 'X'); //..mette bloccato = X nella testata del movimento
|
||||
do_rewrite = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
anal_mov.put(MOVANA_BLOCCATO, 'X'); //..mette bloccato = X nella testata del movimento
|
||||
do_rewrite = true;
|
||||
//Imploditore
|
||||
do_rewrite = ca_implode_rows(input_rows, compact_rows);
|
||||
if (do_rewrite)
|
||||
input_rows = compact_rows; // rimette i record compattati negli originali
|
||||
}
|
||||
|
||||
return do_rewrite; //se ha elaborato delle righe e/o e' una elaborazione definitiva, riscrive la..
|
||||
}
|
||||
|
||||
static bool cappotta_callback(const TRelation& rel, void* pJolly)
|
||||
static bool ripartisci_callback(const TRelation& rel, void* pJolly)
|
||||
{
|
||||
TRib_movanal_app& app = *(TRib_movanal_app*)pJolly;
|
||||
const long numreg = rel.curr().get_long(MOVANA_NUMREG);
|
||||
TAnal_mov anal_mov(numreg);
|
||||
//se va tutto bene riscrive l'intero movimento analitico con conseguente ricalcolo saldi
|
||||
if (app.cappotta_movimento(anal_mov))
|
||||
if (app.elabora_movimento(anal_mov, true))
|
||||
anal_mov.rewrite(rel.lfile());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool compatta_callback(const TRelation& rel, void* pJolly)
|
||||
{
|
||||
TRib_movanal_app& app = *(TRib_movanal_app*)pJolly;
|
||||
const long numreg = rel.curr().get_long(MOVANA_NUMREG);
|
||||
TAnal_mov anal_mov(numreg);
|
||||
//se va tutto bene riscrive l'intero movimento analitico con conseguente ricalcolo saldi
|
||||
if (app.elabora_movimento(anal_mov, false))
|
||||
anal_mov.rewrite(rel.lfile());
|
||||
|
||||
return true;
|
||||
@ -298,9 +319,6 @@ void TRib_movanal_app::main_loop()
|
||||
TRib_movanal_msk mask;
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
// avvisa l'utente scapestrato che se fa una elaborazione definitiva
|
||||
// blocchera' i movimenti che processa
|
||||
_definitivo = mask.get_bool(F_DEFINITIVO);
|
||||
//deve scandire il file MOVANA con chiave 2 (per data e numero di registrazione)
|
||||
TRelation rel_movana(LF_MOVANA);
|
||||
TRectype darec(LF_MOVANA), arec(LF_MOVANA);
|
||||
@ -315,8 +333,19 @@ void TRib_movanal_app::main_loop()
|
||||
if (items > 0)
|
||||
{
|
||||
bool run = yesno_box(FR("Si desidera elaborare %ld movimenti?"), items);
|
||||
if (run && _definitivo)
|
||||
run = yesno_box(TR("E' stata selezionata l'elaborazione definitiva\nSi desidera proseguire?"));
|
||||
//e' una compattazione?
|
||||
const bool compattazione = mask.get_bool(F_COMPATTA);
|
||||
//se e' un ripartizione potrebbe essere definitiva!
|
||||
if (!compattazione)
|
||||
{
|
||||
// avvisa l'utente scapestrato che se fa una ripartizione definitiva
|
||||
// blocchera' i movimenti che processa e non potra' piu' tornare indietro
|
||||
_definitivo = mask.get_bool(F_DEFINITIVO);
|
||||
if (run && _definitivo)
|
||||
run = yesno_box(TR("E' stata selezionata l'elaborazione definitiva\nSi desidera proseguire?"));
|
||||
}
|
||||
|
||||
//Presa la decisione si parte! Tenetevi forte...
|
||||
if (run)
|
||||
{
|
||||
// Riempie la lista della causali dei movimenti da pareggiare
|
||||
@ -336,8 +365,11 @@ void TRib_movanal_app::main_loop()
|
||||
}
|
||||
}
|
||||
|
||||
cur_movana.scan(cappotta_callback, this, TR("Ripartizione movimenti..."));
|
||||
}
|
||||
if (compattazione)
|
||||
cur_movana.scan(compatta_callback, this, TR("Compattamento movimenti..."));
|
||||
else
|
||||
cur_movana.scan(ripartisci_callback, this, TR("Ripartizione movimenti..."));
|
||||
} //if(run)...
|
||||
}
|
||||
else
|
||||
message_box(TR("Non ci sono movimenti da elaborare nel periodo selezionato"));
|
||||
|
@ -4,6 +4,7 @@
|
||||
#define F_DATAFIN 202
|
||||
#define F_DEFINITIVO 203
|
||||
#define F_ANNO 204
|
||||
#define F_COMPATTA 205
|
||||
#define F_RIGHE 300
|
||||
//Devono valere un numero piu' alto di S_CDC12 (che attualmente e' 112) senno' non nascono in fila nello..
|
||||
//..sheet
|
||||
|
@ -33,9 +33,9 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Ripartizione movimenti" 0 0 0 2
|
||||
PAGE "Ripartizione\Compattamento movimenti" 0 0 0 2
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
GROUPBOX DLG_NULL 78 8
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri di elaborazione"
|
||||
END
|
||||
@ -56,11 +56,6 @@ BEGIN
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
BOOLEAN F_DEFINITIVO
|
||||
BEGIN
|
||||
PROMPT 42 2 "Blocca movimenti elaborati"
|
||||
END
|
||||
|
||||
DATA F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 2 3 "Dalla data "
|
||||
@ -73,14 +68,29 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
RADIOBUTTON F_COMPATTA 1 40
|
||||
BEGIN
|
||||
PROMPT 1 5 "@bCommesse/CdC da pareggiare"
|
||||
PROMPT 2 4 "Elaborazione richiesta"
|
||||
ITEM " |Ripartizione"
|
||||
MESSAGE ENABLE,F_DEFINITIVO
|
||||
ITEM "X|Compattamento"
|
||||
MESSAGE CLEAR,F_DEFINITIVO
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE -1 -4
|
||||
BOOLEAN F_DEFINITIVO
|
||||
BEGIN
|
||||
PROMPT 1 6 ""
|
||||
PROMPT 2 7 "Blocca movimenti elaborati (DEFINITIVO e vale solo per ripartizione)"
|
||||
END
|
||||
|
||||
TEXT -1
|
||||
BEGIN
|
||||
PROMPT 1 9 "@bCommesse/CdC da pareggiare"
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE -1 -1
|
||||
BEGIN
|
||||
PROMPT 1 10 ""
|
||||
ITEM "Cms 1"
|
||||
ITEM "Cms 2"
|
||||
ITEM "Cms 3"
|
||||
|
@ -105,18 +105,19 @@
|
||||
<field border="2" x="1" y="5.5" type="Linea" width="169" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="2" height="1.5" page_break="1">
|
||||
<groupby>LEVEL C; 2</groupby>
|
||||
<groupby>(LEVELC;2)||(LEVEL=4)</groupby>
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<field x="1" type="Array" bg_color="#C0C0C0" width="22">
|
||||
<field x="1" type="Array" bg_color="#C0C0C0" width="25">
|
||||
<source>LEVEL</source>
|
||||
<list>
|
||||
<li Value="Commesse terminate nel" Code="0" />
|
||||
<li Value="Commesse terminate nel" Code="1" />
|
||||
<li Value="Commesse che terminano oltre il" Code="2" />
|
||||
<li Value="Commesse che terminano oltre il" Code="3" />
|
||||
<li Value="Commesse di supporto del" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="23" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
<field x="26" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
<source>ANNO</source>
|
||||
</field>
|
||||
<field border="1" x="1" y="1.25" type="Linea" width="169" height="0" pattern="1" />
|
||||
@ -124,7 +125,7 @@
|
||||
<source>LEVEL</source>
|
||||
<postscript description="H2.101 POSTSCRIPT">MESSAGE COPY,F2.101</postscript>
|
||||
</field>
|
||||
<field x="29" type="Numero" hidden="1" align="right" width="4" id="102" pattern="1">
|
||||
<field x="32" type="Numero" hidden="1" align="right" width="4" id="102" pattern="1">
|
||||
<source>ANNO</source>
|
||||
<postscript description="H2.102 POSTSCRIPT">MESSAGE COPY,F2.102</postscript>
|
||||
</field>
|
||||
@ -132,13 +133,14 @@
|
||||
<section type="Head" level="3" height="1.5">
|
||||
<groupby>LEVEL</groupby>
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<field x="3" type="Array" bg_color="#C0C0C0" width="40" pattern="1">
|
||||
<field x="3" type="Array" bg_color="#C0C0C0" width="45" pattern="1">
|
||||
<source>LEVEL</source>
|
||||
<list>
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="0" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="1" />
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="2" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="3" />
|
||||
<li Value="Commesse di supporto dell'esercizio selezionato" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field border="1" x="2" y="1.25" type="Linea" width="169" height="0" pattern="1" />
|
||||
@ -245,14 +247,20 @@ THEN
|
||||
<section type="Foot" level="1" height="3">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<field border="2" x="1" y="0.75" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="1.5" type="Testo" fg_color="#FFFFFF" bg_color="#000000" width="25" height="1.5" text="TOTALI GENERALI " />
|
||||
<field x="1" y="1.5" type="Testo" fg_color="#FFFFFF" bg_color="#000000" width="36" text="TOTALI GENERALI " />
|
||||
<field x="60.5" y="1.5" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@" />
|
||||
<field x="74" y="1.5" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="2" height="2.5">
|
||||
<section type="Foot" level="2" height="4.5">
|
||||
<font italic="1" face="Courier New" bold="1" size="8" />
|
||||
<prescript description="F2 PRESCRIPT">#LEVEL @
|
||||
4 = IF
|
||||
"90@" ENABLE
|
||||
ELSE
|
||||
"90@" DISABLE
|
||||
THEN</prescript>
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="1" type="Array" bg_color="#C0C0C0" width="27">
|
||||
<field x="1" y="1" type="Array" bg_color="#C0C0C0" width="30">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<source>H2.101</source>
|
||||
<list>
|
||||
@ -260,44 +268,62 @@ THEN
|
||||
<li Value="TOTALI Commesse terminate nel" Code="1" />
|
||||
<li Value="TOTALI Commesse che terminano oltre il" Code="2" />
|
||||
<li Value="TOTALI Commesse che terminano oltre il" Code="3" />
|
||||
<li Value="TOTALI Commesse di supporto del" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="28" y="1" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
<field x="31" y="1" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<source>H2.102</source>
|
||||
</field>
|
||||
<field border="1" x="1" y="3.25" deactivated="1" type="Linea" width="169" height="0" pattern="1">
|
||||
<groups>90</groups>
|
||||
</field>
|
||||
<field x="1" y="3.5" deactivated="1" type="Testo" fg_color="#FFFFFF" bg_color="#808080" width="30" text="TOTALI commesse normali relative al">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<groups>90</groups>
|
||||
</field>
|
||||
<field x="31" y="3.5" type="Numero" align="right" fg_color="#FFFFFF" bg_color="#808080" width="6">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<groups>90</groups>
|
||||
<source>H2.102</source>
|
||||
</field>
|
||||
<field x="60.5" y="1" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<postscript description="F2.69 POSTSCRIPT">MESSAGE ADD,F1.69</postscript>
|
||||
<postscript description="F2.69 POSTSCRIPT">MESSAGE ADD,F1.69
|
||||
</postscript>
|
||||
</field>
|
||||
<field y="1" type="Numero" hidden="1" align="right" width="1" id="101" pattern="1" />
|
||||
<field x="34" y="1" type="Numero" hidden="1" align="right" width="4" id="102" pattern="1">
|
||||
<field x="37" y="1" type="Numero" hidden="1" align="right" width="4" id="102" pattern="1">
|
||||
<postscript description="F2.102 POSTSCRIPT">MESSAGE COPY,F2.101</postscript>
|
||||
</field>
|
||||
<field x="74" y="1" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<postscript description="F2.169 POSTSCRIPT">MESSAGE ADD,F1.169
|
||||
MESSAGE RESET,169</postscript>
|
||||
MESSAGE RESET,169
|
||||
</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="3" height="2">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<field border="1" x="2" y="0.25" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="0.5" type="Array" width="33" pattern="1">
|
||||
<field x="1" y="0.5" type="Array" width="40" pattern="1">
|
||||
<source>H3.101</source>
|
||||
<list>
|
||||
<li Value="TOTALI Commesse avviate in esercizi precedenti" Code="0" />
|
||||
<li Value="TOTALI Commesse avviate nell'esercizio selezionato" Code="1" />
|
||||
<li Value="TOTALI Commesse avviate in esercizi precedenti" Code="2" />
|
||||
<li Value="TOTALI Commesse avviate nell'esercizio selezionato" Code="3" />
|
||||
<li Value="TOTALI Commesse di supporto dell'esercizio selezionato" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="60.5" y="0.5" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F3.69 POSTSCRIPT">MESSAGE ADD,F2.69</postscript>
|
||||
<postscript description="F3.69 POSTSCRIPT">MESSAGE ADD,F2.69
|
||||
MESSAGE ADD,F2.269</postscript>
|
||||
</field>
|
||||
<field y="0.5" type="Numero" hidden="1" align="right" width="1" id="101" pattern="1" />
|
||||
<field x="74" y="0.5" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F3.169 POSTSCRIPT">MESSAGE ADD,F2.169
|
||||
MESSAGE ADD,F2.369
|
||||
MESSAGE RESET,169</postscript>
|
||||
</field>
|
||||
</section>
|
||||
|
@ -93,15 +93,16 @@
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2" height="1.5">
|
||||
<groupby>LEVEL C; 2</groupby>
|
||||
<groupby>(LEVELC;2)||(LEVEL=4)</groupby>
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<field x="1" type="Array" bg_color="#C0C0C0" width="22">
|
||||
<field x="1" type="Array" bg_color="#C0C0C0" width="25">
|
||||
<source>LEVEL</source>
|
||||
<list>
|
||||
<li Value="Commesse terminate nel" Code="0" />
|
||||
<li Value="Commesse terminate nel" Code="1" />
|
||||
<li Value="Commesse che terminano oltre il" Code="2" />
|
||||
<li Value="Commesse che terminano oltre il" Code="3" />
|
||||
<li Value="Commesse di supporto del" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="23" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
@ -119,13 +120,14 @@
|
||||
<section type="Head" level="3" hidden="1" height="1.5">
|
||||
<groupby>LEVEL</groupby>
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<field x="3" type="Array" bg_color="#C0C0C0" width="40" pattern="1">
|
||||
<field x="3" type="Array" bg_color="#C0C0C0" width="45" pattern="1">
|
||||
<source>LEVEL</source>
|
||||
<list>
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="0" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="1" />
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="2" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="3" />
|
||||
<li Value="Commesse di supporto dell'esercizio selezionato" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field border="1" x="2" y="1.25" type="Linea" width="169" height="0" pattern="1" />
|
||||
@ -147,8 +149,7 @@
|
||||
</field>
|
||||
<field x="48.5" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<source>#RICAVI-#COSTI</source>
|
||||
<postscript description="B1.169 POSTSCRIPT">MESSAGE ADD,F4.169
|
||||
MESSAGE ADD,F3.169</postscript>
|
||||
<postscript description="B1.169 POSTSCRIPT">MESSAGE ADD,F3.169</postscript>
|
||||
</field>
|
||||
<field x="61.5" type="Numero" align="right" width="4" id="170" pattern="1">
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
@ -163,11 +164,14 @@ ELSE
|
||||
-
|
||||
100
|
||||
*
|
||||
0
|
||||
ROUND
|
||||
DUP \ duplica la % non arrotondata
|
||||
#F3.170 \ e incrementa il campo nel footer3
|
||||
+!
|
||||
0 ROUND \ e alla fine arrotonda quello sul body
|
||||
THEN
|
||||
#THIS !</prescript>
|
||||
</field>
|
||||
<field x="65.5" type="Testo" align="center" width="2" id="171" pattern="1" text="%" />
|
||||
</section>
|
||||
<section type="Foot">
|
||||
<field border="1" x="1" y="0.25" type="Linea" width="169" height="0" pattern="1" />
|
||||
@ -182,19 +186,25 @@ THEN
|
||||
<section type="Foot" level="1" height="3">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<field border="2" x="1" y="0.5" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="1" type="Testo" valign="center" fg_color="#FFFFFF" bg_color="#000000" width="20" height="1.5" id="1" text="TOTALI GENERALI " />
|
||||
<field x="21" y="1" type="Stringa" valign="center" fg_color="#FFFFFF" bg_color="#400040" width="15" height="1.5" id="2">
|
||||
<field x="1" y="1" type="Testo" valign="center" fg_color="#FFFFFF" bg_color="#000000" width="20" id="1" text="TOTALI GENERALI " />
|
||||
<field x="21" y="1" type="Stringa" valign="center" fg_color="#FFFFFF" bg_color="#400040" width="15" id="2">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="36" y="1.25" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@" />
|
||||
<field x="49.5" y="1.25" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<field x="36" y="1" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@" />
|
||||
<field x="49.5" y="1" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F1.169 POSTSCRIPT">MESSAGE RESET,169</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" height="3.5">
|
||||
<section type="Foot" level="2" height="4.5">
|
||||
<font italic="1" face="Courier New" size="8" />
|
||||
<prescript description="F2 PRESCRIPT">#LEVEL @
|
||||
	4 = IF
|
||||
	 "90@" ENABLE
|
||||
	ELSE
|
||||
	 "90@" DISABLE
|
||||
THEN</prescript>
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="1" type="Array" bg_color="#C0C0C0" width="28">
|
||||
<field x="1" y="1" type="Array" bg_color="#C0C0C0" width="30">
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<source>H2.101</source>
|
||||
<list>
|
||||
@ -202,12 +212,25 @@ THEN
|
||||
<li Value="TOTALI Commesse terminate nel" Code="1" />
|
||||
<li Value="TOTALI Commesse che terminano oltre il" Code="2" />
|
||||
<li Value="TOTALI Commesse che terminano oltre il" Code="3" />
|
||||
<li Value="TOTALI Commesse di supporto del" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="29" y="1" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<source>H2.102</source>
|
||||
</field>
|
||||
<field border="1" x="1" y="3.25" deactivated="1" type="Linea" width="169" height="0" pattern="1">
|
||||
<groups>90</groups>
|
||||
</field>
|
||||
<field x="1" y="3.5" deactivated="1" type="Testo" fg_color="#FFFFFF" bg_color="#808080" width="30" text="TOTALI commesse normali relative al">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<groups>90</groups>
|
||||
</field>
|
||||
<field x="31" y="3.5" type="Numero" align="right" fg_color="#FFFFFF" bg_color="#808080" width="6">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<groups>90</groups>
|
||||
<source>H2.102</source>
|
||||
</field>
|
||||
<field x="39" y="1" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<postscript description="F2.69 POSTSCRIPT">MESSAGE ADD,F1.69</postscript>
|
||||
@ -231,15 +254,20 @@ MESSAGE RESET,169</postscript>
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="1" />
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="2" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="3" />
|
||||
<li Value="TOTALI Commesse di supporto dell'esercizio selezionato" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="42" y="0.5" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F3.69 POSTSCRIPT">MESSAGE ADD,F2.69</postscript>
|
||||
<postscript description="F3.69 POSTSCRIPT">MESSAGE ADD,F2.69
|
||||
MESSAGE ADD,F2.269
|
||||
</postscript>
|
||||
</field>
|
||||
<field y="0.5" type="Numero" hidden="1" align="right" width="1" id="101" pattern="1" />
|
||||
<field x="55.5" y="0.5" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F3.169 POSTSCRIPT">MESSAGE ADD,F2.169
|
||||
MESSAGE RESET,169</postscript>
|
||||
MESSAGE ADD,F2.369
|
||||
MESSAGE RESET,169
|
||||
</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<sql>USE SALDANA</sql>
|
||||
|
@ -93,15 +93,16 @@
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2" height="1.5">
|
||||
<groupby>LEVEL C; 2</groupby>
|
||||
<groupby>(LEVELC;2)||(LEVEL=4)</groupby>
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<field x="1" type="Array" bg_color="#C0C0C0" width="22">
|
||||
<field x="1" type="Array" bg_color="#C0C0C0" width="25">
|
||||
<source>LEVEL</source>
|
||||
<list>
|
||||
<li Value="Commesse terminate nel" Code="0" />
|
||||
<li Value="Commesse terminate nel" Code="1" />
|
||||
<li Value="Commesse che terminano oltre il" Code="2" />
|
||||
<li Value="Commesse che terminano oltre il" Code="3" />
|
||||
<li Value="Commesse di supporto del" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="23" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
@ -119,13 +120,14 @@
|
||||
<section type="Head" level="3" hidden="1" height="1.5">
|
||||
<groupby>LEVEL</groupby>
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<field x="3" type="Array" bg_color="#C0C0C0" width="40" pattern="1">
|
||||
<field x="3" type="Array" bg_color="#C0C0C0" width="45" pattern="1">
|
||||
<source>LEVEL</source>
|
||||
<list>
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="0" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="1" />
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="2" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="3" />
|
||||
<li Value="Commesse di supporto dell'esercizio selezionato" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field border="1" x="2" y="1.25" type="Linea" width="169" height="0" pattern="1" />
|
||||
@ -138,6 +140,7 @@
|
||||
<section type="Body" level="1" hidden="1">
|
||||
<prescript description="B1 PRESCRIPT">1 #H4.3 \ incrementa il contatore per il numero di righe di cdc
|
||||
+!</prescript>
|
||||
<field x="65.5" type="Testo" align="center" width="2" pattern="1" text="%" />
|
||||
<field x="1" type="Stringa" width="20" id="1" pattern="1">
|
||||
<source>CODCMS</source>
|
||||
</field>
|
||||
@ -146,8 +149,7 @@
|
||||
</field>
|
||||
<field x="48.5" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<source>#RICAVI-#COSTI</source>
|
||||
<postscript description="B1.169 POSTSCRIPT">MESSAGE ADD,F4.169
|
||||
MESSAGE ADD,F3.169</postscript>
|
||||
<postscript description="B1.169 POSTSCRIPT">MESSAGE ADD,F3.169</postscript>
|
||||
</field>
|
||||
<field x="61.5" type="Numero" align="right" width="4" id="170" pattern="1">
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
@ -184,19 +186,25 @@ THEN
|
||||
<section type="Foot" level="1" height="3">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<field border="2" x="1" y="0.5" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="1" type="Testo" valign="center" fg_color="#FFFFFF" bg_color="#000000" width="20" height="1.5" id="1" text="TOTALI GENERALI " />
|
||||
<field x="21" y="1" type="Stringa" valign="center" fg_color="#FFFFFF" bg_color="#400040" width="15" height="1.5" id="2">
|
||||
<field x="1" y="1" type="Testo" valign="center" fg_color="#FFFFFF" bg_color="#000000" width="20" id="1" text="TOTALI GENERALI " />
|
||||
<field x="21" y="1" type="Stringa" valign="center" fg_color="#FFFFFF" bg_color="#400040" width="15" id="2">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
</field>
|
||||
<field x="46.5" y="1.25" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@" />
|
||||
<field x="60" y="1.25" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<field x="46.5" y="1" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@" />
|
||||
<field x="60" y="1" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F1.169 POSTSCRIPT">MESSAGE RESET,169</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="2" height="3.5">
|
||||
<section type="Foot" level="2" height="4.5">
|
||||
<font italic="1" face="Courier New" size="8" />
|
||||
<prescript description="F2 PRESCRIPT">#LEVEL @
|
||||
	4 = IF
|
||||
	 "90@" ENABLE
|
||||
	ELSE
|
||||
	 "90@" DISABLE
|
||||
THEN</prescript>
|
||||
<field border="1" x="1" y="0.5" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="1" y="1" type="Array" bg_color="#C0C0C0" width="28">
|
||||
<field x="1" y="1" type="Array" bg_color="#C0C0C0" width="30">
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<source>H2.101</source>
|
||||
<list>
|
||||
@ -204,12 +212,25 @@ THEN
|
||||
<li Value="TOTALI Commesse terminate nel" Code="1" />
|
||||
<li Value="TOTALI Commesse che terminano oltre il" Code="2" />
|
||||
<li Value="TOTALI Commesse che terminano oltre il" Code="3" />
|
||||
<li Value="TOTALI Commesse di supporto del" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="29" y="1" type="Numero" align="right" bg_color="#C0C0C0" width="6">
|
||||
<font italic="1" face="Arial Narrow" size="8" />
|
||||
<source>H2.102</source>
|
||||
</field>
|
||||
<field border="1" x="1" y="3.25" deactivated="1" type="Linea" width="169" height="0" pattern="1">
|
||||
<groups>90</groups>
|
||||
</field>
|
||||
<field x="1" y="3.5" deactivated="1" type="Testo" fg_color="#FFFFFF" bg_color="#808080" width="30" text="TOTALI commesse normali relative al">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<groups>90</groups>
|
||||
</field>
|
||||
<field x="31" y="3.5" type="Numero" align="right" fg_color="#FFFFFF" bg_color="#808080" width="6">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<groups>90</groups>
|
||||
<source>H2.102</source>
|
||||
</field>
|
||||
<field x="46.5" y="1" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@">
|
||||
<font italic="1" face="Arial Narrow" bold="1" size="8" />
|
||||
<postscript description="F2.69 POSTSCRIPT">MESSAGE ADD,F1.69</postscript>
|
||||
@ -233,15 +254,20 @@ MESSAGE RESET,169</postscript>
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="1" />
|
||||
<li Value="Commesse avviate in esercizi precedenti" Code="2" />
|
||||
<li Value="Commesse avviate nell'esercizio selezionato" Code="3" />
|
||||
<li Value="TOTALI Commesse di supporto dell'esercizio selezionato" Code="4" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="46.5" y="0.5" type="Valuta" align="right" width="13" id="69" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F3.69 POSTSCRIPT">MESSAGE ADD,F2.69</postscript>
|
||||
<postscript description="F3.69 POSTSCRIPT">MESSAGE ADD,F2.69
|
||||
MESSAGE ADD,F2.269
|
||||
</postscript>
|
||||
</field>
|
||||
<field y="0.5" type="Numero" hidden="1" align="right" width="1" id="101" pattern="1" />
|
||||
<field x="60" y="0.5" type="Valuta" align="right" width="13" id="169" pattern="1" text="###.###.###,@@">
|
||||
<postscript description="F3.169 POSTSCRIPT">MESSAGE ADD,F2.169
|
||||
MESSAGE RESET,169</postscript>
|
||||
MESSAGE ADD,F2.369
|
||||
MESSAGE RESET,169
|
||||
</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<sql>USE SALDANA</sql>
|
||||
|
181
ca/ca3883.cpp
181
ca/ca3883.cpp
@ -343,7 +343,26 @@ void TCRPA_report::offset_and_fill_columns(TReport_section& rep_sect, const TStr
|
||||
new_field->set_field("");
|
||||
TString ps = "MESSAGE ADD,F";
|
||||
ps << (rep_sect.level() - 1) << '.' << new_field->id();
|
||||
new_field->set_postscript(ps);
|
||||
|
||||
//somma al totale speciale delle commesse normali
|
||||
if (rep_sect.level() == 3)
|
||||
ps << "\nMESSAGE ADD,F2." << (new_field->id() + 200);
|
||||
|
||||
new_field->set_postscript(ps);
|
||||
|
||||
//Gestione totali delle commesse normali (Adolf!)
|
||||
//Alla fine di tutte le 4 sezioni di commesse normali ci va il totale delle medesime; questo..
|
||||
//..totale va stampato prima della sezione con le commesse di appoggio
|
||||
if (rep_sect.level() == 2)
|
||||
{
|
||||
//sub_new_field e' il campo SOTTO il new_field che appare solo nei totali di sezione 2 (F2)
|
||||
TReport_field* sub_new_field = (TReport_field*)new_field->dup();
|
||||
rep_sect.add(sub_new_field);
|
||||
sub_new_field->offset(TPoint(0, 300));
|
||||
sub_new_field->set_id(new_field->id() + 200);
|
||||
sub_new_field->set_groups("90");
|
||||
sub_new_field->set_postscript("");
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -361,6 +380,17 @@ void TCRPA_report::offset_and_fill_columns(TReport_section& rep_sect, const TStr
|
||||
x0 = campo.get_rect().right();
|
||||
}
|
||||
|
||||
//l'ultimo campo (margine di contribuzione) va generato a mano nel caso dei totali delle commesse normali!!
|
||||
if (rep_sect.type() == 'F' && rep_sect.level() == 2)
|
||||
{
|
||||
TReport_field* sub_new_field_margine = (TReport_field*)rep_sect.find_field(169)->dup();
|
||||
rep_sect.add(sub_new_field_margine);
|
||||
sub_new_field_margine->offset(TPoint(0, 300));
|
||||
sub_new_field_margine->set_id(369);
|
||||
sub_new_field_margine->set_groups("90");
|
||||
sub_new_field_margine->set_postscript("");
|
||||
}
|
||||
|
||||
//ordina i campi davvero sul report per id
|
||||
rep_sect.sort();
|
||||
}
|
||||
@ -802,7 +832,7 @@ void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
|
||||
esc.code2range(_anno, datainiesc, datafinesc);
|
||||
//deve procedere al confronto tra le date inizio-fine esercizio e quelle inizio-fine commessa..
|
||||
//..per spostare il record in esame nell'array corretto
|
||||
TAssoc_array cms[4];
|
||||
TAssoc_array cms[NUM_LEVELS];
|
||||
|
||||
TISAM_recordset saldana(query);
|
||||
|
||||
@ -846,78 +876,94 @@ void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
|
||||
|
||||
TImporto saldo, saldop;
|
||||
const int flag = estrai_saldi(saldana, indbil, saldo, saldop, false);
|
||||
//se ci sono saldi/saldop != 0...
|
||||
// if (flag != 0)
|
||||
|
||||
//Le commesse vengono suddivise in varie sezioni in base alle loro date di inizio/fine/proroga..
|
||||
//..e al fatto che possono essere di appoggio (Adolf rikiesten!) secondo lo schema:
|
||||
// _ 0 terminano nell'anno selezionato / iniziate nel passato
|
||||
// _ 1 terminano nell'anno selezionato / iniziate nell'anno selezionato
|
||||
// _ 2 terminano nel futuro / iniziate nel passato
|
||||
// _ 3 terminano nel futuro / iniziate nell'anno selezionato
|
||||
// _ 4 di appoggio / terminano nell'anno selezionato / iniziate nell'anno selezionato
|
||||
// (indice 1 ma di appoggio in pratica)
|
||||
|
||||
//e' inutile considerare le commesse terminate prima dell'esercizio selezionato..
|
||||
//..cioe' nel passato oppure che iniziano nel futuro!
|
||||
if (datafine >= datainiesc && dataini <= datafinesc)
|
||||
{
|
||||
//e' inutile considerare le commesse terminate prima dell'esercizio selezionato..
|
||||
//..cioe' nel passato oppure che iniziano nel futuro!
|
||||
if (datafine >= datainiesc && dataini <= datafinesc)
|
||||
{
|
||||
//indice e' il parametro che stabilisce in quale sezione del report viene stampata la commessa
|
||||
//se la commessa termina prima della fine dell'esercizio selezionato -> indice 0, altrimenti..
|
||||
//..indice 2
|
||||
int indice = datafine <= datafinesc ? 0 : 2;
|
||||
//se poi la commessa inizia dopo la data inizio esercizio selezionato -> l'indice va incrementato..
|
||||
//..di una unita' (viene spostata nella sezione di stampa successiva)
|
||||
if (dataini >= datainiesc)
|
||||
indice++;
|
||||
//indice e' il parametro che stabilisce in quale sezione del report viene stampata la commessa
|
||||
//se la commessa termina prima della fine dell'esercizio selezionato -> indice 0, altrimenti..
|
||||
//..indice 2
|
||||
int indice = datafine <= datafinesc ? 0 : 2;
|
||||
//se poi la commessa inizia dopo la data inizio esercizio selezionato -> l'indice va incrementato..
|
||||
//..di una unita' (viene spostata nella sezione di stampa successiva)
|
||||
if (dataini >= datainiesc)
|
||||
indice++;
|
||||
|
||||
//ci sono filtri o raggruppamenti per fase o centro di costo?
|
||||
const TString& fase = saldana.get(SALDANA_FASE).as_string();
|
||||
const TString& cdc = saldana.get(SALDANA_COSTO).as_string();
|
||||
TString80 chiave = codcms;
|
||||
//selezione fasi solo su bilancio commessa (_tipo=8)
|
||||
if (_tipo == 8 && (_tipostampa >= 1 && _tipostampa <= 3))
|
||||
//controlla se la commessa e' di appoggio e di indice 1 (inizia e finisce nell'anno selezionato)
|
||||
//in questo caso la commessa ha indice 4 e va nella sezione distaccata in fondo al report (Adolf!)
|
||||
if (indice == 1)
|
||||
{
|
||||
const bool cms_appoggio = rec_commesse.get_bool(COMMESSE_APPOGGIO);
|
||||
if (cms_appoggio)
|
||||
indice = 4;
|
||||
}
|
||||
|
||||
//ci sono filtri o raggruppamenti per fase o centro di costo?
|
||||
const TString& fase = saldana.get(SALDANA_FASE).as_string();
|
||||
const TString& cdc = saldana.get(SALDANA_COSTO).as_string();
|
||||
TString80 chiave = codcms;
|
||||
//selezione fasi solo su bilancio commessa (_tipo=8)
|
||||
if (_tipo == 8 && (_tipostampa >= 1 && _tipostampa <= 3))
|
||||
{
|
||||
//se vuole entrambi i livelli di dettaglio occorre sapere chi e' il babbo delle fasi o dei cdc
|
||||
if (_tipostampa == 3)
|
||||
{
|
||||
//se vuole entrambi i livelli di dettaglio occorre sapere chi e' il babbo delle fasi o dei cdc
|
||||
if (_tipostampa == 3)
|
||||
{
|
||||
//le fasi sono figlie dei cdc?
|
||||
if (ca_multilevel_code_info(LF_FASI).parent() == LF_CDC)
|
||||
chiave << '|' << cdc << '|' << fase;
|
||||
else //in ogni altro caso (figlie delle commesse o di nessuno...)
|
||||
chiave << '|' << fase << '|' << cdc;
|
||||
}
|
||||
else //livelli di dettaglio semplici
|
||||
{
|
||||
if (_tipostampa == 1)
|
||||
chiave << '|' << fase; //dettaglia x fase
|
||||
else
|
||||
chiave << '|' << cdc; //dettaglia x cdc
|
||||
}
|
||||
//le fasi sono figlie dei cdc?
|
||||
if (ca_multilevel_code_info(LF_FASI).parent() == LF_CDC)
|
||||
chiave << '|' << cdc << '|' << fase;
|
||||
else //in ogni altro caso (figlie delle commesse o di nessuno...)
|
||||
chiave << '|' << fase << '|' << cdc;
|
||||
}
|
||||
|
||||
//riempie le righe degli array da mandare poi in stampa
|
||||
//dapprima le righe normali..
|
||||
//bilancio di commessa ca3800 (_tipo=8)
|
||||
if (_tipo == 8)
|
||||
else //livelli di dettaglio semplici
|
||||
{
|
||||
TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, fase, cdc,
|
||||
rec_commesse.get(COMMESSE_DESCRIZ));
|
||||
|
||||
//aggiunge gli importi e normalizza
|
||||
aggiorna_importo(riga_array, gruppo, indbil, saldana);
|
||||
aggiorna_importo(riga_array, conto, indbil, saldana);
|
||||
|
||||
//aggiorna totali della commessa (importi per codcms senza tener conto di fase o cdc)
|
||||
TAssoc_array& riga_tot = get_row(_totali[indice], codcms, indice, codcms, EMPTY_STRING, EMPTY_STRING,
|
||||
gruppo);
|
||||
aggiorna_importo(riga_tot, gruppo, indbil, saldana);
|
||||
if (_tipostampa == 1)
|
||||
chiave << '|' << fase; //dettaglia x fase
|
||||
else
|
||||
chiave << '|' << cdc; //dettaglia x cdc
|
||||
}
|
||||
//stima ricavi ca3900 (_tipo=9)
|
||||
else
|
||||
{
|
||||
TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, EMPTY_STRING, EMPTY_STRING,
|
||||
rec_commesse.get(COMMESSE_DESCRIZ));
|
||||
//aggiunge gli importi e normalizza
|
||||
aggiorna_importi(riga_array, indbil, saldana);
|
||||
}
|
||||
|
||||
}
|
||||
//riempie le righe degli array da mandare poi in stampa
|
||||
//dapprima le righe normali..
|
||||
//bilancio di commessa ca3800 (_tipo=8)
|
||||
if (_tipo == 8)
|
||||
{
|
||||
TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, fase, cdc,
|
||||
rec_commesse.get(COMMESSE_DESCRIZ));
|
||||
|
||||
} //if (datafine >= datainiesc &&...
|
||||
} //if (flag!=0..
|
||||
//aggiunge gli importi e normalizza
|
||||
aggiorna_importo(riga_array, gruppo, indbil, saldana);
|
||||
aggiorna_importo(riga_array, conto, indbil, saldana);
|
||||
|
||||
//RIGHE COMMESSA SPECIALE: esistono solo se la commessa e' iniziata prima dell'anno
|
||||
//aggiorna totali della commessa (importi per codcms senza tener conto di fase o cdc)
|
||||
TAssoc_array& riga_tot = get_row(_totali[indice], codcms, indice, codcms, EMPTY_STRING, EMPTY_STRING,
|
||||
gruppo);
|
||||
aggiorna_importo(riga_tot, gruppo, indbil, saldana);
|
||||
}
|
||||
//stima ricavi ca3900 (_tipo=9)
|
||||
else
|
||||
{
|
||||
TAssoc_array& riga_array = get_row(cms[indice], chiave, indice, codcms, EMPTY_STRING, EMPTY_STRING,
|
||||
rec_commesse.get(COMMESSE_DESCRIZ));
|
||||
//aggiunge gli importi e normalizza
|
||||
aggiorna_importi(riga_array, indbil, saldana);
|
||||
|
||||
}
|
||||
|
||||
} //if (datafine >= datainiesc &&...
|
||||
|
||||
|
||||
//RIGHE COMMESSA DETRAZIONE: esistono solo se la commessa e' iniziata prima dell'anno
|
||||
//selezionato e se ha a che fare con quello in corso,quindi l'indice e' 0 o 2
|
||||
if (datafine >= datainiesc && dataini < datainiesc)
|
||||
{
|
||||
@ -951,9 +997,9 @@ void TPrint_saldana_recordset::create_lines_to_print(const TString& query)
|
||||
} //if (indbil == 3 ||...
|
||||
} //for(bool ok=saldana.move_first()..
|
||||
|
||||
//merging dei 4 arrayini cms nell'arrayone _righe da mandare in stampa
|
||||
//merging dei 5 arrayini cms nell'arrayone _righe da mandare in stampa
|
||||
_righe.destroy();
|
||||
for (int i = 0; i < 4; i++)
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
TAssoc_array& a = cms[i];
|
||||
TObject* cazzo_cms = NULL;
|
||||
@ -1005,7 +1051,6 @@ void TPrint_saldana_recordset::requery()
|
||||
query << " SELECT COSTO=\"" << _cdc << "\"";
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -56,10 +56,12 @@ public:
|
||||
///////////////////////////////////////////////////////////////
|
||||
class TPrint_saldana_recordset : public TRecordset
|
||||
{
|
||||
enum { NUM_LEVELS = 5 };
|
||||
|
||||
TRecnotype _curr;
|
||||
TArray _righe;
|
||||
TArray _colonne;
|
||||
TAssoc_array _totali[4];
|
||||
TAssoc_array _totali[NUM_LEVELS];
|
||||
TIndbil_cache _indicatori;
|
||||
TEsercizi_contabili _esc;
|
||||
|
||||
|
@ -717,7 +717,7 @@ bool TSimple_anal_msk::on_field_event(TOperable_field& o, TField_event e, long j
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_TREE:
|
||||
if (e == fe_button)
|
||||
if (e == fe_modify)
|
||||
{
|
||||
if (edit_mode() && !dirty())
|
||||
set_mode(MODE_QUERY);
|
||||
@ -1836,8 +1836,9 @@ void ca_copia_campo(const TRectype& src, const char* campo_src, TRectype& dst, c
|
||||
dst.put(campo_dst, valore);
|
||||
}
|
||||
|
||||
void ca_implode_rows(const TRecord_array& input_rows, TRecord_array& compact_rows)
|
||||
bool ca_implode_rows(const TRecord_array& input_rows, TRecord_array& compact_rows)
|
||||
{
|
||||
bool implosion_done = false;
|
||||
const int last_row = input_rows.last_row();
|
||||
for (int r = input_rows.first_row(); r > 0 && r <= last_row; r = input_rows.succ_row(r))
|
||||
{
|
||||
@ -1869,6 +1870,7 @@ void ca_implode_rows(const TRecord_array& input_rows, TRecord_array& compact_row
|
||||
newrec->put(RMOVANA_NUMRIG, compact_rows.rows() + 1);
|
||||
compact_rows.add_row(newrec);
|
||||
}
|
||||
implosion_done = true; //ha imploso almeno 1 riga!!!
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1890,4 +1892,6 @@ void ca_implode_rows(const TRecord_array& input_rows, TRecord_array& compact_row
|
||||
ca_taglia_campo(compact_rec, RMOVANA_CODCONTORI, compact_rec, RMOVANA_CODCONTO);
|
||||
}
|
||||
}
|
||||
|
||||
return implosion_done;
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ public:
|
||||
};
|
||||
|
||||
// metodi di implosione movimenti ripartiti!! Serve nel ribaltamento movimenti, stampa rendiconto...
|
||||
void ca_implode_rows(const TRecord_array& input_rows, TRecord_array& compact_rows);
|
||||
bool ca_implode_rows(const TRecord_array& input_rows, TRecord_array& compact_rows);
|
||||
bool ca_ori_present(const TRectype& rec);
|
||||
bool ca_can_merge_rows(const TRectype& compact_rec, const TRectype& rec);
|
||||
void ca_taglia_campo(TRectype& src, const char* campo_src, TRectype& dst, const char* campo_dst);
|
||||
|
Loading…
x
Reference in New Issue
Block a user