Patch level : 10.0 163
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1262 git-svn-id: svn://10.65.10.50/trunk@17631 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bcda798e5d
commit
baa1e34d5c
@ -1258,6 +1258,19 @@ bool TStampa_bilanci::bil_verifica()
|
||||
//controllo sui gr/co/sc selezionati
|
||||
if (_bill_from.gruppo() > 0) //se ho un gruppo iniziale valido...
|
||||
{
|
||||
if (_bill_from.sottoconto() > 0L)
|
||||
{
|
||||
_pcn->zero();
|
||||
_pcn->put(PCN_GRUPPO,_bill_from.gruppo()); //lo metto nel file del pianodeiconticorrente..
|
||||
_pcn->put(PCN_CONTO,_bill_from.conto()); //un valore alla volta
|
||||
if (_pcn->read(_isequal) == NOERR)
|
||||
{
|
||||
indbil_conto = _pcn->get_int(PCN_INDBIL);
|
||||
tipo_conto = _pcn->get_char(PCN_TMCF);
|
||||
}
|
||||
}
|
||||
|
||||
_pcn->zero();
|
||||
_pcn->put(PCN_GRUPPO,_bill_from.gruppo()); //lo metto nel file del pianodeiconticorrente..
|
||||
_pcn->put(PCN_CONTO,_bill_from.conto()); //un valore alla volta
|
||||
_pcn->put(PCN_SOTTOCONTO,_bill_from.sottoconto());
|
||||
|
@ -160,7 +160,6 @@ BEGIN
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT 106
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Sottoconto inesistente o mancante sulla riga contabile"
|
||||
ADD RUN cg0 -0
|
||||
END
|
||||
@ -179,7 +178,6 @@ BEGIN
|
||||
COPY OUTPUT 206
|
||||
MESSAGE COPY,107
|
||||
ADD RUN cg0 -1 C
|
||||
CHECKTYPE SEARCH
|
||||
WARNING "Cliente inesistente sulla riga contabile"
|
||||
END
|
||||
|
||||
@ -197,7 +195,6 @@ BEGIN
|
||||
COPY OUTPUT 306
|
||||
MESSAGE COPY,107
|
||||
ADD RUN cg0 -1 F
|
||||
CHECKTYPE SEARCH
|
||||
WARNING "Fornitore inesistente sulla riga contabile"
|
||||
END
|
||||
|
||||
|
@ -182,7 +182,6 @@ BEGIN
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "C/R" TIPOSPRIC
|
||||
COPY OUTPUT IVA_SOTTOCONTO
|
||||
CHECKTYPE NORMAL
|
||||
ADD RUN cg0 -0
|
||||
END
|
||||
|
||||
@ -200,7 +199,6 @@ BEGIN
|
||||
COPY OUTPUT 209
|
||||
MESSAGE COPY,110
|
||||
ADD RUN cg0 -1 C
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
STRING 310 50
|
||||
@ -217,7 +215,6 @@ BEGIN
|
||||
COPY OUTPUT 309
|
||||
MESSAGE COPY,110
|
||||
ADD RUN cg0 -1 F
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
LIST IVA_TIPOCOSTORIC 1 51
|
||||
|
@ -126,16 +126,8 @@ public:
|
||||
|
||||
void TCoop_soci_application::show_socio(TMask& m, const bool show)
|
||||
{
|
||||
if (show)
|
||||
{
|
||||
m.show(-1);
|
||||
m.hide(-2);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.show(-2);
|
||||
m.hide(-1);
|
||||
}
|
||||
m.show(-1, show);
|
||||
m.show(-2, !show);
|
||||
}
|
||||
void TCoop_soci_application::init_query_mode(TMask& m)
|
||||
{
|
||||
@ -149,12 +141,13 @@ void TCoop_soci_application::init_query_insert_mode(TMask& m)
|
||||
|
||||
void TCoop_soci_application::init_insert_mode(TMask& m)
|
||||
{
|
||||
show_socio(m, false);
|
||||
show_socio(m);
|
||||
}
|
||||
|
||||
void TCoop_soci_application::init_modify_mode(TMask& m)
|
||||
{
|
||||
show_socio(m);
|
||||
m.check_fields();
|
||||
}
|
||||
|
||||
bool TCoop_soci_application::user_create()
|
||||
|
@ -24,22 +24,12 @@ BEGIN
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||
DISPLAY "Codice fiscale@16" 20->COFI
|
||||
OUTPUT F_CODSOCIO CODCF
|
||||
OUTPUT F_DESSOCIO 20->RAGSOC
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_CODSOCIO 20->CODCF
|
||||
OUTPUT F_RAGSOC 20->RAGSOC
|
||||
OUTPUT F_COFISOCIO 20->COFI
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_DESSOCIO 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
FLAGS "D"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 2 2 "Fornitore "
|
||||
@ -51,8 +41,12 @@ BEGIN
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice fiscale@16" COFI
|
||||
COPY OUTPUT F_CODSOCIO
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_RAGSOC 20->RAGSOC
|
||||
OUTPUT F_COFISOCIO 20->COFI
|
||||
OUTPUT F_CODSOCIO CODCF
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "G"
|
||||
ADD RUN cg0 -1 F
|
||||
GROUP 2
|
||||
END
|
||||
@ -69,7 +63,6 @@ BEGIN
|
||||
COPY OUTPUT F_CODCF
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -1 F
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_COFISOCIO 16
|
||||
|
@ -95,8 +95,8 @@ int TConferimenti_application::rewrite( const TMask& m )
|
||||
doc.put("SPESEUPD", false);
|
||||
doc.put("RAGGR", true);
|
||||
update_spese_doc(codmercato, doc);
|
||||
err = TMotore_application::rewrite(m);
|
||||
}
|
||||
err = TMotore_application::rewrite(m);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ END
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
FLAGS "F"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
|
275
co/co1200a.rep
275
co/co1200a.rep
@ -1,183 +1,236 @@
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="co1200a" orientation="2" lpi="6" command="ve1 -3">
|
||||
<description>STAMPA CONFERIMENTI</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head" />
|
||||
<section type="Head" level="1">
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101|RESET,F1.102|RESET,F1.103|RESET,F1.104|RESET,F1.105|RESET,F1.106|RESET,F1.107|RESET,F1.108</prescript>
|
||||
<field border="2" y="0.43" type="Linea" width="196" height="0" pattern="1" />
|
||||
<field y="1" type="Testo" width="5" pattern="1" text="Ditta" />
|
||||
<field y="2" type="Testo" width="10" pattern="1" text="Dalla data" />
|
||||
<field x="11" y="2" type="Data" align="right" width="5" pattern="1">
|
||||
<section type="Head">
|
||||
<field x="133.08" y="0.18" type="Testo" valign="bottom" width="6" pattern="1" text="Data" />
|
||||
<field x="139.08" y="0.18" type="Data" valign="bottom" align="right" width="12" pattern="1">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="157.08" y="0.18" type="Testo" valign="bottom" width="5" pattern="1" text="Pag." />
|
||||
<field x="165.08" y="0.18" type="Numero" valign="bottom" align="right" width="4" pattern="1">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field x="71.18" y="0.62" type="Testo" valign="center" align="center" width="42" height="2" pattern="1" text="STAMPA CONFERIMENTI">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
</field>
|
||||
<field border="2" x="0.18" y="2.62" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="3.18" y="3.62" type="Testo" width="6" pattern="1" text="Ditta" />
|
||||
<field x="10.18" y="3.62" type="Stringa" width="60" pattern="1">
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="3.18" y="4.62" type="Testo" valign="bottom" width="12" pattern="1" text="Dalla data" />
|
||||
<field x="15.18" y="4.62" type="Data" valign="bottom" align="right" width="12" pattern="1">
|
||||
<source>#DADATA</source>
|
||||
</field>
|
||||
<field x="22" y="2" type="Testo" width="10" pattern="1" text="alla data" />
|
||||
<field x="32" y="2" type="Data" width="10" pattern="1">
|
||||
<field x="28.18" y="4.62" type="Testo" valign="bottom" align="center" width="10" pattern="1" text="alla data" />
|
||||
<field x="40.18" y="4.62" type="Data" valign="bottom" align="right" width="12" pattern="1">
|
||||
<source>#ADATA</source>
|
||||
</field>
|
||||
<field x="48" y="2" type="Testo" width="11" pattern="1" text="Dal mercato" />
|
||||
<field x="60" y="2" type="Numero" align="right" width="4" pattern="1">
|
||||
<source>#DAMERCATO</source>
|
||||
</field>
|
||||
<field x="67" y="2" type="Testo" width="10" pattern="1" text="al mercato" />
|
||||
<field x="78" y="2" type="Numero" align="right" width="4" pattern="1">
|
||||
<source>#AMERCATO</source>
|
||||
</field>
|
||||
<field x="87" y="2" type="Testo" width="18" pattern="1" text="Dal tipo movimento" />
|
||||
<field x="107" y="2" type="Stringa" align="right" width="4" pattern="1">
|
||||
<source>#DACODART</source>
|
||||
</field>
|
||||
<field x="113" y="2" type="Testo" width="18" pattern="1" text="Dal tipo movimento" />
|
||||
<field x="133" y="2" type="Stringa" width="4" pattern="1">
|
||||
<source>#DACODART</source>
|
||||
</field>
|
||||
<field border="2" x="0.12" y="3.68" type="Linea" width="196" height="0" pattern="1" />
|
||||
<field y="4" type="Testo" width="4" pattern="1" text="Data">
|
||||
<field border="2" x="0.18" y="6.62" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="2" y="7" type="Testo" width="12" pattern="1" text="Data">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="10" y="4" type="Testo" width="12" pattern="1" text="Codice socio">
|
||||
<field x="18" y="7" type="Testo" width="27" pattern="1" text="Codice socio">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="44.5" y="4" type="Testo" width="8" pattern="1" text="N.f.asta ">
|
||||
<field x="50" y="7" type="Testo" align="right" width="12" pattern="1" text="N.f.asta ">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="56" y="4" type="Testo" width="14" pattern="1" text="Tipo movimento">
|
||||
<field x="63" y="7" type="Testo" width="55" pattern="1" text="Tipo movimento">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="92" y="4" type="Testo" width="14" pattern="1" text="Codice mercato">
|
||||
<field x="118" y="7" type="Testo" width="37" pattern="1" text="Codice mercato">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="131" y="4" type="Testo" width="6" pattern="1" text="N.reg.">
|
||||
<field x="160" y="7" type="Testo" align="right" width="8" pattern="1" text="N.reg.">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="15" y="5" type="Testo" width="8" pattern="1" text="Quantit&#E0;" />
|
||||
<field x="26" y="5" type="Testo" width="6" pattern="1" text="Prezzo" />
|
||||
<field x="52" y="5" type="Testo" width="11" pattern="1" text="Spese varie" />
|
||||
<field x="67" y="5" type="Testo" width="13" pattern="1" text="Totale ricavo" />
|
||||
<field x="82" y="5" type="Testo" width="5" pattern="1" text="A.iva" />
|
||||
<field x="91" y="5" type="Testo" width="7" pattern="1" text="Imposta" />
|
||||
<field x="109" y="5" type="Testo" width="6" pattern="1" text="Totale" />
|
||||
<field x="124" y="5" type="Testo" width="13" pattern="1" text="Rit.acc.spese" />
|
||||
<field x="38.62" y="5.12" type="Testo" width="7" pattern="1" text="Importo" />
|
||||
<field border="2" x="-5.13" y="6.5" type="Linea" width="196" height="0" pattern="1" />
|
||||
<field x="12" y="8" type="Testo" valign="bottom" align="right" width="10" pattern="1" text="Quantit&#E0;" />
|
||||
<field x="25" y="8" type="Testo" valign="bottom" align="right" width="8" pattern="1" text="Prezzo" />
|
||||
<field x="37" y="8" type="Testo" valign="bottom" align="right" width="10" pattern="1" text="Importo" />
|
||||
<field x="55" y="8" type="Testo" valign="bottom" align="right" width="15" pattern="1" text="Spese varie" />
|
||||
<field x="75" y="8" type="Testo" valign="bottom" align="right" width="15" pattern="1" text="Totale ricavo" />
|
||||
<field x="100" y="8" type="Testo" valign="bottom" align="right" width="8" pattern="1" text="A.iva" />
|
||||
<field x="116" y="8" type="Testo" valign="bottom" align="right" width="8" pattern="1" text="Imposta" />
|
||||
<field x="130" y="8" type="Testo" valign="bottom" align="right" width="18" pattern="1" text="Detr. su quantita" />
|
||||
<field x="153" y="8" type="Testo" valign="bottom" align="right" width="15" pattern="1" text="Rit.acc.spese" />
|
||||
<field border="2" y="10" type="Linea" width="170" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101|RESET,F1.102|RESET,F1.103|RESET,F1.104|RESET,F1.105|RESET,F1.106|RESET,F1.107|RESET,F1.108</prescript>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1" />
|
||||
<section type="Head" level="11" />
|
||||
<section type="Body" level="11">
|
||||
<sql>USE RDOC
|
||||
JOIN 47 INTO CODART==CODARTMAG
|
||||
SELECT BETWEEN(CODART,#PARENT.#DACODART,#PARENT.#ACODART)(TIPORIGA=="CO")
|
||||
JOIN ANAMAG INTO CODART==CODARTMAG
|
||||
FROM PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
||||
TO PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
||||
</sql>
|
||||
<field x="1" y="1" type="Data" width="10" pattern="1">
|
||||
<field x="2" y="1" type="Data" width="12" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>#PARENT.DATADOC</source>
|
||||
</field>
|
||||
<field x="15" y="1" type="Stringa" width="10" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>#PARENT.CODCF</source>
|
||||
</field>
|
||||
<field x="26" y="1" type="Stringa" width="35" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#PARENT.CODCF,RAGSOC</prescript>
|
||||
</field>
|
||||
<field x="71" y="1" type="Stringa" width="10" pattern="1">
|
||||
<field x="50" y="1" type="Numero" align="right" width="12" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>#PARENT.NFASTA</source>
|
||||
</field>
|
||||
<field x="83" y="1" type="Stringa" width="10" pattern="1">
|
||||
<field x="63" y="1" type="Stringa" width="3" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>RDOC.CODARTMAG</source>
|
||||
</field>
|
||||
<field x="94" y="1" type="Stringa" width="35" pattern="1">
|
||||
<field x="67" y="1" type="Stringa" width="51" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>ANAMAG.DESCR</source>
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="140" y="1" type="Stringa" width="10" pattern="1">
|
||||
<field x="118" y="1" type="Numero" align="right" width="4" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>#PARENT.MERCATO</source>
|
||||
</field>
|
||||
<field x="151" y="1" type="Stringa" width="10" pattern="1">
|
||||
<field x="123" y="1" type="Stringa" width="37" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#PARENT.MERCATO,RAGSOC</prescript>
|
||||
</field>
|
||||
<field x="161.5" y="1" type="Numero" align="right" width="10" pattern="1">
|
||||
<field x="160" y="1" type="Numero" align="right" width="8" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>#PARENT.NDOC</source>
|
||||
<source>RDOC.NDOC</source>
|
||||
</field>
|
||||
<field x="1" y="3" type="Testo" width="12" pattern="1" text="Cooperativa:">
|
||||
<source>#PARENT.101@.CODCF</source>
|
||||
</field>
|
||||
<field x="15" y="3" type="Numero" align="right" width="15" pattern="1">
|
||||
<source>RDOC.QTAGG1</source>
|
||||
<prescript>MESSAGE ADD,F1.101</prescript>
|
||||
</field>
|
||||
<field x="32" y="3" type="Numero" align="right" width="4" pattern="1">
|
||||
<source>RDOC.PREZZONN</source>
|
||||
</field>
|
||||
<field x="65" y="3" type="Valuta" align="right" width="11" pattern="1" text="#########,@@">
|
||||
<field x="37" y="2" type="Valuta" valign="bottom" align="right" width="10" pattern="1" text="###.###.###,@@">
|
||||
<source>RDOC.IMPCNN</source>
|
||||
<prescript>MESSAGE ADD,F1.103</prescript>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.103</prescript>
|
||||
</field>
|
||||
<field x="101" y="3" type="Testo" align="right" width="13" pattern="1" text="Numero casse:">
|
||||
<field x="55" y="2" type="Valuta" valign="bottom" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#PARENT.SPESMER</source>
|
||||
<prescript description="B11.0 PRESCRIPT">#THIS @
|
||||
-1 *
|
||||
#THIS !
|
||||
</prescript>
|
||||
<postscript description="B11.0 POSTSCRIPT">MESSAGE ADD,F1.109</postscript>
|
||||
</field>
|
||||
<field x="80" y="2" type="Testo" valign="bottom" width="15" pattern="1" text="Numero casse:">
|
||||
<source>N1</source>
|
||||
</field>
|
||||
<field x="115" y="3" type="Numero" align="right" width="10" pattern="1">
|
||||
<field x="93" y="2" type="Numero" valign="bottom" align="right" width="7" pattern="1" hide_zero="1" text="###,@@">
|
||||
<source>RDOC.NCOLLI</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.108</prescript>
|
||||
</field>
|
||||
<field x="141" y="3" type="Testo" align="right" width="23" pattern="1" text="Detrazione su quantit&#E0;:">
|
||||
<source>N1</source>
|
||||
</field>
|
||||
<field x="1" y="5" type="Testo" width="10" pattern="1" text="Pescatore:">
|
||||
<field x="2" y="3" type="Testo" valign="bottom" width="12" pattern="1" text="Cooperativa:">
|
||||
<source>#PARENT.101@.CODCF</source>
|
||||
</field>
|
||||
<field x="15" y="5" type="Numero" align="right" width="13" pattern="1">
|
||||
<field x="12" y="3" type="Numero" valign="bottom" align="right" width="10" pattern="1" hide_zero="1" text="#######,@@">
|
||||
<source>RDOC.QTAGG1</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.101</prescript>
|
||||
</field>
|
||||
<field x="25" y="3" type="Prezzo" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="B11.0 PRESCRIPT">"RDOC.PREZZONN" @
|
||||
"ANAMAG.USER1" @
|
||||
"X"
|
||||
=
|
||||
IF
|
||||
"QTA" @
|
||||
DUP
|
||||
0
|
||||
C;E;
|
||||
IF
|
||||
F;
|
||||
THEN
|
||||
THEN
|
||||
#THIS !
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="37" y="3" type="Valuta" valign="bottom" align="right" width="10" pattern="1" text="###.###.###,@@">
|
||||
<source>RDOC.IMPCNS</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.104</prescript>
|
||||
</field>
|
||||
<field x="55" y="3" type="Valuta" valign="bottom" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#PARENT.SPESMER</source>
|
||||
<prescript description="B11.0 PRESCRIPT">#THIS @
|
||||
-1 *
|
||||
#THIS !
|
||||
</prescript>
|
||||
<postscript description="B11.0 POSTSCRIPT">MESSAGE ADD,F1.110</postscript>
|
||||
</field>
|
||||
<field x="75" y="3" type="Valuta" valign="bottom" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>#PARENT.NETCRED</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.105</prescript>
|
||||
</field>
|
||||
<field x="100" y="3" type="Stringa" valign="bottom" align="right" width="8" pattern="1">
|
||||
<source>RDOC.CODIVA</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE TABLEREAD,%IVA,#THIS,S1</prescript>
|
||||
</field>
|
||||
<field x="116" y="3" type="Valuta" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>RDOC.IMPOSTA</source>
|
||||
</field>
|
||||
<field x="130" y="3" type="Valuta" valign="bottom" align="right" width="18" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>(RDOC.QTAGG1-RDOC.QTA)*RDOC.PREZZO</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.106</prescript>
|
||||
</field>
|
||||
<field x="155" y="3" type="Valuta" valign="bottom" align="right" width="13" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<source>RDOC.SCONTOR</source>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.107</prescript>
|
||||
</field>
|
||||
<field x="2" y="4" type="Testo" valign="bottom" width="10" pattern="1" text="Pescatore:">
|
||||
<source>#PARENT.101@.CODCF</source>
|
||||
</field>
|
||||
<field x="12" y="4" type="Numero" valign="bottom" align="right" width="10" pattern="1" hide_zero="1" text="#######,@@">
|
||||
<source>RDOC.QTA</source>
|
||||
<prescript>MESSAGE ADD,F1.102</prescript>
|
||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.102</prescript>
|
||||
</field>
|
||||
<field x="32" y="5" type="Prezzo" align="right" width="11" pattern="1" text="#########,@@">
|
||||
<source>RDOC.PREZZONS</source>
|
||||
<field x="25" y="4" type="Prezzo" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="B11.0 PRESCRIPT">"RDOC.PREZZONS" @
|
||||
"ANAMAG.USER1" @
|
||||
"X"
|
||||
=
|
||||
IF
|
||||
"QTA" @
|
||||
DUP
|
||||
0
|
||||
C;E;
|
||||
IF
|
||||
F;
|
||||
THEN
|
||||
THEN
|
||||
#THIS !
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="65" y="5" type="Valuta" align="right" width="11" pattern="1" text="#########,@@">
|
||||
<source>RDOC.IMPCNS</source>
|
||||
<prescript>MESSAGE ADD,F1.104</prescript>
|
||||
<field x="18" y="1" type="Stringa" width="4" id="100" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>#PARENT.CODCF</source>
|
||||
</field>
|
||||
<field x="101" y="5" type="Valuta" align="right" width="11" pattern="1" text="#########,@@">
|
||||
<source>RDOC.IMPCNS</source>
|
||||
<prescript>MESSAGE ADD,F1.105</prescript>
|
||||
</field>
|
||||
<field x="141" y="5" type="Valuta" align="right" width="11" pattern="1" text="#########,@@">
|
||||
<source>RDOC.IMPCNS</source>
|
||||
<prescript>MESSAGE ADD,F1.106</prescript>
|
||||
</field>
|
||||
<field x="158.5" y="5" type="Valuta" align="right" width="13" pattern="1" text="#########,@@">
|
||||
<source>RDOC.RITENUTA</source>
|
||||
<prescript>MESSAGE ADD,F1.107</prescript>
|
||||
<field x="23" y="1" type="Stringa" width="27" id="102" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>TRIM(20.RAGSOC[1,30])+' '+TRIM(20.RAGSOC[31,50])</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="11" />
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1">
|
||||
<field x="1" y="0.5" type="Testo" align="right" width="10" pattern="1" text="Totali :">
|
||||
<field border="2" y="1" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="2" y="2" type="Testo" valign="bottom" width="10" pattern="1" text="Totali :">
|
||||
<source>RDOC.IMPCNS</source>
|
||||
</field>
|
||||
<field x="60" y="0.5" type="Testo" align="right" width="15" pattern="1" text="Numero casse :">
|
||||
<field x="80" y="2" type="Testo" valign="bottom" width="15" pattern="1" text="Numero casse :">
|
||||
<source>RDOC.IMPCNS</source>
|
||||
</field>
|
||||
<field x="13" y="0.5" type="Numero" align="right" width="11" id="101" pattern="1" />
|
||||
<field x="13" y="2" type="Numero" align="right" width="11" id="102" pattern="1" />
|
||||
<field x="35" y="0.5" type="Valuta" align="right" width="11" id="103" pattern="1" text="#########,@@" />
|
||||
<field x="35" y="2" type="Valuta" align="right" width="11" id="104" pattern="1" text="#########,@@" />
|
||||
<field x="76" y="2" type="Valuta" align="right" width="11" id="105" pattern="1" text="#########,@@" />
|
||||
<field x="100" y="2" type="Valuta" align="right" width="11" id="106" pattern="1" text="#########,@@" />
|
||||
<field x="117" y="2" type="Valuta" align="right" width="11" id="107" pattern="1" text="#########,@@" />
|
||||
<field x="76" y="0.5" type="Numero" align="right" width="10" id="108" pattern="1" />
|
||||
<field x="12" y="2" type="Numero" valign="bottom" align="right" width="10" id="101" pattern="1" hide_zero="1" text="###.###,@@" />
|
||||
<field x="12" y="3" type="Numero" valign="bottom" align="right" width="10" id="102" pattern="1" hide_zero="1" text="###.###,@@" />
|
||||
<field x="37" y="2" type="Valuta" valign="bottom" align="right" width="10" id="103" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="37" y="3" type="Valuta" valign="bottom" align="right" width="10" id="104" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="75" y="3" type="Valuta" valign="bottom" align="right" width="15" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="130" y="3" type="Valuta" align="right" width="18" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="155" y="3" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="93" y="2" type="Numero" valign="bottom" align="right" width="7" id="108" pattern="1" hide_zero="1" />
|
||||
<field x="55" y="2" type="Valuta" valign="bottom" align="right" width="15" id="109" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="55" y="3" type="Valuta" valign="bottom" align="right" width="15" id="110" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<sql>USE DOC
|
||||
SELECT (NUM(ANSI(DATADOC))E;=NUM(ANSI(#DADATA)))(NUM(ANSI(DATADOC))C;=NUM(ANSI(#ADATA)))
|
||||
FROM PROVV='D' ANNO=#ANNO CODNUM=#CODNUM
|
||||
TO PROVV='D' ANNO=#ANNO CODNUM=#CODNUM
|
||||
SELECT (BETWEEN(DATADOC,#DADATA,#ADATA))(BETWEEN(G1:MERCATO,#DAMERCATO,#AMERCATO))
|
||||
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||
FROM PROVV=D ANNO=#ANNO CODNUM=#CODNUM
|
||||
TO PROVV=D ANNO=#ANNO CODNUM=#CODNUM
|
||||
|
||||
</sql>
|
||||
</report>
|
||||
</report>
|
||||
|
@ -2,30 +2,31 @@
|
||||
|
||||
PAGE "Stampa Conferimenti" -1 -1 78 10
|
||||
|
||||
NUMBER F_FROMCLIENTE 6
|
||||
STRING F_FROMCLIENTE 6
|
||||
BEGIN
|
||||
PROMPT 5 1 "Da mercato "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
USE LF_MERCATICOOP
|
||||
JOIN LF_CLIFO INTO TIPOCF=='C' CODCF==CODCF
|
||||
INPUT CODCF F_FROMCLIENTE
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Descrizione@50" LF_CLIFO->RAGSOC
|
||||
OUTPUT F_FROMCLIENTE CODCF
|
||||
FLAG "U"
|
||||
CHECKTYPE NORMAL
|
||||
FIELD #DAMERCATO
|
||||
END
|
||||
|
||||
NUMBER F_TOCLIENTE 6
|
||||
STRING F_TOCLIENTE 6
|
||||
BEGIN
|
||||
PROMPT 5 2 "A mercato "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
COPY USE F_FROMCLIENTE
|
||||
INPUT CODCF F_TOCLIENTE
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
COPY DISPLAY F_FROMCLIENTE
|
||||
OUTPUT F_TOCLIENTE CODCF
|
||||
NUM_EXPR #F_TOCLIENTE>=#F_FROMCLIENTE
|
||||
WARNING "Range codice cliente non corretto"
|
||||
WARNING "Intervallo codice cliente non corretto"
|
||||
FIELD #AMERCATO
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
DATE F_DADATA
|
||||
@ -87,6 +88,7 @@ BEGIN
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD #CODNUM
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 10 2
|
||||
|
168
co/co1300.cpp
168
co/co1300.cpp
@ -1,5 +1,7 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <form.h>
|
||||
#include <report.h>
|
||||
#include <reprint.h>
|
||||
#include <textset.h>
|
||||
|
||||
@ -39,24 +41,133 @@ bool TEstrattoConto_mask::on_field_event(TOperable_field& f, TField_event e, lon
|
||||
|
||||
class TEstrattoConto_rep : public TDocument_report
|
||||
{
|
||||
int _riga;
|
||||
|
||||
protected:
|
||||
virtual bool use_mask() {return false;}
|
||||
virtual bool set_usr_val(const TString& name, const TVariant& var);
|
||||
bool incr_field(int idx, const TVariant& var);
|
||||
|
||||
public:
|
||||
TEstrattoConto_rep();
|
||||
};
|
||||
|
||||
bool TEstrattoConto_rep::incr_field(int idx, const TVariant& var)
|
||||
{
|
||||
if (_riga > 0)
|
||||
{
|
||||
TReport_section& f1 = section('F',1);
|
||||
TReport_field* rf = f1.find_field(_riga * 1000 + 100 + idx);
|
||||
if (rf != NULL)
|
||||
{
|
||||
TVariant v = rf->get();
|
||||
v += var;
|
||||
rf->set(v);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TEstrattoConto_rep::set_usr_val(const TString& name, const TVariant& var)
|
||||
{
|
||||
if(name == "#EC_TIPOMOV")
|
||||
{
|
||||
TReport_section& f1 = section('F',1);
|
||||
TReport_field* rf = NULL;
|
||||
for (int id = 1100; ; id += 1000)
|
||||
{
|
||||
rf = f1.find_field(id);
|
||||
if (rf == NULL)
|
||||
break;
|
||||
const TVariant& rfv = rf->get();
|
||||
if (rfv == var)
|
||||
break;
|
||||
if (rfv.is_empty())
|
||||
{
|
||||
rf->set(var);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (rf != NULL)
|
||||
_riga = id / 1000;
|
||||
else
|
||||
_riga = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name == "#EC_QTA")
|
||||
{
|
||||
incr_field(2, var);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name == "#EC_MER")
|
||||
{
|
||||
incr_field(5, var);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name == "#EC_ACC")
|
||||
{
|
||||
incr_field(6, var);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name == "#EC_IMPCRE")
|
||||
{
|
||||
incr_field(7, var);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name == "#EC_IMPDEB")
|
||||
{
|
||||
incr_field(8, var);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name == "#EC_IMPO")
|
||||
{
|
||||
incr_field(9, var);
|
||||
return true;
|
||||
}
|
||||
|
||||
return TDocument_report::set_usr_val(name,var);
|
||||
}
|
||||
|
||||
TEstrattoConto_rep::TEstrattoConto_rep()
|
||||
{
|
||||
load("co1300a");
|
||||
TReport_section& b11 = section('B',11);
|
||||
TReport_section& f1 = section('F',1);
|
||||
long y = 400;
|
||||
|
||||
for (int i = 1000; i <= 8000; i += 1000)
|
||||
{
|
||||
for (int j = 100; j <= 109; ++j)
|
||||
{
|
||||
if (j == 101 || j == 103 || j == 104)
|
||||
continue;
|
||||
|
||||
TReport_field* rf_b11 = b11.find_field(j);
|
||||
TReport_field* rf_f1 = new TReport_field(*rf_b11);
|
||||
f1.add(rf_f1);
|
||||
const int id = rf_f1->id() + i;
|
||||
rf_f1->set_id(id);
|
||||
rf_f1->set_row(y);
|
||||
rf_f1->set_postscript("");
|
||||
rf_f1->set_prescript("");
|
||||
rf_f1->set_field("");
|
||||
}
|
||||
y += 100;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// APPLICAZIONE
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
struct TRiga_totale
|
||||
{
|
||||
TString80 _descr;
|
||||
real _qta;
|
||||
real _acc;
|
||||
real _impcredito;
|
||||
real _impdebito;
|
||||
};
|
||||
|
||||
class TEstrattoConto : public TSkeleton_application
|
||||
{
|
||||
public:
|
||||
@ -70,7 +181,6 @@ void TEstrattoConto::main_loop()
|
||||
{
|
||||
TReport_book book;
|
||||
TEstrattoConto_rep rep;
|
||||
rep.load("co1300a");
|
||||
|
||||
const TDate dataini = m.get_date(F_DATAINI);
|
||||
const TDate datafin = m.get_date(F_DATAFIN);
|
||||
@ -83,47 +193,13 @@ void TEstrattoConto::main_loop()
|
||||
|
||||
for (bool ok = soci.move_first(); ok; ok = soci.move_next())
|
||||
{
|
||||
TRecordset * r = rep.recordset();
|
||||
TRecordset* r = rep.recordset();
|
||||
long codcf = soci.get(SC_CODCF).as_int();
|
||||
r->set_var("#SOCIO", soci.get("CODCF"));
|
||||
r->set_var("#ANNO", TVariant(long(anno)));
|
||||
r->set_var("#DATAINI", dataini);
|
||||
r->set_var("#DATAFIN", datafin);
|
||||
|
||||
// calcolo totali per articolo
|
||||
TAssoc_array totali_art;
|
||||
|
||||
TReport_section& body2 = rep.section('B', 12);
|
||||
for (bool ok = r->move_first(); ok; ok = r->move_next())
|
||||
{
|
||||
TRecordset* rr = rep.section('B', 11).recordset();
|
||||
for (bool okr = rr->move_first(); okr; okr = rr->move_next())
|
||||
{
|
||||
const TString& codart = rr->get(RDOC_CODART).as_string();
|
||||
TRiga_totale* rt = (TRiga_totale*) totali_art.objptr(codart);
|
||||
if (rt == NULL)
|
||||
{
|
||||
rt = new TRiga_totale;
|
||||
rt->_descr = rr->get(RDOC_DESCR).as_string();
|
||||
totali_art.add(codart, (TObject*) rt);
|
||||
}
|
||||
// sommare qta e importi
|
||||
real qta = rr->get(RDOC_QTA).as_real();
|
||||
rt->_qta += qta;
|
||||
}
|
||||
}
|
||||
// devo passare il recordset al report
|
||||
TCSV_recordset csv("");
|
||||
|
||||
FOR_EACH_ASSOC_OBJECT(totali_art, o, k, it)
|
||||
{
|
||||
TRiga_totale& rt = (TRiga_totale&) *it;
|
||||
csv.new_rec("");
|
||||
TVariant descr = rt._descr;
|
||||
csv.set(0, descr);
|
||||
csv.set(1, rt._qta);
|
||||
}
|
||||
body2.set_recordset(&csv);
|
||||
|
||||
book.add(rep);
|
||||
}
|
||||
book.print_or_preview();
|
||||
|
449
co/co1300a.rep
449
co/co1300a.rep
@ -3,227 +3,370 @@
|
||||
<description>Stampa Estratto Conto Socio</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<field x="1" y="1" type="Stringa" width="10" pattern="1">
|
||||
<source>101@.CODCF</source>
|
||||
<field x="50" y="0.5" type="Testo" width="32" pattern="1" text="Estratto conto dal">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="133" y="1" type="Data" width="12" pattern="1">
|
||||
<source>#SYSTEM.DATE</source>
|
||||
</field>
|
||||
<field x="1" y="2" type="Stringa" width="50" pattern="1">
|
||||
<source>101@.RAGSOC</source>
|
||||
</field>
|
||||
<field x="68" y="2" type="Testo" width="20" pattern="1" text="Estratto conto">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="90" y="2" type="Data" width="12" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<field x="85" y="0.5" type="Data" width="18" pattern="1">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
<source>#DATAINI</source>
|
||||
</field>
|
||||
<field x="107" y="2" type="Testo" width="1" pattern="1" text="-">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<field x="106" y="0.5" type="Testo" width="4" pattern="1" text="al">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="110" y="2" type="Data" width="12" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<field x="113.5" y="0.5" type="Data" width="18" pattern="1">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
<source>#DATAFIN</source>
|
||||
</field>
|
||||
<field x="1" y="3" type="Stringa" width="50" pattern="1">
|
||||
<field x="157.5" y="0.5" type="Testo" width="5" pattern="1" text="Pag." />
|
||||
<field x="163.5" y="0.5" type="Numero" align="right" width="5" pattern="1" text="#####">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field border="2" y="2" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="2" y="2.5" type="Stringa" width="60" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<source>101@.CODCF+' '+TRIM(101@.RAGSOC[1,30])+' '+TRIM(101@.RAGSOC[31,50])</source>
|
||||
</field>
|
||||
<field x="2" y="3.5" type="Stringa" width="50" pattern="1">
|
||||
<source>101@.INDCF+" ,"+101@.CIVCF</source>
|
||||
</field>
|
||||
<field x="1" y="4" type="Stringa" width="50" pattern="1">
|
||||
<field x="2" y="4.5" type="Stringa" width="50" pattern="1">
|
||||
<source>101@.LOCALITACF</source>
|
||||
</field>
|
||||
<field x="1" y="5" type="Stringa" width="50" pattern="1">
|
||||
<source>101@.CAPCF+" "+COMUNI.DENCOM+" "+COMUNI.PROVCOM</source>
|
||||
<field x="2" y="5.5" type="Stringa" width="50" pattern="1">
|
||||
<source>101@.CAPCF+" "+COMUNI.DENCOM+" ("+COMUNI.PROVCOM+")"</source>
|
||||
</field>
|
||||
<field x="1" y="8" type="Testo" width="10" pattern="1" text="Data">
|
||||
<field border="2" y="7" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="1" y="7.5" type="Testo" width="8" pattern="1" text="Data">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>#PARENT.DATADOC</source>
|
||||
</field>
|
||||
<field x="12" y="8" type="Testo" width="30" pattern="1" text="Articolo">
|
||||
<field x="10" y="7.5" type="Testo" width="22" pattern="1" text="Tipo movimento">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="43" y="8" type="Testo" width="10" pattern="1" text="N.f.asta">
|
||||
<field x="36" y="7.5" type="Testo" align="right" width="8" pattern="1" text="N.f.asta">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>#PARENT.NFASTA</source>
|
||||
</field>
|
||||
<field x="52" y="8" type="Testo" align="right" width="10" pattern="1" text="Q.ta">
|
||||
<field x="46" y="7.5" type="Testo" align="right" width="8" pattern="1" text="Peso">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>Q.ta</source>
|
||||
</field>
|
||||
<field x="63" y="8" type="Testo" align="right" width="10" pattern="1" text="Prezzo">
|
||||
<field x="56" y="7.5" type="Testo" align="right" width="10" pattern="1" text="Prezzo">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>34.PREZZONN</source>
|
||||
</field>
|
||||
<field x="74" y="8" type="Testo" align="right" width="10" pattern="1" text="Prz.-acc.">
|
||||
<field x="68" y="7.5" type="Testo" align="right" width="8" pattern="1" text="Prz-8%">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>PREZZONS</source>
|
||||
</field>
|
||||
<field x="85" y="8" type="Testo" align="right" width="10" pattern="1" text="Acc.">
|
||||
<field x="78" y="7.5" type="Testo" align="right" width="9" pattern="1" text="Dir. Merc.">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="89" y="7.5" type="Testo" align="right" width="8" pattern="1" text="Acc. 8%">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>RITENUTA</source>
|
||||
</field>
|
||||
<field x="96" y="8" type="Testo" align="right" width="15" pattern="1" text="Imp.a credito">
|
||||
<field x="99" y="7.5" type="Testo" align="right" width="15" pattern="1" text="Imp.a credito">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>IMPCNS</source>
|
||||
</field>
|
||||
<field x="112" y="8" type="Testo" align="right" width="15" pattern="1" text="Imp.a debito">
|
||||
<field x="116" y="7.5" type="Testo" align="right" width="15" pattern="1" text="Imp.a debito">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>IMPCNS</source>
|
||||
</field>
|
||||
<field x="128" y="8" type="Testo" align="right" width="10" pattern="1" text="Imposta" />
|
||||
<field x="140" y="8" type="Testo" width="20" pattern="1" text="Mercato" />
|
||||
<field x="133" y="7.5" type="Testo" align="right" width="10" pattern="1" text="Imposta">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="145" y="7.5" type="Testo" width="25" pattern="1" text="Mercato">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="1" />
|
||||
<section type="Head" level="2" />
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1" />
|
||||
<section type="Head" level="11" />
|
||||
<section type="Body" level="11">
|
||||
<sql>USE RDOC
|
||||
SELECT (TIPORIGA='CO')||(TIPORIGA='06')
|
||||
<sql>USE RDOC SELECT ((TIPORIGA=="CO")||(TIPORIGA=="02"))
|
||||
JOIN %SPP ALIAS 201 INTO CODTAB==CODART
|
||||
JOIN ANAMAG INTO CODART==CODARTMAG
|
||||
FROM CODNUM=#PARENT.CODNUM ANNO=#PARENT.ANNO PROVV=#PARENT.PROVV NDOC=#PARENT.NDOC
|
||||
TO CODNUM=#PARENT.CODNUM ANNO=#PARENT.ANNO PROVV=#PARENT.PROVV NDOC=#PARENT.NDOC
|
||||
</sql>
|
||||
<field type="Data" width="11" pattern="1">
|
||||
<field x="1" type="Data" width="9" pattern="1">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>#PARENT.DATADOC</source>
|
||||
</field>
|
||||
<field x="12" type="Stringa" width="30" pattern="1">
|
||||
<field x="36" type="Numero" align="right" width="8" pattern="1" hide_zero="1">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>#PARENT.NFASTA</source>
|
||||
</field>
|
||||
<field x="10" type="Stringa" width="28" id="100" pattern="1">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>DESCR</source>
|
||||
<postscript description="B11.100 POSTSCRIPT">#THIS @
|
||||
#EC_TIPOMOV !</postscript>
|
||||
</field>
|
||||
<field x="43" type="Data" width="8" pattern="1">
|
||||
<source>33.NFASTA</source>
|
||||
</field>
|
||||
<field x="141" type="Stringa" hidden="1" align="right" bg_color="#00FFFF" width="12" id="100" pattern="1">
|
||||
<font face="Arial" size="10" />
|
||||
<source>34.TIPORIGA</source>
|
||||
<prescript description="B11.100 PRESCRIPT">#THIS @
|
||||
"CO" = \ confronta tiporiga con "CO"
|
||||
IF
|
||||
#101 ENABLE
|
||||
#102 ENABLE
|
||||
#103 ENABLE
|
||||
#104 ENABLE
|
||||
#105 ENABLE
|
||||
#106 DISABLE
|
||||
#107 ENABLE
|
||||
ELSE
|
||||
#101 DISABLE
|
||||
#102 DISABLE
|
||||
#103 DISABLE
|
||||
#104 DISABLE
|
||||
#105 DISABLE
|
||||
#106 ENABLE
|
||||
#107 ENABLE
|
||||
THEN</prescript>
|
||||
</field>
|
||||
<field x="52" type="Numero" align="right" width="10" id="101" pattern="1" hide_zero="1" text="###.###,@@">
|
||||
<field x="46" type="Numero" align="right" width="8" id="102" pattern="1" hide_zero="1" text="###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<groups>1</groups>
|
||||
<source>QTA</source>
|
||||
<postscript description="B11.101 POSTSCRIPT">MESSAGE ADD,F2.101</postscript>
|
||||
<postscript description="B11.102 POSTSCRIPT">#THIS @
|
||||
DUP
|
||||
"F1.102" +!
|
||||
#EC_QTA !</postscript>
|
||||
</field>
|
||||
<field x="63" type="Prezzo" align="right" width="10" codval="33.CODVAL" id="102" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<field x="56" type="Prezzo" align="right" width="10" codval="33.CODVAL" id="103" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<groups>1</groups>
|
||||
<source>PREZZONN</source>
|
||||
<prescript description="B11.103 PRESCRIPT">"CODNUM" @
|
||||
"CONF"
|
||||
=
|
||||
IF
|
||||
"PREZZONN" @
|
||||
"ANAMAG.USER1" @
|
||||
"X"
|
||||
=
|
||||
IF
|
||||
"QTA" @
|
||||
DUP
|
||||
0
|
||||
C;E;
|
||||
IF
|
||||
F;
|
||||
THEN
|
||||
THEN
|
||||
ELSE
|
||||
0
|
||||
THEN
|
||||
#THIS !
|
||||
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="74" type="Prezzo" align="right" width="10" id="103" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<field x="67" type="Prezzo" align="right" width="8" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<groups>1</groups>
|
||||
<source>PREZZONS</source>
|
||||
<prescript description="B11.104 PRESCRIPT">"CODNUM" @
|
||||
"CONF"
|
||||
=
|
||||
IF
|
||||
"PREZZONS" @
|
||||
"ANAMAG.USER1" @
|
||||
"X"
|
||||
=
|
||||
IF
|
||||
"QTA" @
|
||||
DUP
|
||||
0
|
||||
C;E;
|
||||
IF
|
||||
F;
|
||||
THEN
|
||||
THEN
|
||||
ELSE
|
||||
0
|
||||
THEN
|
||||
#THIS !
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="85" type="Prezzo" align="right" width="10" id="104" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<field x="78.5" type="Valuta" align="right" width="9" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<groups>1</groups>
|
||||
<source>IMPCNN-IMPCNS</source>
|
||||
<postscript description="B11.104 POSTSCRIPT">MESSAGE ADD,F2.104</postscript>
|
||||
<source>#PARENT.SPESMER</source>
|
||||
<prescript description="B11.105 PRESCRIPT">#THIS @ \ leggo il val corrente
|
||||
-1 * \ cambio segno
|
||||
#THIS ! \ scrivo il valore</prescript>
|
||||
<postscript description="B11.105 POSTSCRIPT">#THIS @
|
||||
DUP
|
||||
"F1.105" +!
|
||||
#EC_MER !
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="96" type="Prezzo" align="right" width="15" id="105" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<field x="89" type="Valuta" align="right" width="8" id="106" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>SCONTOR</source>
|
||||
<postscript description="B11.106 POSTSCRIPT">#THIS @
|
||||
DUP
|
||||
"F1.106" +!
|
||||
#EC_ACC !
|
||||
</postscript>
|
||||
</field>
|
||||
<field x="99" type="Valuta" align="right" width="15" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<groups>1</groups>
|
||||
<source>IMPCNS</source>
|
||||
<postscript description="B11.105 POSTSCRIPT">MESSAGE ADD,F2.105
|
||||
MESSAGE ADD,F2.115</postscript>
|
||||
<prescript description="B11.107 PRESCRIPT">#PARENT.CODNUM @ \ legge il tipodoc
|
||||
"CONF" = IF \ controlla se &#E8; un conferimento
|
||||
#PARENT.NETCRED @ \ se &#E8; un conferimento scrivo TOTMER
|
||||
DUP
|
||||
0 E;= IF \ se &#E8; maggiore di zero lo scrivo in B11.107
|
||||
"B11.107"
|
||||
ELSE \ altrimenti ci scrivo 0
|
||||
0 *
|
||||
"B11.107"
|
||||
THEN
|
||||
ELSE \ se non &#E8; un conferimento
|
||||
#PARENT.IMPONIBILI @ \ se non un conferimento scrivo IMPONIBILI
|
||||
DUP
|
||||
0 C;= IF \ se &#E8; minore di zero gli cambio segno e lo scrivo in B11.107
|
||||
-1 *
|
||||
"B11.107"
|
||||
ELSE \ altrimenti scrivo 0
|
||||
0 *
|
||||
"B11.107"
|
||||
THEN
|
||||
THEN
|
||||
! \ lo scrivo effettivamente</prescript>
|
||||
<postscript description="B11.107 POSTSCRIPT">#THIS @
|
||||
DUP
|
||||
"F1.107" +!
|
||||
#EC_IMPCRE !</postscript>
|
||||
</field>
|
||||
<field x="112" type="Prezzo" align="right" width="15" id="106" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<field x="116" type="Valuta" align="right" width="15" id="108" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<groups>2</groups>
|
||||
<source>IMPCNS</source>
|
||||
<postscript description="B11.106 POSTSCRIPT">MESSAGE ADD,F2.106</postscript>
|
||||
<prescript description="B11.108 PRESCRIPT">#PARENT.CODNUM @ \ legge il tipodoc
|
||||
"CONF" = IF \ controlla se &#E8; un conferimento
|
||||
#PARENT.NETCRED @ \ se &#E8; un conferimento scrivo TOTMER
|
||||
DUP
|
||||
0 C;= IF \ se &#E8; minore di zero gli cambio segno e lo scrivo in B11.108
|
||||
-1 *
|
||||
"B11.108"
|
||||
ELSE \ altrimenti ci scrivo 0
|
||||
0 *
|
||||
"B11.108"
|
||||
THEN
|
||||
ELSE \ se non &#E8; un conferimento
|
||||
#PARENT.IMPONIBILI @ \ se non &#E8; un conferimento scrivo IMPONIBILI
|
||||
DUP
|
||||
0 E;= IF \ se &#E8; maggiore di zero lo scrivo in B11.108
|
||||
"B11.108"
|
||||
ELSE \ altrimenti scrivo 0
|
||||
0 *
|
||||
"B11.108"
|
||||
THEN
|
||||
THEN
|
||||
! \ lo scrivo effettivamente</prescript>
|
||||
<postscript description="B11.108 POSTSCRIPT">#THIS @
|
||||
DUP
|
||||
"F1.108" +!
|
||||
#EC_IMPDEB !</postscript>
|
||||
</field>
|
||||
<field x="128" type="Prezzo" align="right" width="10" id="107" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>IMPOSTA</source>
|
||||
<postscript description="B11.107 POSTSCRIPT">MESSAGE ADD,F2.107</postscript>
|
||||
<field x="133" type="Prezzo" hidden="1" align="right" width="10" id="109" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>#PARENT.IMPOSTE</source>
|
||||
<prescript description="B11.109 PRESCRIPT">#THIS @
|
||||
-1 *
|
||||
#THIS !</prescript>
|
||||
<postscript description="B11.109 POSTSCRIPT">#THIS @
|
||||
#EC_IMPO !</postscript>
|
||||
</field>
|
||||
<field x="144" type="Numero" hidden="1" align="right" width="10" id="110" pattern="1">
|
||||
<source>#PARENT.MERCATO</source>
|
||||
</field>
|
||||
<field x="145" type="Stringa" bg_color="#00FFFF" width="40" id="111" pattern="1">
|
||||
<font face="Courier New" size="7" />
|
||||
<prescript description="B11.111 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#PARENT.MERCATO,RAGSOC</prescript>
|
||||
</field>
|
||||
<field x="133" type="Valuta" hidden="1" align="right" width="15" id="208" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>#PARENT.TOTRITACC</source>
|
||||
<prescript description="B11.208 PRESCRIPT">#THIS @ \ leggo il val corrente
|
||||
-1 * \ cambio segno
|
||||
#THIS ! \ scrivo il valore</prescript>
|
||||
<postscript description="B11.208 POSTSCRIPT">#THIS @
|
||||
DUP
|
||||
"F1.98" +!
|
||||
"F1.108" +!</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="11" />
|
||||
<section type="Head" level="12" />
|
||||
<section deactivated="1" type="Body" level="12" hidden="1">
|
||||
<sql>USE RDOC
|
||||
SELECT (TIPORIGA='CO')||(TIPORIGA='06')
|
||||
JOIN %SPP ALIAS 201 INTO CODTAB==CODART
|
||||
FROM CODNUM=#PARENT.CODNUM ANNO=#PARENT.ANNO PROVV=#PARENT.PROVV NDOC=#PARENT.NDOC
|
||||
TO CODNUM=#PARENT.CODNUM ANNO=#PARENT.ANNO PROVV=#PARENT.PROVV NDOC=#PARENT.NDOC
|
||||
</sql>
|
||||
<field x="13" type="Stringa" width="30" pattern="1">
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1">
|
||||
<field border="2" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="10" type="Testo" width="30" pattern="1" text="Ritenute mensili (12%)">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="30" y="1" type="Testo" width="10" pattern="1" text="Totali">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field border="2" y="2.5" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="12" y="2.5" type="Testo" valign="center" width="25" pattern="1" text="Riepilogo per tipo movimento">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="142" type="Stringa" hidden="1" align="right" bg_color="#00FFFF" width="12" id="100" pattern="1">
|
||||
<font face="Arial" size="10" />
|
||||
<source>34.TIPORIGA</source>
|
||||
<prescript>#THIS @
|
||||
"CO" = \ confronta tiporiga con "CO"
|
||||
IF
|
||||
#101 ENABLE
|
||||
#102 ENABLE
|
||||
#103 ENABLE
|
||||
#104 ENABLE
|
||||
#105 ENABLE
|
||||
#106 DISABLE
|
||||
#107 ENABLE
|
||||
<field x="46" y="2.5" type="Testo" valign="center" align="right" width="8" pattern="1" text="Peso">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>Q.ta</source>
|
||||
</field>
|
||||
<field x="78" y="2.5" type="Testo" valign="center" align="right" width="9" pattern="1" text="Dir. Merc.">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="89" y="2.5" type="Testo" valign="center" align="right" width="8" pattern="1" text="Acc. 8%">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>RITENUTA</source>
|
||||
</field>
|
||||
<field x="99" y="2.5" type="Testo" valign="center" align="right" width="15" pattern="1" text="Imp.a credito">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>IMPCNS</source>
|
||||
</field>
|
||||
<field x="116" y="2.5" type="Testo" valign="center" align="right" width="15" pattern="1" text="Imp.a debito">
|
||||
<font face="Courier New" size="7" />
|
||||
<source>IMPCNS</source>
|
||||
</field>
|
||||
<field x="133" y="2.5" type="Testo" valign="center" align="right" width="10" pattern="1" text="Imposta">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field border="2" y="3.5" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field border="2" y="12" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="116" type="Valuta" align="right" width="15" id="98" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="46" y="1" type="Numero" align="right" width="8" id="102" pattern="1" text="###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="78" y="1" type="Valuta" align="right" width="9" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="89" y="1" type="Valuta" align="right" width="8" id="106" pattern="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="99" y="1" type="Valuta" align="right" width="15" id="107" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="116" y="1" type="Valuta" align="right" width="15" id="108" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<font face="Courier New" size="7" />
|
||||
</field>
|
||||
<field x="141" y="1" type="Stringa" align="right" width="16" id="109" pattern="1">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<prescript description="F1.109 PRESCRIPT">"F1.107" @ \ leggo il contenuto del campo 107
|
||||
"F1.108" @ \ leggo il contenuto del campo 108
|
||||
- \ faccio la sottrazione tra i due
|
||||
0 E;= IF \ se il risultato &#E8; maggiore di zero, scrivo "saldo a credito"
|
||||
"Saldo a credito" "F1.109"
|
||||
ELSE
|
||||
#101 DISABLE
|
||||
#102 DISABLE
|
||||
#103 DISABLE
|
||||
#104 DISABLE
|
||||
#105 DISABLE
|
||||
#106 ENABLE
|
||||
#107 ENABLE
|
||||
THEN</prescript>
|
||||
"Saldo a debito" "F1.109" \ altrimenti scrivo saldo a debito
|
||||
THEN
|
||||
!</prescript>
|
||||
</field>
|
||||
<field x="53" type="Numero" align="right" width="10" id="101" pattern="1" hide_zero="1" text="###.###.@@">
|
||||
<source>QTA</source>
|
||||
<postscript>MESSAGE ADD,F2.101</postscript>
|
||||
<field x="158" y="1" type="Valuta" align="right" width="12" id="110" pattern="1" text="#########,@@">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<prescript description="F1.110 PRESCRIPT">"F1.107" @ \ leggo il contenuto del campo 107
|
||||
"F1.108" @ \ leggo il conetnuto del campo 108
|
||||
- \ faccio la sottrazione tra i due
|
||||
DUP \ duplico il risultato
|
||||
0 C;= IF \ se il risultato &#E8; negativo, gli cambio segno
|
||||
* -1
|
||||
THEN \ e lo scrivo nel campo 110
|
||||
"F1.110" !
|
||||
</prescript>
|
||||
</field>
|
||||
<field x="64" type="Prezzo" align="right" width="10" id="102" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>PREZZONN</source>
|
||||
</field>
|
||||
<field x="75" type="Prezzo" align="right" width="10" id="103" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>PREZZONS</source>
|
||||
</field>
|
||||
<field x="86" type="Prezzo" align="right" width="10" id="104" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>IMPCNN-IMPCNS</source>
|
||||
<prescript>MESSAGE ADD,F2.104</prescript>
|
||||
</field>
|
||||
<field x="97" type="Prezzo" align="right" width="15" id="105" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>IMPCNS</source>
|
||||
<postscript>MESSAGE ADD,F2.105</postscript>
|
||||
</field>
|
||||
<field x="113" type="Prezzo" align="right" width="15" id="106" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>IMPCNS</source>
|
||||
<postscript>MESSAGE ADD,F2.106</postscript>
|
||||
</field>
|
||||
<field x="129" type="Prezzo" align="right" width="10" id="107" pattern="1" hide_zero="1" text="#########,@@">
|
||||
<source>IMPOSTA</source>
|
||||
<postscript>MESSAGE ADD,F2.107</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" level="12" />
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1" />
|
||||
<section type="Foot" level="2">
|
||||
<field x="30" type="Testo" width="10" pattern="1" text="TOTALI" />
|
||||
<field x="92" y="3" type="Testo" width="35" pattern="1" text="Progressivo annuo conferimenti" />
|
||||
<field x="52" type="Numero" align="right" width="10" id="101" pattern="1" hide_zero="1" text="###.###,@@">
|
||||
<postscript description="F2.101 POSTSCRIPT">MESSAGE ADD,F2.101</postscript>
|
||||
</field>
|
||||
<field x="96" type="Prezzo" align="right" width="15" id="105" pattern="1" hide_zero="1" text="#########,@@" />
|
||||
<field x="112" type="Prezzo" align="right" width="15" id="106" pattern="1" hide_zero="1" text="#########,@@" />
|
||||
<field x="128" type="Prezzo" align="right" width="15" id="107" pattern="1" hide_zero="1" text="#########,@@" />
|
||||
<field x="128" y="3" type="Prezzo" align="right" width="15" id="115" pattern="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<sql>USE DOC
|
||||
KEY 2
|
||||
SELECT (NUM(ANSI(DATADOC)E;=ANSI(#DATAINI)))(NUM(ANSI(DATADOC)C;=ANSI(#DATAFIN)))
|
||||
SELECT BETWEEN(DATADOC,#DATAINI,#DATAFIN)
|
||||
JOIN CLIFO ALIAS 101 INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||
JOIN COMUNI TO 101@ INTO STATO==STATOCF COM==COMCF
|
||||
FROM TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAINI
|
||||
TO TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAFIN</sql>
|
||||
TO TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAFIN
|
||||
</sql>
|
||||
</report>
|
@ -22,7 +22,7 @@ public:
|
||||
|
||||
void TFatturazione_cooperative::campi_raggruppamento_righe(TToken_string& campi_riga) const
|
||||
{
|
||||
campi_riga = "CODART|UMQTA!CODIVA"; // Uguali sempre
|
||||
campi_riga = "CODART|UMQTA"; // Uguali sempre
|
||||
}
|
||||
|
||||
void TFatturazione_cooperative::campi_raggruppamento(TToken_string& campi) const
|
||||
@ -33,9 +33,13 @@ void TFatturazione_cooperative::campi_raggruppamento(TToken_string& campi) const
|
||||
void TFatturazione_cooperative::add_rows(TRiga_documento & rout, TRiga_documento & rin)
|
||||
{
|
||||
real valore = rout.get_real(RDOC_PREZZO);
|
||||
real qta = rout.get_real(RDOC_QTA);
|
||||
|
||||
valore += rin.doc().imponibile();
|
||||
valore += rin.doc().get_real("TOTMER")+rin.doc().get_real("SPESMER");
|
||||
valore.round(2);
|
||||
rout.put(RDOC_PREZZO, valore);
|
||||
qta += rin.get_real(RDOC_QTA);
|
||||
rout.put(RDOC_QTA, qta);
|
||||
}
|
||||
|
||||
bool TFatturazione_cooperative::doc_raggruppabile(const TDocumento & doc_in, const TDocumento & doc_out, TToken_string & campi) const
|
||||
@ -50,8 +54,10 @@ bool TFatturazione_cooperative::doc_raggruppabile(const TDocumento & doc_in, con
|
||||
|
||||
if (raggruppa)
|
||||
{
|
||||
const TString iva_in = rin.get(RDOC_CODIVA);
|
||||
const TString & art = rin.get(RDOC_CODARTMAG);
|
||||
const TString & iva_in = cache().get(LF_ANAMAG, art, ANAMAG_USER4);
|
||||
const TString iva_out = rout.get(RDOC_CODIVA);
|
||||
|
||||
raggruppa = iva_in == iva_out;
|
||||
}
|
||||
return raggruppa;
|
||||
@ -65,11 +71,18 @@ void TFatturazione_cooperative::create_row(TDocumento& doc_out, const TRiga_docu
|
||||
{
|
||||
TFatturazione_bolle::create_row(doc_out, rin);
|
||||
TRiga_documento & rout = doc_out[1];
|
||||
const real valore = rin.doc().imponibile();
|
||||
real valore = rin.doc().get_real("TOTMER")+rin.doc().get_real("SPESMER");
|
||||
|
||||
rout.put(RDOC_QTA, 1);
|
||||
valore.round(2);
|
||||
rout.put(RDOC_PREZZO, valore);
|
||||
rout.zero(RDOC_SCONTO);
|
||||
rout.put(RDOC_CODAGG1, "X");
|
||||
|
||||
const TString & art = rout.get(RDOC_CODARTMAG);
|
||||
const TString & codiva= cache().get(LF_ANAMAG, art, ANAMAG_USER4);
|
||||
|
||||
if (codiva.full())
|
||||
rout.put(RDOC_CODIVA, codiva);
|
||||
}
|
||||
}
|
||||
|
||||
|
11
co/co1600a.h
Executable file
11
co/co1600a.h
Executable file
@ -0,0 +1,11 @@
|
||||
// campi per la maschera co1600a
|
||||
|
||||
#define F_DATAINI 101
|
||||
#define F_DATAFIN 102
|
||||
#define F_DASOCIO 103
|
||||
#define F_DESDASOCIO 104
|
||||
#define F_ASOCIO 105
|
||||
#define F_DESASOCIO 106
|
||||
#define F_CODABI 107
|
||||
#define F_CODCAB 108
|
||||
#define F_DESBAN 109
|
127
co/co1600a.rep
Executable file
127
co/co1600a.rep
Executable file
@ -0,0 +1,127 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="co1600a" orientation="2" lpi="6">
|
||||
<description>Stampa Saldi Estratto Conto</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<field x="58" type="Testo" align="right" width="15" pattern="1" text="Nr. cF;corrente">
|
||||
<source>101.NUMCC</source>
|
||||
</field>
|
||||
<field x="75" type="Testo" align="right" width="17" pattern="1" text="Saldo a credito" />
|
||||
<field x="94" type="Testo" align="right" width="17" pattern="1" text="Saldo a debito">
|
||||
<source>Saldo a debito</source>
|
||||
</field>
|
||||
<field x="113" type="Testo" width="50" pattern="1" text="Banca F; dipendenza">
|
||||
<source>102.S0</source>
|
||||
</field>
|
||||
<field border="2" y="1" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="2" type="Testo" width="54" id="101" pattern="1" text="Socio">
|
||||
<source>101.CODCF</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<field x="71" type="Testo" valign="center" align="center" width="50" height="2" pattern="1" text="STAMPA SALDI ESTRATTO CONTO">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="157.75" y="0.12" type="Testo" width="5" pattern="1" text="Pag." />
|
||||
<field x="163.75" y="0.12" type="Numero" align="right" width="5" pattern="1" text="#####">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field border="2" y="2" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="3" y="3" type="Testo" width="6" pattern="1" text="Ditta" />
|
||||
<field x="10" y="3" type="Stringa" width="60" pattern="1">
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="3" y="4" type="Testo" valign="bottom" width="12" pattern="1" text="Dalla data" />
|
||||
<field x="16" y="4" type="Data" valign="bottom" align="right" width="15" pattern="1">
|
||||
<source>#DATAINI</source>
|
||||
</field>
|
||||
<field x="32" y="4" type="Testo" valign="bottom" align="center" width="12" pattern="1" text="alla data" />
|
||||
<field x="45" y="4" type="Data" valign="bottom" align="right" width="15" pattern="1">
|
||||
<source>#DATAFIN</source>
|
||||
</field>
|
||||
<field border="2" y="6" type="Linea" width="170" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="2" hidden="1">
|
||||
<groupby>DOC.TIPOCF+DOC.CODCF</groupby>
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.104
|
||||
MESSAGE RESET,F2.105</prescript>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1" hidden="1">
|
||||
<field x="2" type="Numero" align="right" width="3" id="101" pattern="1">
|
||||
<source>DOC.CODCF</source>
|
||||
<prescript description="B1.101 PRESCRIPT">#THIS @ \ leggo il valore attuale
|
||||
"F2.101" ! \ lo scrivo nel riepilogo</prescript>
|
||||
</field>
|
||||
<field x="6" type="Stringa" dynamic_height="1" width="25" height="2" id="102" pattern="1">
|
||||
<source>TRIM(CLIFO.RAGSOC[1,30])+" "+TRIM(CLIFO.RAGSOC[31,50])</source>
|
||||
<prescript description="B1.102 PRESCRIPT">#THIS @
|
||||
"F2.102" !</prescript>
|
||||
</field>
|
||||
<field x="34" type="Stringa" align="right" width="15" id="103" pattern="1">
|
||||
<source>CLIFO.IBAN</source>
|
||||
<alt_source>CLIFO.NUMCC</alt_source>
|
||||
<prescript description="B1.103 PRESCRIPT">#THIS @
|
||||
"F2.103" !</prescript>
|
||||
</field>
|
||||
<field x="52" type="Prezzo" align="right" width="15" id="104" pattern="1" text="###.###.###,@@">
|
||||
<prescript description="B1.104 PRESCRIPT">"DOC.TIPODOC" @ \ leggo il tipo documento
|
||||
"CONF" = IF \ controllo se &#E8; un conferimento
|
||||
"DOC.NETCRED" @
|
||||
"F2.104" \ lo devo mettere nella coda del gruppo
|
||||
ELSE \ se non &#E8; un conferimento
|
||||
"DOC.IMPONIBILI" @
|
||||
-1 * \ gli cambio segno
|
||||
"F2.104" \ lo metto nella coda del gruppo
|
||||
THEN
|
||||
+! \ lo sommo</prescript>
|
||||
</field>
|
||||
<field x="52" y="1" type="Prezzo" align="right" width="15" id="105" pattern="1" text="###.###.###,@@">
|
||||
<prescript description="B1.105 PRESCRIPT">"DOC.TOTRITACC" @
|
||||
"F2.104" \ lo metto nella coda del gruppo
|
||||
+! \ lo sommo</prescript>
|
||||
</field>
|
||||
<field x="70" type="Stringa" dynamic_height="1" width="30" height="2" id="106" pattern="1">
|
||||
<source>CLIFO.CODABI+' '+CLIFO.CODCAB+' '+101@.S0+' '+102@.S0</source>
|
||||
<prescript description="B1.106 PRESCRIPT">#THIS @
|
||||
"F2.106" !</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1">
|
||||
<field border="2" y="1" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="55" y="2" type="Testo" width="15" pattern="1" text="TOTALI" />
|
||||
<field x="75" y="2" type="Prezzo" align="right" width="17" id="101" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="94" y="2" type="Prezzo" align="right" width="17" id="102" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="2">
|
||||
<field x="3" type="Numero" align="right" width="3" id="101" pattern="1" />
|
||||
<field x="7" type="Stringa" width="49" id="102" pattern="1" />
|
||||
<field x="58" type="Stringa" align="right" width="15" id="103" pattern="1" />
|
||||
<field x="75" type="Prezzo" align="right" width="17" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F2.104 PRESCRIPT">#THIS @ \ leggo il valore attuale
|
||||
DUP \ lo duplico
|
||||
0 E;= IF \ se &#E8; maggiore di zero
|
||||
"0" "F2.105" ! \ scrivo 0 in saldo a debito
|
||||
ELSE
|
||||
-1 * \ canbio segno al valore attuale
|
||||
"F2.105" ! \ lo scrivo in saldo a debito
|
||||
0 "F2.104" ! \ scrivo 0 in saldo a credito
|
||||
THEN</prescript>
|
||||
<postscript description="F2.104 POSTSCRIPT">MESSAGE ADD,F1.101</postscript>
|
||||
</field>
|
||||
<field x="94" type="Prezzo" align="right" width="17" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<postscript description="F2.105 POSTSCRIPT">MESSAGE ADD,F1.102</postscript>
|
||||
</field>
|
||||
<field x="113" type="Stringa" width="70" id="106" pattern="1" />
|
||||
</section>
|
||||
<sql>USE DOC
|
||||
KEY 2
|
||||
SELECT BETWEEN(DATADOC,#DATAINI,#DATAFIN)
|
||||
JOIN CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||
JOIN %BAN TO CLIFO ALIAS 101 INTO CODTAB==CODABI
|
||||
JOIN %BAN TO CLIFO ALIAS 102 INTO CODTAB==CODABI+CODCAB
|
||||
FROM TIPOCF='F' CODCF=#DASOCIO
|
||||
TO TIPOCF='F' CODCF=#ASOCIO
|
||||
</sql>
|
||||
</report>
|
89
co/co1600a.uml
Executable file
89
co/co1600a.uml
Executable file
@ -0,0 +1,89 @@
|
||||
#include "co1600a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stampa saldi estratto conto" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 1 "Selezione periodo"
|
||||
END
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 2 2 "Data iniziale "
|
||||
FIELD DATAINI
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 37 2 "Data fin. "
|
||||
FIELD DATAFIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 4 "Selezione soci"
|
||||
END
|
||||
|
||||
NUMBER F_DASOCIO 6
|
||||
BEGIN
|
||||
PROMPT 2 5 "Da socio "
|
||||
FIELD DASOCIO
|
||||
USE LF_SOCICOOP KEY 1
|
||||
JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF
|
||||
INPUT CODCF F_DASOCIO
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||
DISPLAY "Codice fiscale@16" 20->COFI
|
||||
OUTPUT F_DASOCIO CODCF
|
||||
OUTPUT F_DESDASOCIO 20->RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDASOCIO 50
|
||||
BEGIN
|
||||
PROMPT 25 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ASOCIO 6
|
||||
BEGIN
|
||||
PROMPT 2 6 "A socio "
|
||||
FIELD ASOCIO
|
||||
USE LF_SOCICOOP KEY 1
|
||||
JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF
|
||||
INPUT CODCF F_ASOCIO
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||
DISPLAY "Codice fiscale@16" 20->COFI
|
||||
OUTPUT F_ASOCIO CODCF
|
||||
OUTPUT F_DESASOCIO 20->RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_DESASOCIO 50
|
||||
BEGIN
|
||||
PROMPT 25 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
11
co/co1700a.h
Executable file
11
co/co1700a.h
Executable file
@ -0,0 +1,11 @@
|
||||
// campi per la maschera co1600a
|
||||
|
||||
#define F_DATAINI 101
|
||||
#define F_DATAFIN 102
|
||||
#define F_DASOCIO 103
|
||||
#define F_DESDASOCIO 104
|
||||
#define F_ASOCIO 105
|
||||
#define F_DESASOCIO 106
|
||||
#define F_CODABI 107
|
||||
#define F_CODCAB 108
|
||||
#define F_DESBAN 109
|
137
co/co1700a.rep
Executable file
137
co/co1700a.rep
Executable file
@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="co1700a" orientation="2" lpi="6">
|
||||
<description>Stampa Saldi Estratto Conto per Banca</description>
|
||||
<font face="Courier New" size="8" />
|
||||
<section type="Head">
|
||||
<field x="58" type="Testo" align="right" width="15" pattern="1" text="Nr. cF;corrente">
|
||||
<source>101.NUMCC</source>
|
||||
</field>
|
||||
<field x="75" type="Testo" align="right" width="17" pattern="1" text="Saldo a credito" />
|
||||
<field x="94" type="Testo" align="right" width="17" pattern="1" text="Saldo a debito">
|
||||
<source>Saldo a debito</source>
|
||||
</field>
|
||||
<field x="112" type="Testo" width="50" pattern="1" text="Banca F; dipendenza">
|
||||
<source>102.S0</source>
|
||||
</field>
|
||||
<field border="2" y="1" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="2" type="Testo" width="54" id="101" pattern="1" text="Socio">
|
||||
<source>101.CODCF</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="1">
|
||||
<field x="61" type="Testo" valign="center" align="center" width="60" height="2" pattern="1" text="STAMPA SALDI ESTRATTO CONTO PER BANCA">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="157.78" y="0.12" type="Testo" width="5" pattern="1" text="Pag." />
|
||||
<field x="163.78" y="0.12" type="Numero" align="right" width="5" pattern="1" text="#####">
|
||||
<source>#REPORT.PAGE</source>
|
||||
</field>
|
||||
<field border="2" y="2" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="3" y="3" type="Testo" width="6" pattern="1" text="Ditta" />
|
||||
<field x="10" y="3" type="Stringa" width="60" pattern="1">
|
||||
<source>#SYSTEM.RAGSOC</source>
|
||||
</field>
|
||||
<field x="3" y="4" type="Testo" valign="bottom" width="12" pattern="1" text="Dalla data" />
|
||||
<field x="16" y="4" type="Data" valign="bottom" align="right" width="15" pattern="1">
|
||||
<source>#DATAINI</source>
|
||||
</field>
|
||||
<field x="32" y="4" type="Testo" valign="bottom" align="center" width="12" pattern="1" text="alla data" />
|
||||
<field x="45" y="4" type="Data" valign="bottom" align="right" width="15" pattern="1">
|
||||
<source>#DATAFIN</source>
|
||||
</field>
|
||||
<field border="2" y="6" type="Linea" width="170" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="2" page_break="1">
|
||||
<groupby>CLIFO.CODABI+CLIFO.CODCAB</groupby>
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.101
|
||||
MESSAGE RESET,F2.102</prescript>
|
||||
<field border="2" y="1.25" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="4" type="Stringa" width="120" id="106" pattern="1">
|
||||
<font face="Courier New" bold="1" size="8" />
|
||||
<source>CLIFO.CODABI+' '+CLIFO.CODCAB+' '+101@.S0+' '+102@.S0</source>
|
||||
<prescript description="H2.106 PRESCRIPT">#THIS @
|
||||
"F3.106" !</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="3">
|
||||
<groupby>DOC.TIPOCF+DOC.CODCF</groupby>
|
||||
<prescript description="H3 PRESCRIPT">MESSAGE RESET,F3.103
|
||||
MESSAGE RESET,F3.104
|
||||
MESSAGE RESET,F3.105</prescript>
|
||||
</section>
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1" hidden="1">
|
||||
<field x="3.5" type="Numero" align="right" width="3" id="101" pattern="1">
|
||||
<source>DOC.CODCF</source>
|
||||
<prescript description="B1.101 PRESCRIPT">#THIS @ \ leggo il valore attuale
|
||||
"F3.101" ! \ lo scrivo nel riepilogo</prescript>
|
||||
</field>
|
||||
<field x="7.5" type="Stringa" dynamic_height="1" width="25" height="2" id="102" pattern="1">
|
||||
<source>TRIM(20.RAGSOC[1,30])+" "+TRIM(20.RAGSOC[31,50])</source>
|
||||
<prescript description="B1.102 PRESCRIPT">#THIS @
|
||||
"F3.102" !</prescript>
|
||||
</field>
|
||||
<field x="35.5" type="Stringa" align="right" width="15" id="103" pattern="1">
|
||||
<source>CLIFO.IBAN</source>
|
||||
<alt_source>CLIFO.NUMCC</alt_source>
|
||||
<prescript description="B1.103 PRESCRIPT">#THIS @
|
||||
"F3.103" !</prescript>
|
||||
</field>
|
||||
<field x="53.5" type="Prezzo" align="right" width="15" id="104" pattern="1" text="###.###.###,@@">
|
||||
<prescript description="B1.104 PRESCRIPT">"DOC.TIPODOC" @ \ leggo il tipo documento
|
||||
"CONF" = IF \ controllo se &#E8; un conferimento
|
||||
"DOC.NETCRED" @
|
||||
"F3.104" \ lo devo mettere nella coda del gruppo
|
||||
ELSE \ se non &#E8; un conferimento
|
||||
"DOC.IMPONIBILI" @
|
||||
-1 * \ gli cambio segno
|
||||
"F3.104" \ lo metto nella coda del gruppo
|
||||
THEN
|
||||
+! \ lo sommo</prescript>
|
||||
</field>
|
||||
<field x="53.5" y="1" type="Prezzo" align="right" width="15" id="105" pattern="1" text="###.###.###,@@">
|
||||
<prescript description="B1.105 PRESCRIPT">"DOC.TOTRITACC" @
|
||||
"F3.104" \ lo metto nella coda del gruppo
|
||||
+! \ lo sommo</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1" />
|
||||
<section type="Foot" level="2">
|
||||
<field border="2" x="-0.04" y="0.25" type="Linea" width="170" height="0" pattern="1" />
|
||||
<field x="54.96" y="1.25" type="Testo" width="15" pattern="1" text="TOTALE" />
|
||||
<field x="75" y="1.25" type="Valuta" align="right" width="17" id="101" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
<field x="94" y="1.25" type="Valuta" align="right" width="17" id="102" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="3">
|
||||
<field x="0.75" y="-0.13" type="Numero" align="right" width="3" id="101" pattern="1" />
|
||||
<field x="4.75" y="-0.13" type="Stringa" width="49" id="102" pattern="1" />
|
||||
<field x="55.75" y="-0.13" type="Stringa" align="right" width="15" id="103" pattern="1" />
|
||||
<field x="75" y="-0.13" type="Valuta" align="right" width="17" id="104" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<prescript description="F3.104 PRESCRIPT">#THIS @ \ leggo il valore attuale
|
||||
DUP \ lo duplico
|
||||
0 E;= IF \ se &#E8; maggiore di zero
|
||||
"0" "F3.105" ! \ scrivo 0 in saldo a debito
|
||||
ELSE
|
||||
-1 * \ canbio segno al valore attuale
|
||||
"F3.105" ! \ lo scrivo in saldo a debito
|
||||
0 "F3.104" ! \ scrivo 0 in saldo a credito
|
||||
THEN</prescript>
|
||||
<postscript description="F3.104 POSTSCRIPT">MESSAGE ADD,F2.101</postscript>
|
||||
</field>
|
||||
<field x="94" y="-0.13" type="Valuta" align="right" width="17" id="105" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||
<postscript description="F3.105 POSTSCRIPT">MESSAGE ADD,F2.102</postscript>
|
||||
</field>
|
||||
<field x="112" y="-0.13" type="Stringa" width="50" id="106" pattern="1" />
|
||||
</section>
|
||||
<sql>USE DOC
|
||||
KEY 2
|
||||
SELECT BETWEEN(DATADOC,#DATAINI,#DATAFIN)((#CODABI=="")||(CLIFO.CODABI==#CODABI))((#CODCAB=="")||(CLIFO.CODCAB==#CODCAB))
|
||||
BY 20.CODABI 20.CODCAB TIPOCF CODCF
|
||||
JOIN CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||
JOIN %BAN TO CLIFO ALIAS 101 INTO CODTAB==CODABI
|
||||
JOIN %BAN TO CLIFO ALIAS 102 INTO CODTAB==CODABI+CODCAB
|
||||
FROM TIPOCF='F' CODCF=#DASOCIO
|
||||
TO TIPOCF='F' CODCF=#ASOCIO
|
||||
</sql>
|
||||
</report>
|
137
co/co1700a.uml
Executable file
137
co/co1700a.uml
Executable file
@ -0,0 +1,137 @@
|
||||
#include "co1600a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Stampa saldi estratto conto" 0 -1 0 19
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 1 "Selezione periodo"
|
||||
END
|
||||
|
||||
DATE F_DATAINI
|
||||
BEGIN
|
||||
PROMPT 2 2 "Data iniziale "
|
||||
FIELD DATAINI
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 37 2 "Data fin. "
|
||||
FIELD DATAFIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 4 "Selezione soci"
|
||||
END
|
||||
|
||||
NUMBER F_DASOCIO 6
|
||||
BEGIN
|
||||
PROMPT 2 5 "Da socio "
|
||||
FIELD DASOCIO
|
||||
USE LF_SOCICOOP KEY 1
|
||||
JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF
|
||||
INPUT CODCF F_DASOCIO
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||
DISPLAY "Codice fiscale@16" 20->COFI
|
||||
OUTPUT F_DASOCIO CODCF
|
||||
OUTPUT F_DESDASOCIO 20->RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESDASOCIO 50
|
||||
BEGIN
|
||||
PROMPT 25 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ASOCIO 6
|
||||
BEGIN
|
||||
PROMPT 2 6 "A socio "
|
||||
FIELD ASOCIO
|
||||
USE LF_SOCICOOP KEY 1
|
||||
JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF
|
||||
INPUT CODCF F_ASOCIO
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||
DISPLAY "Codice fiscale@16" 20->COFI
|
||||
OUTPUT F_ASOCIO CODCF
|
||||
OUTPUT F_DESASOCIO 20->RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
STRING F_DESASOCIO 50
|
||||
BEGIN
|
||||
PROMPT 25 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 8 "Selezione banca"
|
||||
END
|
||||
|
||||
STRING F_CODABI 5
|
||||
BEGIN
|
||||
PROMPT 2 9 "Banca d'appoggio "
|
||||
FIELD CODABI
|
||||
FLAGS "Z"
|
||||
USE %BAN SELECT CODTAB ?= "?????"
|
||||
INPUT CODTAB F_CODABI
|
||||
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_CODABI CODTAB[1,5]
|
||||
HELP "Codice ABI banca del C/F"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CODCAB 5
|
||||
BEGIN
|
||||
PROMPT 28 9 ""
|
||||
FIELD CODCAB
|
||||
FLAGS "Z"
|
||||
USE %BAN SELECT CODTAB ?= "??????????"
|
||||
INPUT CODTAB[1,5] F_CODABI
|
||||
INPUT CODTAB[6,10] F_CODCAB
|
||||
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||
DISPLAY "Codice CAB" CODTAB[6,10]
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_CODABI CODTAB[1,5]
|
||||
OUTPUT F_CODCAB CODTAB[6,10]
|
||||
OUTPUT F_DESBAN S0
|
||||
HELP "Codice CAB banca del C/F"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DESBAN 50 37
|
||||
BEGIN
|
||||
PROMPT 37 9 ""
|
||||
USE %BAN KEY 2 SELECT CODTAB ?= "??????????"
|
||||
INPUT S0 F_DESBAN
|
||||
DISPLAY "Denominazione@50" S0
|
||||
DISPLAY "Codice ABI" CODTAB[1,5]
|
||||
DISPLAY "Codice CAB" CODTAB[6,10]
|
||||
COPY OUTPUT F_CODCAB
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
31
co/cofrd.txt
Executable file
31
co/cofrd.txt
Executable file
@ -0,0 +1,31 @@
|
||||
[Header]
|
||||
Version=199519
|
||||
File=4
|
||||
Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,20|S5,20|S6,5|S7,5
|
||||
Fields=S8,5|S9,5|S10,5|S11,5|I0,7|I1,7|I2,7|I3,7|I4,7|I5,7
|
||||
Fields=I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7|I13,7|I14,7|R0,18
|
||||
Fields=R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18|R8,18|R9,18|R10,18
|
||||
Fields=R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18|R18,18|R19,18|R20,18
|
||||
Fields=R21,18|R22,18|R23,18|R24,18|R25,18|D0,10|D1,10|D2,10|D3,10|D4,10
|
||||
Fields=B0,1|B1,1|B2,1|B3,1|B4,1|B5,1|B6,1|B7,1|B8,1|B9,1
|
||||
Fields=B10,1|B11,1|B12,1|B13,1|B14,1|B15,1|FPC,1
|
||||
|
||||
[Data]
|
||||
FRD|NETCRED|Importo netto a credito conferimenti|TOTMER+SPESMER|||||||||||||||||||||||||||||||||||||||||||||||||||||||||X| |||||||||||||||
|
||||
FRD|TOTLORDCON|Totali lordi conferimento|SOMMA("IMPCNN","TIPO()=='M'")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | | | | | | | |
|
||||
FRD|TOTPNS|Totale prestazioni non scontate|SOMMA("IMPORTO()","TIPO()=='P'")||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||X| | | | | | | | | |||||||
|
||||
FRR|IMPCLN|Importo riga lordo non scontato - per conferimento|IF(NUM(CODAGG1=="X");PREZZOLN;IMPLN)||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||X| | | | | | | | | | | | | | | |
|
||||
FRR|IMPCLS|Importo riga lordo scontato - per conferimenti|IF(NUM(CODAGG1=="X");PREZZOLS;IMPLS)||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||X| | | | | | | | | | | | | | | |
|
||||
FRR|IMPCNN|Importo riga netto non scontato - per conferimenti|IF(NUM(CODAGG1=="X");PREZZONN;IMPNN)||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||X| | | | | | | | | | | | | | | |
|
||||
FRR|IMPCNS|Importo riga netto - per conferimenti|IF(NUM(CODAGG1=="X");PREZZONS;IMPNS)||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||X| | | | | | | | | | | | | | | |
|
||||
FRR|SCONTOCONF|Calcolo sconto per conferimenti|IMPCLN-IMPCLS|||||||||||||||||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |||||||
|
||||
FRR|SCONTONORM|Sconto di riga normale|SCONTO()|||||||||||||||||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | |||||||
|
||||
FRR|SCONTOR|Sconto riga|IF(NUM(CODAGG1=="X");SCONTOCONF;SCONTONORM)||###.###.###.##@,@@@||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||||X| | | | | | | | | | | | | | | |
|
||||
NUM|CONF|Conferimenti soci cooperative||CONF|||||A||||||5||||||||||||||||||||||||||||||||||||||||||||| |X|X| |X| | | | | | | | | | | |
|
||||
NUM|PRES|Prestazioni a soci cooperative||PRES|||||||||||6||||||||||||||||||||||||||||||||||||||||||||| |X| | | | | | | | | | | | | | |
|
||||
TIP|AF1|Autofattura Allevamento||129 1 159 1||FATACQ|vefatBMP||||||||2||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | | ||||||
|
||||
TIP|AF2|Autofattura Pesca||129 1 159 1||FATACQ|VEFATBMP||||||||2||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | | ||||||
|
||||
TIP|CONF|Conferimento soci cooperative||||conferim|||||||||5|||||||||||||||||||||||||||||||||||||||||||||X| | | | | | | | | | | | | | | |
|
||||
TIP|F01|Fattura Agricoltura||129 1 159 1||FATTURAC|fatPT|030|||||||2||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||| | |X| | | |X| | | | ||||||
|
||||
TIP|F02|Fattura pesca||129 1 159 1||FATTURAC|FatPT|030|||||||2||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||| | |X| | | | | | | | ||||||
|
||||
TIP|PRES|Prestazione a socio coop||||prestazi|||||||||6||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | | | | | | | |
|
@ -1,5 +1,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include "colib.h"
|
||||
#include "socicoop.h"
|
||||
#include "mercaticoop.h"
|
||||
|
@ -45,4 +45,6 @@ Module = 29
|
||||
Flags = ""
|
||||
Item_01 = "Stampa libro soci", "ba8 -4 co1100a", "F"
|
||||
Item_02 = "Stampa conferimenti", "ve1 -3 co1200a", "F"
|
||||
Item_03 = "Stampa estratto conto", "ve1 -3 co1300a", "F"
|
||||
Item_03 = "Stampa estratto conto", "co1 -2", "F"
|
||||
Item_04 = "Stampa saldi estratto conto", "ve1 -3 co1600a", "F"
|
||||
Item_05 = "Stampa saldi estratto conto per banca", "ve1 -3 co1700a", "F"
|
||||
|
269
db/db0500.cpp
269
db/db0500.cpp
@ -16,6 +16,192 @@
|
||||
|
||||
#include "db0500a.h"
|
||||
|
||||
class TMov_mask : public TAutomask
|
||||
{
|
||||
TArticolo _art;
|
||||
TSheet_field * _sh;
|
||||
TAssoc_array _costs;
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TAssoc_array & costs() { return _costs;}
|
||||
TMov_mask(const char * codice, TSheet_field * s) : TAutomask("db0500d"), _art(codice), _sh(s) {}
|
||||
virtual ~TMov_mask() { }
|
||||
};
|
||||
|
||||
bool TMov_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_TIPOVAL:
|
||||
if (e == fe_init || e == fe_modify)
|
||||
{
|
||||
TDistinta_tree d;
|
||||
|
||||
const int tipo = o.mask().get_int(F_TIPOVAL);
|
||||
real val;
|
||||
real cos;
|
||||
real lav;
|
||||
|
||||
_costs.destroy();
|
||||
d.set_root(_sh->mask().get(F_CODICE));
|
||||
|
||||
switch (tipo)
|
||||
{
|
||||
case 1 : // Costo
|
||||
case 2 : // Complessivo
|
||||
{
|
||||
const int rows = _sh->items();
|
||||
|
||||
for (int i = 0; i < rows; i++)
|
||||
{
|
||||
TToken_string row = _sh->row(i);
|
||||
const TString4 tipo = row.get(_sh->cid2index(F_TIPOCOMP));
|
||||
if (tipo == "A")
|
||||
{
|
||||
TArticolo comp(row.get(_sh->cid2index(F_CODART)));
|
||||
real qta(row.get(_sh->cid2index(F_EXPR)));
|
||||
real calo = comp.get_real(ANAMAG_USER1);
|
||||
|
||||
if (calo == ZERO) calo = UNO;
|
||||
|
||||
TString80 strprezzo("#"); strprezzo << comp.codice();
|
||||
real prezzo;
|
||||
|
||||
if (d.exist(strprezzo))
|
||||
{
|
||||
prezzo = d.get_real(strprezzo);
|
||||
_costs.add(comp.codice(), prezzo);
|
||||
}
|
||||
else
|
||||
prezzo = comp.get_real(ANAMAG_ULTCOS1);
|
||||
cos += (prezzo * calo) * qta;
|
||||
}
|
||||
else
|
||||
if (tipo == "L")
|
||||
{
|
||||
TLavorazione lab(row.get(_sh->cid2index(F_CODLAV)));
|
||||
real qta(row.get(_sh->cid2index(F_EXPR)));
|
||||
|
||||
lav += (lab.prezzo() * qta);
|
||||
}
|
||||
}
|
||||
|
||||
lav *= (CENTO - o.mask().get_real(F_SCONTO))/CENTO;
|
||||
cos += lav;
|
||||
val = cos;
|
||||
|
||||
if (tipo == 2)
|
||||
val *= (UNO + _art.get_real(ANAMAG_PERCRIC)/CENTO);
|
||||
}
|
||||
break;
|
||||
case 3 : // Peso + Mandopera a peso
|
||||
{
|
||||
real peso;
|
||||
real val_mat;
|
||||
real val_lav;
|
||||
const int rows = _sh->items();
|
||||
|
||||
for (int i = 0; i < rows; i++)
|
||||
{
|
||||
TToken_string row = _sh->row(i);
|
||||
const TString4 tipo = row.get(_sh->cid2index(F_TIPOCOMP));
|
||||
if (tipo == "A")
|
||||
{
|
||||
TArticolo comp(row.get(_sh->cid2index(F_CODART)));
|
||||
const TString8 um(row.get(_sh->cid2index(F_UMEXPR)));
|
||||
real qta(row.get(_sh->cid2index(F_EXPR)));
|
||||
real calo = comp.get_real(ANAMAG_USER1);
|
||||
|
||||
if (calo == ZERO) calo = UNO;
|
||||
|
||||
TString80 strprezzo("#"); strprezzo << comp.codice();
|
||||
real prezzo;
|
||||
|
||||
if (d.exist(strprezzo))
|
||||
{
|
||||
prezzo = d.get_real(strprezzo);
|
||||
_costs.add(comp.codice(), prezzo);
|
||||
}
|
||||
else
|
||||
prezzo = comp.get_real(ANAMAG_ULTCOS1);
|
||||
val_mat += (prezzo * calo) * qta;
|
||||
if (um.starts_with("GR"))
|
||||
peso += qta;
|
||||
}
|
||||
else
|
||||
if (tipo == "L")
|
||||
{
|
||||
TLavorazione lav(row.get(_sh->cid2index(F_CODLAV)));
|
||||
|
||||
val_lav += lav.prezzo();
|
||||
}
|
||||
}
|
||||
val = val_mat + val_lav * peso * (CENTO - o.mask().get_real(F_SCONTO))/CENTO;
|
||||
cos = val ;
|
||||
val = cos * (CENTO + _art.get_real(ANAMAG_PERCRIC))/CENTO;
|
||||
}
|
||||
break;
|
||||
case 4 : // Peso + Mandopera a prezzo
|
||||
{
|
||||
real val_mat;
|
||||
real val_lav;
|
||||
const int rows = _sh->items();
|
||||
|
||||
for (int i = 0; i < rows; i++)
|
||||
{
|
||||
TToken_string row = _sh->row(i);
|
||||
const TString4 tipo = row.get(_sh->cid2index(F_TIPOCOMP));
|
||||
if (tipo == "A")
|
||||
{
|
||||
TArticolo comp(row.get(_sh->cid2index(F_CODART)));
|
||||
real qta(row.get(_sh->cid2index(F_EXPR)));
|
||||
|
||||
real calo = comp.get_real(ANAMAG_USER1);
|
||||
|
||||
if (calo == ZERO) calo = UNO;
|
||||
|
||||
TString80 strprezzo("#"); strprezzo << comp.codice();
|
||||
real prezzo;
|
||||
|
||||
if (d.exist(strprezzo))
|
||||
{
|
||||
prezzo = d.get_real(strprezzo);
|
||||
_costs.add(comp.codice(), prezzo);
|
||||
}
|
||||
else
|
||||
prezzo = comp.get_real(ANAMAG_ULTCOS1);
|
||||
val_mat += (prezzo * calo) * qta;
|
||||
}
|
||||
else
|
||||
if (tipo == "L")
|
||||
{
|
||||
TLavorazione lav(row.get(_sh->cid2index(F_CODLAV)));
|
||||
real qta(row.get(_sh->cid2index(F_EXPR)));
|
||||
|
||||
val_lav += lav.prezzo() * qta;
|
||||
}
|
||||
}
|
||||
val = val_mat + val_lav * (CENTO - o.mask().get_real(F_SCONTO))/CENTO;
|
||||
cos = val ;
|
||||
val = cos * (CENTO + _art.get_real(ANAMAG_PERCRIC))/CENTO;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
o.mask().set(F_PREZZOM, cos.string());
|
||||
o.mask().set(F_PREZZOV, val.string());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TMov_mask
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -279,6 +465,7 @@ protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
void create_browse1(TEdit_field& kfld, int level, short key_id) const;
|
||||
void create_browse2(TEdit_field& kfld, int level, short key_id, short des_id) const ;
|
||||
bool ask_new_code(const TCodice_articolo& oldcode, TCodice_articolo& newcode) const;
|
||||
|
||||
bool are_similar(const TCodice_articolo& oldcode, const TCodice_articolo& newcode) const;
|
||||
@ -329,6 +516,39 @@ void TQuery_mask::create_browse1(TEdit_field& kfld, int level, short key_id) con
|
||||
xvt_fsys_removefile(tmp);
|
||||
}
|
||||
|
||||
void TQuery_mask::create_browse2(TEdit_field& kfld, int level, short key_id, short des_id) const
|
||||
{
|
||||
TFilename tmp; tmp.temp();
|
||||
ofstream out(tmp);
|
||||
|
||||
out << "USE GCA KE 2 SELECT CODTAB[1,1]=='" << level << "'" << endl; //cerca per descrizione
|
||||
|
||||
const short id = des_id + level - 1;
|
||||
out << "IN S0 " << id << endl;
|
||||
out << "DI \"" << TR("Descrizione") << "@50\" S0" << endl;
|
||||
|
||||
const TString& prompt = _livart.name(level);
|
||||
out << "DI \"" << prompt;
|
||||
const int length = _livart.code_length(level);
|
||||
if (length > prompt.len())
|
||||
out << '@' << length;
|
||||
out << "\" CODTAB[2,0]" << endl;
|
||||
|
||||
out << "CO OU " << (key_id + level -1) << endl;
|
||||
if (level == 1)
|
||||
out << "CH RE" << endl;
|
||||
else
|
||||
out << "CH NO" << endl;
|
||||
out << "EN" << endl;
|
||||
out.close();
|
||||
|
||||
TScanner scan(tmp);
|
||||
while (scan.pop() != "EN")
|
||||
kfld.parse_item(scan);
|
||||
|
||||
xvt_fsys_removefile(tmp);
|
||||
}
|
||||
|
||||
bool TQuery_mask::ask_new_code(const TCodice_articolo& oldcode, TCodice_articolo& newcode) const
|
||||
{
|
||||
if (newcode.blank())
|
||||
@ -344,7 +564,8 @@ bool TQuery_mask::ask_new_code(const TCodice_articolo& oldcode, TCodice_articolo
|
||||
|
||||
if (last_level > 0)
|
||||
{
|
||||
for (int i = 1; i <= last_level; i++) //cicla su tutti i livelli del codart abilitati
|
||||
int i = 0;
|
||||
for (i = 1; i <= last_level; i++) //cicla su tutti i livelli del codart abilitati
|
||||
{
|
||||
const TString& picture = _livart.picture(i);
|
||||
for (int y = 0; y < 2; y++)
|
||||
@ -365,6 +586,12 @@ bool TQuery_mask::ask_new_code(const TCodice_articolo& oldcode, TCodice_articolo
|
||||
|
||||
tab0 += picture.len()+3;
|
||||
}
|
||||
for (i = 1; i <= last_level; i++)
|
||||
{
|
||||
TEdit_field& dfld = m.add_string(300 + i, 0, "", 200, 2, 50, "", 50);
|
||||
|
||||
create_browse2(dfld, i, 201, 301);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1385,6 +1612,8 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
{
|
||||
if (app().has_module(MGAUT))
|
||||
{
|
||||
cache().destroy(LF_DIST);
|
||||
cache().destroy(LF_RDIST);
|
||||
TSheet_field& sf = sfield(F_SHEET);
|
||||
TMov_mask mov(get(F_CODICE), &sf);
|
||||
TMagazzini m;
|
||||
@ -1408,9 +1637,22 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
if (mov.run() == K_ENTER)
|
||||
{
|
||||
TFilename name;
|
||||
TAssoc_array & arts = mov.costs();
|
||||
TArticolo articolo;
|
||||
|
||||
name.temp("", "ini");
|
||||
|
||||
FOR_EACH_ASSOC_OBJECT(arts, obj, key, item)
|
||||
{
|
||||
const real costo = * (real *)item;
|
||||
|
||||
if (articolo.lock_and_prompt(key))
|
||||
{
|
||||
articolo.put(ANAMAG_ULTCOS1, costo);
|
||||
articolo.rewrite();
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
TConfig c(name);
|
||||
c.set_paragraph("Transaction");
|
||||
@ -1419,6 +1661,9 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
c.set_paragraph(format("%d", LF_MOVMAG));
|
||||
c.set(MOVMAG_DATAREG, mov.get(F_DATAREG));
|
||||
c.set(MOVMAG_CODCAUS, mov.get(F_CODCAUS));
|
||||
c.set(MOVMAG_NUMDOC, mov.get(F_NUMDOC));
|
||||
c.set(MOVMAG_EXNUMDOC, mov.get(F_NUMDOC));
|
||||
c.set(MOVMAG_EXDATADOC, mov.get(F_DATADOC));
|
||||
c.set_paragraph(format("%d,1", LF_RMOVMAG));
|
||||
TString8 codmag(mov.get(F_CODMAG));
|
||||
|
||||
@ -1434,6 +1679,7 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
TExternal_app app(format("mg1 -0 -i%s", (const char *)name));
|
||||
|
||||
app.run();
|
||||
|
||||
const real prezzo(mov.get(F_PREZZOV));
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
umart.put(UMART_CODART, get(F_CODICE));
|
||||
@ -1443,6 +1689,23 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
||||
umart.put(UMART_PREZZO, prezzo);
|
||||
umart.rewrite();
|
||||
}
|
||||
set(F_CODICE, get(F_CODICE), 0x3);
|
||||
|
||||
TConfig c(name);
|
||||
|
||||
c.set_paragraph(format("%d", LF_MOVMAG));
|
||||
|
||||
const long movmag = c.get_long(MOVMAG_NUMREG);
|
||||
|
||||
if (movmag > 0L && yesno_box("Vuoi stampare le etichette"))
|
||||
{
|
||||
const TString8 codcaus(mov.get(F_CODCAUS));
|
||||
const TString codart(get(F_CODICE));
|
||||
TExternal_app etich_app(format("mg3 -5 101=%s,103=%s,106=M,109=%s,110=%ld,111=%ld",
|
||||
(const char *) codart, (const char *) codart, (const char *) codcaus, movmag, movmag));
|
||||
|
||||
etich_app.run();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1643,7 +1906,7 @@ int TDistinta_app::write(const TMask& m)
|
||||
{
|
||||
parms2rel(m);
|
||||
int err = TRelation_application::write(m);
|
||||
if (err == NOERR)
|
||||
if (err == NOERR && get_relation()->lfile().get_bool("VIRTUALE"))
|
||||
{
|
||||
TSheet_field& f = m.sfield(F_UNITA); // prende lo sheet delle unità di misura
|
||||
f.record()->renum_key(UMART_CODART, m.get(F_CODICE));
|
||||
@ -1656,7 +1919,7 @@ int TDistinta_app::rewrite(const TMask& m)
|
||||
{
|
||||
parms2rel(m);
|
||||
int err = TRelation_application::rewrite(m);
|
||||
if (err == NOERR)
|
||||
if (err == NOERR && get_relation()->lfile().get_bool("VIRTUALE"))
|
||||
{
|
||||
TSheet_field& f= m.sfield(F_UNITA); // prende lo sheet delle unità di misura
|
||||
f.record()->renum_key(UMART_CODART, m.get(F_CODICE));
|
||||
|
@ -106,4 +106,6 @@
|
||||
#define F_TIPOVAL 130
|
||||
#define F_PREZZOV 131
|
||||
#define F_SCONTO 132
|
||||
#define F_NUMDOC 133
|
||||
#define F_DATADOC 134
|
||||
#endif
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "db0500a.h"
|
||||
|
||||
PAGE "Movimenti" -1 -1 80 15
|
||||
PAGE "Movimenti" -1 -1 80 19
|
||||
|
||||
DATE F_DATAREG
|
||||
BEGIN
|
||||
@ -104,6 +104,17 @@ BEGIN
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
STRING F_NUMDOC 7
|
||||
BEGIN
|
||||
PROMPT 2 15 "Documento numero "
|
||||
END
|
||||
|
||||
DATE F_DATADOC
|
||||
BEGIN
|
||||
PROMPT 45 15 "Del "
|
||||
FLAG "U"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
|
23
db/dblib.cpp
23
db/dblib.cpp
@ -1464,6 +1464,29 @@ const TString& TDistinta_tree::get_string(const char* var)
|
||||
return EMPTY_STRING;
|
||||
}
|
||||
|
||||
bool TDistinta_tree::exist(const char* var)
|
||||
{
|
||||
for (int s = 0; s < _stack.count(); s++)
|
||||
{
|
||||
TAssoc_array& a = (TAssoc_array&)_stack.peek(s);
|
||||
const TObject* val = a.objptr(var);
|
||||
if (val)
|
||||
return true;
|
||||
else
|
||||
{
|
||||
val = a.objptr("_GHOST");
|
||||
if (val == NULL) // Non sono ghost per cui non posso andar oltre
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const TObject* val = _globals.objptr(var);
|
||||
if (val && val->class_id() != CLASS_STRING)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
const real& TDistinta_tree::get_real(const char* var)
|
||||
{
|
||||
for (int s = 0; s < _stack.count(); s++)
|
||||
|
@ -275,9 +275,6 @@ protected:
|
||||
// int build_children_pointers(const TCodice_articolo& father, TPointer_array& children) const;
|
||||
int build_children_list(const TCodice_articolo& father, TArray& children) const;
|
||||
|
||||
const TString& get_string(const char* var);
|
||||
const real& get_real(const char* var);
|
||||
|
||||
void evaluate(TDistinta_expr& e);
|
||||
real evaluate_numexpr(const char* str);
|
||||
void evaluate_strexpr(const char* str, TString& res);
|
||||
@ -294,6 +291,10 @@ protected: // TTree
|
||||
TObject * global_default_real(const char* name);
|
||||
|
||||
public:
|
||||
const TString& get_string(const char* var);
|
||||
const real& get_real(const char* var);
|
||||
bool exist(const char* var);
|
||||
|
||||
TTypeexp get_var_type(const char* var);
|
||||
static TLavorazione * find_labor(TRiga_esplosione *l);
|
||||
virtual bool goto_root();
|
||||
|
@ -865,14 +865,17 @@ void TF4_sender::add_erario(TRecordset& riga, real& saldo_tot, real& credito_tot
|
||||
set("CodiceTributo", tributo);
|
||||
TString16 rif(riga.get("RATEAZIONE").as_string());
|
||||
|
||||
rif << riga.get("ANNO").as_string();
|
||||
if (riga.get("ANNO").as_int() > 0)
|
||||
rif << riga.get("ANNO").as_string();
|
||||
if (rif.blank())
|
||||
rif ="00000000";
|
||||
set("RiferimentiTributo", rif);
|
||||
|
||||
const real d = riga.get("IMPORTODEB").as_real();
|
||||
set("ImportoDebito", d);
|
||||
debito += d;
|
||||
|
||||
const real c = riga.get("IMPORTOCRED").as_real();
|
||||
const real c = riga.get("IMPORTOCRE").as_real();
|
||||
set("ImportoCredito", c);
|
||||
credito += c;
|
||||
|
||||
@ -922,7 +925,7 @@ void TF4_sender::add_inps(TRecordset& riga, real& saldo_tot, real& credito_tot)
|
||||
set("ImportoDebito", d);
|
||||
debito += d;
|
||||
|
||||
const real c = riga.get("IMPORTOCRED").as_real();
|
||||
const real c = riga.get("IMPORTOCRE").as_real();
|
||||
set("ImportoCredito", c);
|
||||
credito += c;
|
||||
|
||||
@ -969,14 +972,17 @@ void TF4_sender::add_regioni(TRecordset& riga, real& saldo_tot, real& credito_to
|
||||
|
||||
TString16 rif(riga.get("RATEAZIONE").as_string());
|
||||
|
||||
rif << riga.get("ANNO").as_string();
|
||||
if (riga.get("ANNO").as_int() > 0)
|
||||
rif << riga.get("ANNO").as_string();
|
||||
if (rif.blank())
|
||||
rif ="00000000";
|
||||
set("RiferimentiTributo", rif);
|
||||
|
||||
const real d = riga.get("IMPORTODEB").as_real();
|
||||
set("ImportoDebito", d);
|
||||
debito += d;
|
||||
|
||||
const real c = riga.get("IMPORTOCRED").as_real();
|
||||
const real c = riga.get("IMPORTOCRE").as_real();
|
||||
set("ImportoCredito", c);
|
||||
credito += c;
|
||||
|
||||
@ -1022,14 +1028,17 @@ void TF4_sender::add_ici(TRecordset& riga, real& saldo_tot, real& credito_tot)
|
||||
|
||||
TString16 rif(riga.get("RATEAZIONE").as_string());
|
||||
|
||||
rif << riga.get("ANNO").as_string();
|
||||
if (riga.get("ANNO").as_int() > 0)
|
||||
rif << riga.get("ANNO").as_string();
|
||||
if (rif.blank())
|
||||
rif ="00000000";
|
||||
set("RiferimentiTributo", rif);
|
||||
|
||||
const real d = riga.get("IMPORTODEB").as_real();
|
||||
set("ImportoDebito", d);
|
||||
debito += d;
|
||||
|
||||
const real c = riga.get("IMPORTOCRED").as_real();
|
||||
const real c = riga.get("IMPORTOCRE").as_real();
|
||||
set("ImportoCredito", c);
|
||||
credito += c;
|
||||
|
||||
@ -1087,7 +1096,7 @@ void TF4_sender::add_inail(TRecordset& riga, real& saldo_tot, real& credito_tot)
|
||||
set("ImportoDebito", d);
|
||||
debito += d;
|
||||
|
||||
const real c = riga.get("IMPORTOCRED").as_real();
|
||||
const real c = riga.get("IMPORTOCRE").as_real();
|
||||
set("ImportoCredito", c);
|
||||
credito += c;
|
||||
|
||||
|
@ -936,18 +936,19 @@ TCodesym TExpression::__gettoken()
|
||||
|
||||
_tok[i++] = *(_s++);
|
||||
|
||||
while (isalnum(*_s) || (*_s == '-') || (*_s == '[') ||
|
||||
if (sym == _variable && *_s == '-')
|
||||
{
|
||||
_tok[i++] = *(_s++);
|
||||
if (*_s == '>' || isdigit(*_s))
|
||||
_tok[i++] = *(_s++);
|
||||
else
|
||||
return _invalid; // Non e' una -> (freccia)
|
||||
}
|
||||
while (isalnum(*_s) || (*_s == '[') ||
|
||||
(*_s == ':') || (*_s == '_') || (*_s == '.') ||
|
||||
(square_bracket && (*_s == ',' || *_s == ']'))
|
||||
)
|
||||
{
|
||||
if (*_s == '-')
|
||||
{
|
||||
if (_s[1] != '>')
|
||||
break; // Non e' una -> (freccia)
|
||||
_tok[i++] = *(_s++);
|
||||
sym = _variable;
|
||||
} else
|
||||
if (*_s == '[')
|
||||
{
|
||||
sym = _variable;
|
||||
@ -1303,4 +1304,4 @@ bool TExpression::compile(const TString& expression, TTypeexp type)
|
||||
const char* TExpression::last_token() const
|
||||
{
|
||||
return _tok;
|
||||
}
|
||||
}
|
||||
|
@ -4148,11 +4148,7 @@ void TRecfield::set(int from, int to)
|
||||
|
||||
if (nf == FIELDERR)
|
||||
{
|
||||
if (_rec->exist(_name))
|
||||
_subfield = _name.get_buffer();
|
||||
else
|
||||
NFCHECK("File n. %d unknown field %s", _rec->num(), (const char*)_name);
|
||||
|
||||
_subfield = _name;
|
||||
_p = _rec->string();
|
||||
_len = 0;
|
||||
_dec = 0;
|
||||
@ -4201,7 +4197,7 @@ TRecfield::TRecfield(TRectype& rec, const char* name, int from, int to)
|
||||
|
||||
void TRecfield::put_subfield(const char* s)
|
||||
{
|
||||
if (strcmp(_name, _subfield) == 0)
|
||||
if (_name == _subfield)
|
||||
return;
|
||||
const TString& str = _rec->get(_name);
|
||||
int p = str.find(_subfield);
|
||||
@ -4312,7 +4308,7 @@ void TRecfield::get_subfield(TString& s) const
|
||||
{
|
||||
const TString& str = _rec->get(_name);
|
||||
|
||||
if (strcmp(_name, _subfield) == 0)
|
||||
if (_name == _subfield)
|
||||
s = str;
|
||||
else
|
||||
{
|
||||
|
@ -205,6 +205,16 @@ void TMask::read_mask(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TAssoc_array & defs = ini.list_variables("defaults");
|
||||
|
||||
FOR_EACH_ASSOC_STRING(defs, obj, key, str)
|
||||
{
|
||||
short id = atoi(key);
|
||||
const int pos = id2pos(id);
|
||||
if (pos >= 0 && fld(pos).is_operable())
|
||||
fld(pos).set_default(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -971,11 +981,8 @@ bool TMask::on_key(
|
||||
break;
|
||||
if (f.is_sheet())
|
||||
{
|
||||
TSheet_field& s = (TSheet_field&)f;
|
||||
const int newrow = s.append() || s.empty() ? -1 : ( _focus == fire ? s.selected() + 1: 0);
|
||||
|
||||
notify_focus_field(s.dlg());
|
||||
s.insert(newrow, true, true);
|
||||
send_key(key, f.dlg());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2495,6 +2502,22 @@ bool TMask::kill_profile(int num)
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TMask::load_defaults()
|
||||
{
|
||||
for (int pos = 0; pos < fields(); pos++)
|
||||
{
|
||||
TMask_field& f = fld(pos);
|
||||
|
||||
if (f.is_loadable())
|
||||
{
|
||||
const TString & def = f.get_default();
|
||||
|
||||
if (def.full())
|
||||
f.set(def);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const char* TMask::get_caption(TString& str) const
|
||||
{
|
||||
char* title = str.get_buffer(128);
|
||||
|
@ -403,6 +403,9 @@ public:
|
||||
// @cmember Elimina il profilo <p num>
|
||||
bool kill_profile(int num);
|
||||
|
||||
// @cmember Carica il defaults dei campi
|
||||
virtual void load_defaults();
|
||||
|
||||
// @cmember Ritorna il primo campo dirty
|
||||
short dirty() const;
|
||||
|
||||
|
@ -517,6 +517,42 @@ const TString& TMask_field::get_default() const
|
||||
return EMPTY_STRING;
|
||||
}
|
||||
|
||||
const TString & TMask_field::evaluate_field(short id) const
|
||||
{
|
||||
if (id == 0)
|
||||
return get();
|
||||
|
||||
const TMask* m = &mask();
|
||||
|
||||
if (id < 0)
|
||||
{
|
||||
TSheet_field* sh = m->get_sheet();
|
||||
if (sh != NULL)
|
||||
{
|
||||
m = &sh->mask();
|
||||
id = -id;
|
||||
}
|
||||
}
|
||||
|
||||
const int pos = m->id2pos(id);
|
||||
if (pos >= 0)
|
||||
return m->fld(pos).get();
|
||||
|
||||
return EMPTY_STRING;
|
||||
}
|
||||
|
||||
const TString & TMask_field::evaluate_field(const char * s) const
|
||||
{
|
||||
if (s && *s)
|
||||
{
|
||||
if (s[0] == '#')
|
||||
s++;
|
||||
const short id = atoi(s);
|
||||
return evaluate_field(id);
|
||||
}
|
||||
return EMPTY_STRING;
|
||||
}
|
||||
|
||||
// @doc EXTERNAL
|
||||
|
||||
// @mfunc Verifica se il campo deve essere sottoposto a check
|
||||
@ -3493,7 +3529,10 @@ void TEdit_field::create(WINDOW parent)
|
||||
_ctl_data._flags << 'B';
|
||||
|
||||
if (_ctl_data._prompt.find("@g") >= 0 || _ctl_data._prompt.find("@G") >= 0)
|
||||
{
|
||||
_ctl_data._flags << '{';
|
||||
_ctl_data._x += len;
|
||||
}
|
||||
if (_ctl_data._prompt.find("@b") >= 0 || _ctl_data._prompt.find("@B") >= 0)
|
||||
_ctl_data._flags << '}';
|
||||
|
||||
|
@ -350,6 +350,10 @@ public:
|
||||
// @cmember Ritorna il default del campo
|
||||
virtual const TString& get_default() const;
|
||||
|
||||
// @cmember Valuta come id di un campo <id> e ne ritorne il valore
|
||||
const TString & evaluate_field(short id) const ;
|
||||
// @cmember Valuta come id di un campo <s> e ne ritorne il valore
|
||||
const TString & evaluate_field(const char * s) const ;
|
||||
// @cmember Setta il default del campo
|
||||
virtual void set_default(const char*);
|
||||
|
||||
@ -1700,3 +1704,4 @@ public:
|
||||
};
|
||||
|
||||
#endif // __MASKFLD_H
|
||||
|
||||
|
@ -279,6 +279,8 @@ public:
|
||||
void delete_column(const int col) const;
|
||||
// @cmember Permette di attivare/ disattivare l'auto append
|
||||
void set_auto_append(bool on) { _auto_append = on;}
|
||||
// @cmember Permette di testare l'auto append
|
||||
bool auto_append() const { return _auto_append;}
|
||||
bool exist_column(const int col) const { return find_column(col) != NULL; }
|
||||
// @cmember Sposta la colonna dalla posizione <p fromindex> alla posizione
|
||||
// <p toindex>
|
||||
@ -366,6 +368,8 @@ public:
|
||||
// @cmember Setta il membro <p _notify> al valore <p n>
|
||||
void set_notify(SPREADSHEET_NOTIFY n)
|
||||
{ _notify = n; }
|
||||
// @cmember aggiunge una riga
|
||||
bool TSpreadsheet::add_row_auto();
|
||||
|
||||
// @cmember Costruttore
|
||||
TSpreadsheet(WINDOW parent, short dlg, short x, short y, short dx, short dy, const char* maskname, int maskno, const char* head, TSheet_field* owner);
|
||||
@ -1184,10 +1188,10 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
case XIE_BUTTON:
|
||||
if (_check_enabled)
|
||||
{
|
||||
on_idle(); // Termina tutti gli eventuali update in corso
|
||||
|
||||
if (xiev->v.xi_obj->type == XIT_CELL) // Bottone della cella
|
||||
{
|
||||
on_idle(); // Termina tutti gli eventuali update in corso
|
||||
|
||||
XI_CELL_DATA& cell = xiev->v.xi_obj->v.cell;
|
||||
int num;
|
||||
XI_OBJ** column = xi_get_member_list(_obj, &num);
|
||||
@ -1202,27 +1206,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (xiev->v.xi_obj->type == XIT_LIST) // Bottone dello sheet
|
||||
{
|
||||
if (test_focus_change() && active())
|
||||
{
|
||||
int rec = -1;
|
||||
_cell_dirty = FALSE;
|
||||
|
||||
if (items() > 0 && !owner().append())
|
||||
{
|
||||
// XI_OBJ* itf = get_interface();
|
||||
if (owner().mask().focus_field().dlg() == id())
|
||||
rec = _cur_rec + 1;
|
||||
else
|
||||
rec = 0;
|
||||
}
|
||||
insert(rec, true, true);
|
||||
owner().mask().notify_focus_field(id());
|
||||
}
|
||||
}
|
||||
}
|
||||
add_row_auto();
|
||||
}
|
||||
break;
|
||||
case XIE_SELECT:
|
||||
@ -1502,7 +1486,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
{
|
||||
const clock_t delay = clock() - digit_timer;
|
||||
if (delay <= 60)
|
||||
k = K_CTRL+'+';
|
||||
k = K_CTRL + '+'; // imedisce ulteiori elaborazioni
|
||||
}
|
||||
}
|
||||
|
||||
@ -1603,25 +1587,8 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
}
|
||||
break;
|
||||
case K_CTRL + '+': // ********* insert line
|
||||
if (test_focus_change())
|
||||
{
|
||||
int rec = -1;
|
||||
_cell_dirty = _row_dirty = FALSE;
|
||||
|
||||
if (items() > 0 && !owner().append())
|
||||
{
|
||||
get_interface(); // verificare
|
||||
if (owner().mask().focus_field().dlg() == id())
|
||||
rec = _cur_rec + 1;
|
||||
else
|
||||
rec = 0;
|
||||
}
|
||||
insert(rec, TRUE, TRUE);
|
||||
owner().mask().notify_focus_field(id());
|
||||
refused = TRUE;
|
||||
}
|
||||
else
|
||||
refused = true;
|
||||
add_row_auto();
|
||||
refused = true;
|
||||
break;
|
||||
case K_CTRL + 'A':
|
||||
{
|
||||
@ -1748,11 +1715,13 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
|
||||
{
|
||||
const KEY k = e_char_to_key(&xiev->v.xvte);
|
||||
|
||||
if (_auto_append && k == K_DOWN && _cur_row == items() - 1 && test_focus_change())
|
||||
owner().mask().send_key(K_CTRL + '+', 0);
|
||||
|
||||
switch (k)
|
||||
{
|
||||
case K_DOWN:
|
||||
if (_auto_append && _cur_row == items() - 1)
|
||||
add_row_auto();
|
||||
break;
|
||||
case K_ROWEDIT:
|
||||
xiev->type = XIE_DBL_CELL;
|
||||
xiev->v.xi_obj = NULL;
|
||||
@ -1912,6 +1881,8 @@ void TSpreadsheet::on_idle()
|
||||
{
|
||||
const int next_row = _selection_posted;
|
||||
_selection_posted = -1;
|
||||
if (next_row == _cur_rec)
|
||||
return ;
|
||||
if (next_row < items())
|
||||
select(next_row, 1, FALSE);
|
||||
}
|
||||
@ -2429,6 +2400,38 @@ KEY TSpreadsheet::edit(int n)
|
||||
return k;
|
||||
}
|
||||
|
||||
bool TSpreadsheet::add_row_auto()
|
||||
|
||||
{
|
||||
bool ok = false;
|
||||
|
||||
if (_check_enabled)
|
||||
{
|
||||
on_idle(); // Termina tutti gli eventuali update in corso
|
||||
|
||||
if (test_focus_change() && active())
|
||||
{
|
||||
int rec = -1;
|
||||
|
||||
if (items() > 0 && !owner().append())
|
||||
{
|
||||
if (owner().mask().focus_field().dlg() == id())
|
||||
rec = _cur_rec + 1;
|
||||
else
|
||||
rec = 0;
|
||||
}
|
||||
ok = insert(rec, true, true) >= 0;
|
||||
if (ok)
|
||||
{
|
||||
_cell_dirty = _row_dirty = false;
|
||||
owner().mask().notify_focus_field(id());
|
||||
}
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TSheet_field
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -2899,17 +2902,27 @@ TMask& TSheet_field::sheet_mask() const
|
||||
return s->sheet_mask();
|
||||
}
|
||||
|
||||
TMask& TSheet_field::sheet_row_mask(int /* row */) const
|
||||
{
|
||||
return sheet_mask();
|
||||
}
|
||||
|
||||
|
||||
bool TSheet_field::on_hit()
|
||||
{
|
||||
if (!mask().is_running()) // Inizializzazione maschera
|
||||
{
|
||||
TSpreadsheet* s = (TSpreadsheet*)_ctl;
|
||||
|
||||
force_update();
|
||||
|
||||
if (items() > 0)
|
||||
{
|
||||
mask().notify_focus_field(dlg()); // Fa' credere alla maschera che ha il focus ...
|
||||
select(0, -2, TRUE); // ... cosi' la set_focus_cell funziona bene
|
||||
}
|
||||
else
|
||||
if (s->auto_append())
|
||||
s->add_row_auto();
|
||||
|
||||
set_dirty(FALSE);
|
||||
}
|
||||
@ -2962,6 +2975,14 @@ bool TSheet_field::on_key(KEY k)
|
||||
_ctl->event_handler(NULL, &xie);
|
||||
return TRUE;
|
||||
}
|
||||
if ( k== K_CTRL + '+')
|
||||
{
|
||||
TSpreadsheet* s = (TSpreadsheet*)_ctl;
|
||||
|
||||
s->add_row_auto();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return TOperable_field::on_key(k);
|
||||
}
|
||||
|
@ -179,8 +179,10 @@ public:
|
||||
// @cmember Forza l'aggiornamento dei dati della riga sullo schermo
|
||||
void force_update(int r = -1);
|
||||
|
||||
// @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
|
||||
// @cmember Ritorna la maschera corrispondente alla riga corrente dello spreadsheet
|
||||
virtual TMask& sheet_mask() const;
|
||||
// @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
|
||||
virtual TMask& sheet_row_mask(int row) const;
|
||||
// @cmember esegue la maschera di edit dello speadsheet;
|
||||
virtual KEY run_editmask(int n);
|
||||
// @cmember Setta il membro <p _notify> della classe <c TSpreadsheet>
|
||||
|
@ -19,6 +19,7 @@
|
||||
#define RDOC_DESCEST "DESCEST"
|
||||
#define RDOC_PREZZO "PREZZO"
|
||||
#define RDOC_PREZZOL "PREZZOL"
|
||||
#define RDOC_RIDPREZZO "RIDPREZZO"
|
||||
#define RDOC_UMQTA "UMQTA"
|
||||
#define RDOC_QTA "QTA"
|
||||
#define RDOC_QTAGG1 "QTAGG1"
|
||||
|
@ -499,6 +499,7 @@ void TRelation_application::insert_mode()
|
||||
set_mode(MODE_INS);
|
||||
r->zero(); // Azzera tutta la relazione!
|
||||
|
||||
_mask->load_defaults();
|
||||
init_insert_mode(*_mask);
|
||||
|
||||
// ....possibilmente spostare questa chiamata .....
|
||||
|
@ -48,23 +48,19 @@ HIDDEN bool _expr_val(TMask_field& f, KEY)
|
||||
for (int i = 0; i < e.numvar(); i++)
|
||||
{
|
||||
const char* s = e.varname(i);
|
||||
|
||||
if (s[0] != '#')
|
||||
{
|
||||
TString err; err << TR("Le variabili devono cominciare con #") << ": " << s << '\n' << e;
|
||||
return f.error_box((const char*)err);
|
||||
}
|
||||
s++;
|
||||
const short fldid = *s == '0' ? 0 : f.atodlg(s);
|
||||
if (type == _numexpr)
|
||||
{
|
||||
const real r = fldid <= 0 ? f.get() : m.get(fldid);
|
||||
e.setvar(i, r);
|
||||
}
|
||||
else
|
||||
{
|
||||
const TString& v = fldid <= 0 ? f.get() : m.get(fldid);
|
||||
e.setvar(i, v);
|
||||
}
|
||||
if (type == _numexpr)
|
||||
{
|
||||
const real r = f.evaluate_field(s);
|
||||
e.setvar(i, r);
|
||||
}
|
||||
else
|
||||
e.setvar(i, f.evaluate_field(s));
|
||||
}
|
||||
return bool(e);
|
||||
}
|
||||
@ -532,8 +528,8 @@ HIDDEN bool _reqif_val(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.empty())
|
||||
{
|
||||
const TMask& m = f.mask();
|
||||
const int nparms = get_val_param_count();
|
||||
|
||||
for (int i = 0; i < nparms; i++)
|
||||
{
|
||||
const TString& fld = get_fld_val_param(f, i);
|
||||
@ -586,14 +582,13 @@ HIDDEN bool _numcalc_val(TMask_field& f, KEY k)
|
||||
for (int i = 0; i < e.numvar(); i++)
|
||||
{
|
||||
const char* s = e.varname(i);
|
||||
if (s[0] != '#')
|
||||
|
||||
if (s[0] != '#')
|
||||
{
|
||||
TString err; err << "Cannot load variable " << s << " in " << e;
|
||||
return f.error_box((const char*)err);
|
||||
}
|
||||
s++;
|
||||
const int fldid = atoi(s);
|
||||
e.setvar(i, fldid == 0 ? f.get() : f.mask().get(fldid));
|
||||
e.setvar(i, f.evaluate_field(s));
|
||||
}
|
||||
const TString& s = e.as_string();
|
||||
f.set(s);
|
||||
@ -614,9 +609,7 @@ HIDDEN bool _strcalc_val(TMask_field& f, KEY k)
|
||||
TString err; err << "Cannot load variable " << s << " in " << e;
|
||||
return f.error_box((const char*)err);
|
||||
}
|
||||
s++;
|
||||
const int fldid = atoi(s);
|
||||
e.setvar(i, fldid == 0 ? f.get() : f.mask().get(fldid));
|
||||
e.setvar(i, f.evaluate_field(s));
|
||||
}
|
||||
const TString& s = e.as_string();
|
||||
f.set(s);
|
||||
@ -630,6 +623,7 @@ HIDDEN bool _onereq_val(TMask_field& f, KEY k)
|
||||
return true;
|
||||
|
||||
const int nparms = get_val_param_count();
|
||||
|
||||
for (int i = 0; i < nparms ; i++)
|
||||
{
|
||||
const TString& s = get_fld_val_param(f, i);
|
||||
@ -1136,3 +1130,4 @@ bool validate(
|
||||
return (fn >= 0 && fn < MAX_FUNC) ? _global_val_func[fn](f, k) : true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -63,20 +63,24 @@ TVariable_mask::TVariable_mask() : TMask()
|
||||
}
|
||||
|
||||
TMask& TVariable_sheet_field::sheet_mask() const
|
||||
{
|
||||
return sheet_row_mask(selected());
|
||||
}
|
||||
|
||||
TMask& TVariable_sheet_field::sheet_row_mask(int row) const
|
||||
{
|
||||
TMask & m = TSheet_field::sheet_mask();
|
||||
const int current = selected();
|
||||
|
||||
if (_getmask != NULL && current >= 0 && current < items())
|
||||
|
||||
if (_getmask != NULL && row >= 0 && row < items())
|
||||
{
|
||||
TMask & vm = *_getmask(current, m);
|
||||
TMask & vm = *_getmask(row, m);
|
||||
|
||||
vm.set_sheet((TSheet_field *) this);
|
||||
return vm;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void TVariable_sheet_field::post_insert(int r)
|
||||
{
|
||||
if (!active() || _getmask == NULL || r < 0 || r >= items())
|
||||
|
@ -69,8 +69,10 @@ public:
|
||||
// @cmember Funzione eseguita dopo ogni insert
|
||||
virtual void post_insert(int r);
|
||||
|
||||
// @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
|
||||
// @cmember Ritorna la maschera corrispondente alla riga corrente dello spreadsheet
|
||||
virtual TMask& sheet_mask() const;
|
||||
// @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
|
||||
virtual TMask& sheet_row_mask(int row) const;
|
||||
|
||||
// @cmember Costruttore
|
||||
TVariable_sheet_field(TMask* m) : TSheet_field(m)
|
||||
|
@ -204,6 +204,8 @@ public:
|
||||
|
||||
virtual word class_id() const { return CLASS_AUTO_VARIABLE_RECTYPE; }
|
||||
virtual bool is_kind_of(word id) const { return id == class_id() || TVariable_rectype::is_kind_of(id); }
|
||||
// @cmember Indica se esiste il campo <p fieldname>
|
||||
virtual bool exist(const char* fieldname) const { return fieldname && *fieldname;}
|
||||
|
||||
// @cmember Distruttore
|
||||
virtual ~TAuto_variable_rectype() {}
|
||||
|
@ -332,6 +332,8 @@ void TStampa_datistorici::setprint_permagazzini()
|
||||
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
|
||||
_form->find_field('B',odd_page,FF_FLAGGIAC).set(ena);
|
||||
_form->find_field('F',last_page, 247).show(ena != "0");
|
||||
_form->find_field('F',last_page, 251).show(ena != "0");
|
||||
ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)=='S')? "1": "0") ;
|
||||
_form->find_field('H',odd_page,FF_FLAGSOTTOS).set(ena);
|
||||
_form->find_field('B',odd_page,FF_FLAGSOTTOS).set(ena);
|
||||
@ -499,6 +501,8 @@ void TStampa_datistorici::setprint_perarticoli()
|
||||
TString16 ena = ((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
|
||||
_form->find_field('B',odd_page,FF_FLAGGIAC).set(ena);
|
||||
_form->find_field('F',last_page, 1647).show(ena != "0");
|
||||
_form->find_field('F',last_page, 1651).show(ena != "0");
|
||||
ena= ((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)=='S')? "1": "0") ;
|
||||
_form->find_field('H',odd_page,FF_FLAGSOTTOS).set(ena);
|
||||
_form->find_field('B',odd_page,FF_FLAGSOTTOS).set(ena);
|
||||
@ -667,6 +671,8 @@ void TStampa_datistorici::setprint_perarticoli_all()
|
||||
TString16 ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)!='S')? "1": "0");
|
||||
_form->find_field('H',odd_page,FF_FLAGGIAC).set(ena );
|
||||
_form->find_field('B',odd_page,FF_FLAGGIAC).set(ena);
|
||||
_form->find_field('F',last_page, 1647).show(ena != "0");
|
||||
_form->find_field('F',last_page, 1651).show(ena != "0");
|
||||
ena=((_mask->get_bool(F_STAMPAGIAC) && *_mask->get(F_FILTRO)=='S')? "1": "0") ;
|
||||
_form->find_field('H',odd_page,FF_FLAGSOTTOS).set(ena);
|
||||
_form->find_field('B',odd_page,FF_FLAGSOTTOS).set(ena);
|
||||
|
@ -791,7 +791,6 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD LF_MAG->GIAC
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE ADD,147
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 48 12
|
||||
BEGIN
|
||||
@ -799,16 +798,6 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _NUMEXPR,LF_MAG->SCORTAMIN-LF_MAG->GIAC|ADD,147
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 49 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 6 1 ""
|
||||
FIELD LF_MAG->GIAC
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE ADD,141
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
END // depositi dello stesso magazzino
|
||||
END // MAGAZZ
|
||||
@ -2382,7 +2371,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1647
|
||||
GROUP 15
|
||||
END
|
||||
END // tot catmerc
|
||||
@ -2392,4 +2381,65 @@ END // section body, loop anamag
|
||||
SECTION FOOTER ODD 2
|
||||
END // fine footersection
|
||||
|
||||
SECTION FOOTER LAST 2 COLUMNWISE
|
||||
|
||||
STRINGA 1651 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 "Totale "
|
||||
END
|
||||
STRINGA -1 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA -1 3
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 5 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
END
|
||||
NUMERO 1647 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
END // fine form
|
||||
|
@ -228,7 +228,6 @@ END
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 139 6 "Giacenza"
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
@ -791,7 +790,6 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
FIELD LF_MAG->GIAC
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE ADD,147
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 48 12
|
||||
BEGIN
|
||||
@ -799,17 +797,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _NUMEXPR,LF_MAG->SCORTAMIN-LF_MAG->GIAC|ADD,147
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
NUMERO 49 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 6 1 ""
|
||||
FIELD LF_MAG->GIAC
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE ADD,141
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
END // depositi dello stesso magazzino
|
||||
END // MAGAZZ
|
||||
|
||||
@ -2382,7 +2370,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1647
|
||||
GROUP 15
|
||||
END
|
||||
END // tot catmerc
|
||||
@ -2392,4 +2380,70 @@ END // section body, loop anamag
|
||||
SECTION FOOTER ODD 2
|
||||
END // fine footersection
|
||||
|
||||
SECTION FOOTER LAST 2 COLUMNWISE
|
||||
|
||||
STRINGA 1651 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 "Totale "
|
||||
END
|
||||
STRINGA -1 30
|
||||
BEGIN
|
||||
KEY "Magazzino"
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
STRINGA -1 3
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 5 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
END
|
||||
NUMERO 1647 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
END // fine form
|
||||
|
@ -211,13 +211,11 @@ END
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 142 6 "Giac."
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
STRINGA 15 12
|
||||
BEGIN
|
||||
KEY "H1"
|
||||
PROMPT 140 6 "Scorta-Giac."
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
|
||||
STRINGA 17 146
|
||||
@ -750,7 +748,6 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
MESSAGE _NUMEXPR,#246/#245
|
||||
GROUP FG_VALMEDI FG_RIGAVALORI
|
||||
END
|
||||
|
||||
NUMERO 247 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
@ -758,7 +755,6 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PICTURE "########,@#"
|
||||
FIELD LF_MAG->GIAC
|
||||
MESSAGE ADD,347
|
||||
GROUP FG_RIGAPREZZI
|
||||
END
|
||||
NUMERO 248 12
|
||||
BEGIN
|
||||
@ -766,17 +762,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _NUMEXPR,LF_MAG->SCORTAMIN-LF_MAG->GIAC|ADD,347
|
||||
GROUP FG_RIGAVALORI
|
||||
END
|
||||
/*NUMERO 249 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
FIELD LF_MAG->GIAC
|
||||
MESSAGE ADD,341
|
||||
GROUP 2 FG_RIGAPREZZI
|
||||
END*/
|
||||
END // tot ggiac4
|
||||
|
||||
END // GGIAC3
|
||||
@ -1196,7 +1182,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,747
|
||||
GROUP 6 FG_RIGAVALORI
|
||||
GROUP 6
|
||||
END
|
||||
VALUTA 648 12
|
||||
BEGIN
|
||||
@ -1204,7 +1190,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 7 1 ""
|
||||
FLAGS "U"
|
||||
PICTURE "###.###.###"
|
||||
GROUP 6 FG_RIGACOSTI
|
||||
GROUP 6
|
||||
END
|
||||
VALUTA 649 12
|
||||
BEGIN
|
||||
@ -2155,7 +2141,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,147
|
||||
// MESSAGE _USER,VALIDATE_UM,53|ADD,147
|
||||
MESSAGE ADD,147
|
||||
GROUP 15
|
||||
END
|
||||
END // tot depositi
|
||||
@ -2261,7 +2248,8 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
// MESSAGE _USER,VALIDATE_UM,153|ADD,FL->247
|
||||
MESSAGE ADD,FL->247
|
||||
GROUP 1
|
||||
END
|
||||
END // tot magazz
|
||||
@ -2269,5 +2257,68 @@ END // section body, loop anamag
|
||||
|
||||
SECTION FOOTER ODD 2
|
||||
END // fine footer
|
||||
|
||||
SECTION FOOTER LAST 2 COLUMNWISE
|
||||
|
||||
STRINGA 251 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 1 "Totale "
|
||||
END
|
||||
STRINGA -1 20
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA -1 3
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 5 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "ACQ"
|
||||
PROMPT 6 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALACQ"
|
||||
PROMPT 7 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "ven"
|
||||
PROMPT 8 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALven"
|
||||
PROMPT 9 1 ""
|
||||
END
|
||||
NUMERO -1 12
|
||||
BEGIN
|
||||
KEY "rim"
|
||||
PROMPT 10 1 ""
|
||||
END
|
||||
VALUTA -1 12
|
||||
BEGIN
|
||||
KEY "VALrim"
|
||||
PROMPT 11 1 ""
|
||||
END
|
||||
NUMERO 247 12
|
||||
BEGIN
|
||||
KEY "giac"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
||||
END// fine form
|
||||
|
||||
|
@ -1835,6 +1835,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1641
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1542 11
|
||||
@ -1843,12 +1844,14 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "########,@#"
|
||||
GROUP 15 25
|
||||
MESSAGE ADD,FL->1642
|
||||
END
|
||||
NUMERO 1543 11
|
||||
BEGIN
|
||||
KEY "ORDC"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1643
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1544 11
|
||||
@ -1856,6 +1859,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ACL"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1644
|
||||
GROUP 15 25
|
||||
END
|
||||
NUMERO 1545 11
|
||||
@ -1863,6 +1867,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "INCL"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1645
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1546 11
|
||||
@ -1870,6 +1875,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODF"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1646
|
||||
GROUP 15 25
|
||||
END
|
||||
NUMERO 1547 11
|
||||
@ -1877,6 +1883,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODC"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1647
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1548 11
|
||||
@ -1884,6 +1891,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "DISP"
|
||||
prompt 13 2 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE ADD,FL->1648
|
||||
GROUP 15
|
||||
END
|
||||
END // tot catmerc
|
||||
@ -1907,4 +1915,71 @@ SECTION FOOTER ODD 2
|
||||
|
||||
END // fine footer
|
||||
|
||||
SECTION FOOTER LAST 2 COLUMNWISE
|
||||
|
||||
STRINGA -1 34 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 2 ""
|
||||
END
|
||||
STRINGA 1651 8 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 2 " Totale"
|
||||
END
|
||||
STRINGA -1 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 2 ""
|
||||
END
|
||||
NUMERO 1641 11
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1642 11
|
||||
BEGIN
|
||||
KEY "ORDF"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1643 11
|
||||
BEGIN
|
||||
KEY "ORDC"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1644 11
|
||||
BEGIN
|
||||
KEY "ACL"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1645 11
|
||||
BEGIN
|
||||
KEY "INCL"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1646 11
|
||||
BEGIN
|
||||
KEY "PRODF"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1647 11
|
||||
BEGIN
|
||||
KEY "PRODC"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1648 11
|
||||
BEGIN
|
||||
KEY "DISP"
|
||||
prompt 13 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
END
|
||||
|
||||
END // fine form
|
||||
|
@ -1811,7 +1811,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1641
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1542 11
|
||||
@ -1819,7 +1819,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ORDF"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1642
|
||||
GROUP 15 25
|
||||
END
|
||||
NUMERO 1543 11
|
||||
@ -1827,7 +1827,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ORDC"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1643
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1544 11
|
||||
@ -1835,7 +1835,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ACL"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1644
|
||||
GROUP 15 25
|
||||
END
|
||||
NUMERO 1545 11
|
||||
@ -1843,7 +1843,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "INCL"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1645
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1546 11
|
||||
@ -1851,7 +1851,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODF"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1646
|
||||
GROUP 15 25
|
||||
END
|
||||
NUMERO 1547 11
|
||||
@ -1859,7 +1859,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODC"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1647
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 1548 11
|
||||
@ -1867,7 +1867,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "DISP"
|
||||
prompt 13 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,1553
|
||||
MESSAGE _USER,VALIDATE_UM,1553|ADD,FL->1648
|
||||
GROUP 15
|
||||
END
|
||||
END // tot catmerc
|
||||
@ -1877,4 +1877,71 @@ END // section body, loop anamag
|
||||
SECTION FOOTER ODD 2
|
||||
END // fine footer
|
||||
|
||||
SECTION FOOTER LAST 2 COLUMNWISE
|
||||
|
||||
STRINGA 1651 20 2
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 2 " Totale"
|
||||
END
|
||||
STRINGA -1 30
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
STRINGA -1 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 2 ""
|
||||
END
|
||||
NUMERO 1641 11
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1642 11
|
||||
BEGIN
|
||||
KEY "ORDF"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1643 11
|
||||
BEGIN
|
||||
KEY "ORDC"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1644 11
|
||||
BEGIN
|
||||
KEY "ACL"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1645 11
|
||||
BEGIN
|
||||
KEY "INCL"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1646 11
|
||||
BEGIN
|
||||
KEY "PRODF"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1647 11
|
||||
BEGIN
|
||||
KEY "PRODC"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 1648 11
|
||||
BEGIN
|
||||
KEY "DISP"
|
||||
prompt 13 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
END
|
||||
|
||||
END // fine form
|
||||
|
@ -1617,7 +1617,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,141
|
||||
MESSAGE ADD,141
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 42 11
|
||||
@ -1625,7 +1625,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ORDF"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,142
|
||||
MESSAGE ADD,142
|
||||
GROUP 15
|
||||
END
|
||||
|
||||
@ -1634,7 +1634,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ORDC"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,143
|
||||
MESSAGE ADD,143
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 44 11
|
||||
@ -1642,7 +1642,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ACL"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,144
|
||||
MESSAGE ADD,144
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 45 11
|
||||
@ -1650,7 +1650,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "INCL"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,145
|
||||
MESSAGE ADD,145
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 46 11
|
||||
@ -1658,7 +1658,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODFIN"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,146
|
||||
MESSAGE ADD,146
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 47 11
|
||||
@ -1666,7 +1666,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODCOMP"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,147
|
||||
MESSAGE ADD,147
|
||||
GROUP 15
|
||||
END
|
||||
NUMERO 48 11
|
||||
@ -1674,7 +1674,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "DISPONIBILITA'"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "#######@,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,53|ADD,148
|
||||
MESSAGE ADD,148
|
||||
GROUP 15
|
||||
END
|
||||
END // tot depositi
|
||||
@ -1708,7 +1708,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->241
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 142 11
|
||||
@ -1716,7 +1716,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ORDF"
|
||||
PROMPT 7 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->242
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 143 11
|
||||
@ -1724,7 +1724,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ORDC"
|
||||
PROMPT 8 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->243
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 144 11
|
||||
@ -1732,7 +1732,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "ACL"
|
||||
PROMPT 9 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->244
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 145 11
|
||||
@ -1740,7 +1740,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "INCL"
|
||||
PROMPT 10 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->245
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 146 11
|
||||
@ -1748,7 +1748,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODF"
|
||||
PROMPT 11 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->246
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 147 11
|
||||
@ -1756,7 +1756,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "PRODC"
|
||||
PROMPT 12 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->247
|
||||
GROUP 1
|
||||
END
|
||||
NUMERO 148 11
|
||||
@ -1764,7 +1764,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "DISP"
|
||||
PROMPT 13 1 ""
|
||||
PICTURE "########,@#"
|
||||
MESSAGE _USER,VALIDATE_UM,153
|
||||
MESSAGE ADD,FL->248
|
||||
GROUP 1
|
||||
END
|
||||
END // tot magazz
|
||||
@ -1775,4 +1775,66 @@ SECTION FOOTER ODD 2
|
||||
|
||||
END // fine footer
|
||||
|
||||
SECTION FOOTER LAST 2 COLUMNWISE
|
||||
|
||||
STRINGA 251 50
|
||||
BEGIN
|
||||
KEY ""
|
||||
PROMPT 2 2 " Totale"
|
||||
END
|
||||
STRINGA -1 3
|
||||
BEGIN
|
||||
KEY "UM"
|
||||
PROMPT 5 2 ""
|
||||
END
|
||||
NUMERO 241 11
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 6 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 242 11
|
||||
BEGIN
|
||||
KEY "ORDF"
|
||||
PROMPT 7 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 243 11
|
||||
BEGIN
|
||||
KEY "ORDC"
|
||||
PROMPT 8 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 244 11
|
||||
BEGIN
|
||||
KEY "ACL"
|
||||
PROMPT 9 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 245 11
|
||||
BEGIN
|
||||
KEY "INCL"
|
||||
PROMPT 10 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 246 11
|
||||
BEGIN
|
||||
KEY "PRODF"
|
||||
PROMPT 11 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 247 11
|
||||
BEGIN
|
||||
KEY "PRODC"
|
||||
PROMPT 12 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
NUMERO 248 11
|
||||
BEGIN
|
||||
KEY "DISP"
|
||||
prompt 13 2 ""
|
||||
PICTURE "########,@#"
|
||||
END
|
||||
END
|
||||
|
||||
END // fine form
|
||||
|
@ -278,7 +278,20 @@ protected:
|
||||
void TStampa_etich_art::main_loop()
|
||||
{
|
||||
TStampa_etich_art_mask mask;
|
||||
TToken_string vals("",',');
|
||||
|
||||
vals = main_app().argv(2);
|
||||
if (vals.find(',') > 0)
|
||||
{
|
||||
|
||||
FOR_EACH_TOKEN(vals, s)
|
||||
{
|
||||
TToken_string eq(s, '=');
|
||||
const short id = atoi(eq.get());
|
||||
|
||||
mask.set(id, eq.get());
|
||||
}
|
||||
}
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
//report e book dei report
|
||||
@ -310,4 +323,4 @@ int mg3600(int argc, char* argv[])
|
||||
TStampa_etich_art a;
|
||||
a.run(argc, argv, TR("Stampa etichette articoli"));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
#define F_DADATA 107
|
||||
#define F_ADATA 108
|
||||
#define F_CAUS 109
|
||||
|
||||
#define F_DANUM 110
|
||||
#define F_ANUM 111
|
||||
|
||||
|
||||
|
@ -33,13 +33,14 @@ BEGIN
|
||||
MESSAGE HIDE,10@|SHOW,11@
|
||||
ITEM "M|Movimenti"
|
||||
MESSAGE SHOW,10@|HIDE,11@
|
||||
FLAGS "P"
|
||||
END
|
||||
|
||||
STRING F_DACODART 20
|
||||
BEGIN
|
||||
PROMPT 1 6 "Da articolo "
|
||||
KEY 1
|
||||
FLAG "UG"
|
||||
FLAG "UGP"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_DACODART
|
||||
DISPLAY "Codice@20" CODART
|
||||
@ -64,7 +65,7 @@ END
|
||||
STRING F_ACODART 20
|
||||
BEGIN
|
||||
PROMPT 1 8 "A articolo "
|
||||
FLAG "UG"
|
||||
FLAG "UGP"
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART F_ACODART
|
||||
DISPLAY "Codice@20" CODART
|
||||
@ -98,6 +99,7 @@ DATE F_DADATA
|
||||
BEGIN
|
||||
PROMPT 1 10 "Dal "
|
||||
GROUP 10
|
||||
FLAGS "P"
|
||||
FIELD DADATA
|
||||
END
|
||||
|
||||
@ -105,12 +107,47 @@ DATE F_ADATA
|
||||
BEGIN
|
||||
PROMPT 1 12 " Al "
|
||||
GROUP 10
|
||||
FLAGS "P"
|
||||
FIELD ADATA
|
||||
END
|
||||
|
||||
NUMBER F_DANUM 7
|
||||
BEGIN
|
||||
PROMPT 1 14 "Dal numero "
|
||||
USE LF_MOVMAG
|
||||
INPUT NUMREG F_DANUM
|
||||
DISPLAY "N.reg.@7" NUMREG
|
||||
DISPLAY "Anno" ANNOES
|
||||
DISPLAY "Data reg. @10" DATAREG
|
||||
DISPLAY "Data comp.@10" DATACOMP
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
DISPLAY "Causale" CODCAUS
|
||||
OUTPUT F_DANUM NUMREG
|
||||
GROUP 10
|
||||
FLAGS "P"
|
||||
FIELD DANUM
|
||||
END
|
||||
|
||||
NUMBER F_ANUM 7
|
||||
BEGIN
|
||||
PROMPT 1 16 " Al numero "
|
||||
GROUP 15
|
||||
USE LF_MOVMAG
|
||||
INPUT NUMREG F_ANUM
|
||||
DISPLAY "N.reg.@7" NUMREG
|
||||
DISPLAY "Anno" ANNOES
|
||||
DISPLAY "Data reg. @10" DATAREG
|
||||
DISPLAY "Data comp.@10" DATACOMP
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
DISPLAY "Causale" CODCAUS
|
||||
OUTPUT F_ANUM NUMREG
|
||||
FLAGS "P"
|
||||
FIELD ANUM
|
||||
END
|
||||
|
||||
STRING F_CAUS 5
|
||||
BEGIN
|
||||
PROMPT 2 14 "Codice causale "
|
||||
PROMPT 2 18 "Codice causale "
|
||||
FIELD CAUS
|
||||
USE %CAU
|
||||
FLAGS "U"
|
||||
|
@ -1,4 +1,4 @@
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="mg3600b" lpi="6">
|
||||
<description>Stampa etichette articoli da movimenti</description>
|
||||
<font face="Courier New" size="10" />
|
||||
@ -30,7 +30,7 @@ ROUND
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1" />
|
||||
<sql>USE RMOVMAG KEY 2
|
||||
SELECT (110-E;CODCAUS==#CAUS)(ANSI(110-E;DATAREG)E;=#DADATA)(ANSI(110-E;DATAREG)C;=#ADATA)
|
||||
SELECT (110-E;CODCAUS==#CAUS)BETWEEN(110-E;DATAREG,#DADATA,#ADATA)BETWEEN(110-E;NUMREG,#DANUM,#ANUM)
|
||||
JOIN MOVMAG INTO NUMREG=NUMREG
|
||||
JOIN ANAMAG INTO CODART=CODART
|
||||
JOIN UMART TO ANAMAG INTO CODART=CODART NRIGA=1
|
||||
|
@ -104,7 +104,24 @@ void TStampa_listamov::setprint_x_mov()
|
||||
|
||||
if (anno.not_empty())
|
||||
filter << '(' << LF_MOVMAG << "->ANNOES==\""<< anno << "\")";
|
||||
|
||||
const TString8 dadoc(_mask->get(F_DOC1));
|
||||
const TString8 adoc(_mask->get(F_DOC2));
|
||||
|
||||
if (dadoc.full())
|
||||
{
|
||||
if (filter.not_empty())
|
||||
filter << "&&";
|
||||
filter << '(' << LF_MOVMAG << "->EX_NUMDOC>=\""<< dadoc << "\")";
|
||||
}
|
||||
|
||||
if (adoc.full())
|
||||
{
|
||||
if (filter.not_empty())
|
||||
filter << "&&";
|
||||
filter << '(' << LF_MOVMAG << "->EX_NUMDOC<=\""<< adoc << "\")";
|
||||
}
|
||||
|
||||
long codcf = _mask->get_long(F_CODCF);
|
||||
|
||||
if (codcf != 0)
|
||||
|
@ -20,3 +20,5 @@
|
||||
#define F_RAGSOC 125
|
||||
#define F_DADES 126
|
||||
#define F_ADES 127
|
||||
#define F_DOC1 128
|
||||
#define F_DOC2 129
|
||||
|
@ -181,9 +181,19 @@ BEGIN
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_DOC1 7
|
||||
BEGIN
|
||||
PROMPT 2 10 "Da documento "
|
||||
END
|
||||
|
||||
STRING F_DOC2 7
|
||||
BEGIN
|
||||
PROMPT 27 10 "A documento "
|
||||
END
|
||||
|
||||
STRING F_CAU1 5
|
||||
BEGIN
|
||||
PROMPT 2 11 "Causale "
|
||||
PROMPT 2 11 "Causale "
|
||||
FLAGS "U"
|
||||
USE %CAU
|
||||
INPUT CODTAB F_CAU1
|
||||
@ -198,7 +208,7 @@ END
|
||||
STRING F_CAU2 5
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 12 "Causale "
|
||||
PROMPT 2 12 "Causale "
|
||||
COPY USE F_CAU1
|
||||
INPUT CODTAB F_CAU2
|
||||
COPY DISPLAY F_CAU1
|
||||
@ -211,7 +221,7 @@ END
|
||||
STRING F_CAU3 5
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 13 "Causale "
|
||||
PROMPT 2 13 "Causale "
|
||||
COPY USE F_CAU1
|
||||
INPUT CODTAB F_CAU3
|
||||
COPY DISPLAY F_CAU1
|
||||
@ -224,7 +234,7 @@ END
|
||||
STRING F_CAU4 5
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 14 "Causale "
|
||||
PROMPT 2 14 "Causale "
|
||||
COPY USE F_CAU1
|
||||
INPUT CODTAB F_CAU4
|
||||
COPY DISPLAY F_CAU1
|
||||
@ -237,7 +247,7 @@ END
|
||||
STRING F_CAU5 5
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 15 "Causale "
|
||||
PROMPT 2 15 "Causale "
|
||||
COPY USE F_CAU1
|
||||
INPUT CODTAB F_CAU5
|
||||
COPY DISPLAY F_CAU1
|
||||
@ -250,7 +260,7 @@ END
|
||||
STRING F_CAU6 5
|
||||
BEGIN
|
||||
FLAGS "U"
|
||||
PROMPT 2 16 "Causale "
|
||||
PROMPT 2 16 "Causale "
|
||||
COPY USE F_CAU1
|
||||
INPUT CODTAB F_CAU6
|
||||
COPY DISPLAY F_CAU1
|
||||
|
@ -2495,7 +2495,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,VALIDATE_UM,1453//|ADD,1541|ADD,1641
|
||||
MESSAGE _USER,VALIDATE_UM,1453|ADD,FL->10
|
||||
GROUP 14
|
||||
END
|
||||
VALUTA 1442 15
|
||||
@ -2867,92 +2867,97 @@ BEGIN
|
||||
MESSAGE _USER,LINEATOTALI
|
||||
END
|
||||
|
||||
STRINGA 2 68
|
||||
STRINGA 2 55
|
||||
BEGIN
|
||||
PROMPT 1 2 "@BTotale generale"
|
||||
END
|
||||
|
||||
NUMERO 10 12
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 2 2 ""
|
||||
PICTURE "########,@##"
|
||||
END
|
||||
VALUTA 11 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 1"
|
||||
FLAGS "H"
|
||||
PROMPT 2 2 ""
|
||||
PROMPT 3 2 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 12 12
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
PROMPT 3 2 ""
|
||||
PROMPT 4 2 ""
|
||||
END
|
||||
|
||||
VALUTA 13 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 2"
|
||||
FLAGS "H"
|
||||
PROMPT 4 2 ""
|
||||
PROMPT 5 2 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 14 12
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
PROMPT 5 2 ""
|
||||
PROMPT 6 2 ""
|
||||
END
|
||||
|
||||
VALUTA 15 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 3"
|
||||
PROMPT 6 2 ""
|
||||
PROMPT 7 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 16 12
|
||||
BEGIN
|
||||
PROMPT 7 2 ""
|
||||
PROMPT 8 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 17 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 4"
|
||||
PROMPT 8 2 ""
|
||||
PROMPT 9 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 18 12
|
||||
BEGIN
|
||||
PROMPT 9 2 ""
|
||||
PROMPT 10 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 19 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 5"
|
||||
PROMPT 10 2 ""
|
||||
PROMPT 11 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 20 12
|
||||
BEGIN
|
||||
PROMPT 11 2 ""
|
||||
PROMPT 12 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 21 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 6"
|
||||
PROMPT 12 2 ""
|
||||
PROMPT 13 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 22 12
|
||||
BEGIN
|
||||
PROMPT 13 2 ""
|
||||
PROMPT 14 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
|
@ -2497,7 +2497,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,VALIDATE_UM,1453//|ADD,1541|ADD,1641
|
||||
MESSAGE _USER,VALIDATE_UM,1453|ADD,FL->10|ADD,1541|ADD,1641
|
||||
GROUP 14
|
||||
END
|
||||
VALUTA 1442 15
|
||||
@ -2756,7 +2756,7 @@ SECTION BODY ODD 0 COLUMNWISE
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
//MESSAGE _USER,VALIDATE_UM,1553
|
||||
GROUP 15
|
||||
GROUP 15
|
||||
END
|
||||
VALUTA 1542 15
|
||||
BEGIN
|
||||
@ -2869,92 +2869,98 @@ BEGIN
|
||||
MESSAGE _USER,LINEATOTALI
|
||||
END
|
||||
|
||||
STRINGA 2 68
|
||||
STRINGA 2 55
|
||||
BEGIN
|
||||
PROMPT 1 2 "@BTotale generale"
|
||||
END
|
||||
|
||||
NUMERO 10 12
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 2 2 ""
|
||||
PICTURE "########,@##"
|
||||
END
|
||||
VALUTA 11 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 1"
|
||||
FLAGS "H"
|
||||
PROMPT 2 2 ""
|
||||
PROMPT 3 2 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 12 12
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
PROMPT 3 2 ""
|
||||
PROMPT 4 2 ""
|
||||
END
|
||||
|
||||
VALUTA 13 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 2"
|
||||
FLAGS "H"
|
||||
PROMPT 4 2 ""
|
||||
PROMPT 5 2 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 14 12
|
||||
BEGIN
|
||||
FLAGS "H"
|
||||
PROMPT 5 2 ""
|
||||
PROMPT 6 2 ""
|
||||
END
|
||||
|
||||
VALUTA 15 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 3"
|
||||
PROMPT 6 2 ""
|
||||
PROMPT 7 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 16 12
|
||||
BEGIN
|
||||
PROMPT 7 2 ""
|
||||
PROMPT 8 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 17 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 4"
|
||||
PROMPT 8 2 ""
|
||||
PROMPT 9 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 18 12
|
||||
BEGIN
|
||||
PROMPT 9 2 ""
|
||||
PROMPT 10 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 19 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 5"
|
||||
PROMPT 10 2 ""
|
||||
PROMPT 11 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 20 12
|
||||
BEGIN
|
||||
PROMPT 11 2 ""
|
||||
PROMPT 12 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 21 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 6"
|
||||
PROMPT 12 2 ""
|
||||
PROMPT 13 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 22 12
|
||||
BEGIN
|
||||
PROMPT 13 2 ""
|
||||
PROMPT 14 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
|
@ -668,7 +668,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,GIAC|ADD,341
|
||||
MESSAGE _USER,GIAC|ADD,341|ADD,FL->10|ADD,41|ADD,1641|ADD,1741
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
@ -2233,8 +2233,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
MESSAGE _USER,VALIDATE_UM,1453//|ADD,41
|
||||
GROUP 14
|
||||
// MESSAGE _USER,VALIDATE_UM,1453|
|
||||
END
|
||||
VALUTA 1442 15
|
||||
BEGIN
|
||||
@ -2606,8 +2605,9 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
//PICTURE "########,@##"
|
||||
//MESSAGE _USER,VALIDATE_UM,53|ADD,141
|
||||
PICTURE "########,@##"
|
||||
// MESSAGE _USER,VALIDATE_UM,53|ADD,141
|
||||
MESSAGE ADD,141
|
||||
GROUP 15
|
||||
END
|
||||
VALUTA 42 15
|
||||
@ -2737,7 +2737,7 @@ SECTION BODY ODD 1 COLUMNWISE
|
||||
KEY "GIAC"
|
||||
PROMPT 6 1 ""
|
||||
PICTURE "########,@##"
|
||||
//MESSAGE _USER,VALIDATE_UM,153
|
||||
// MESSAGE _USER,VALIDATE_UM,153
|
||||
GROUP 1
|
||||
END
|
||||
VALUTA 142 15
|
||||
@ -2852,92 +2852,98 @@ BEGIN
|
||||
MESSAGE _USER,LINEATOTALI
|
||||
END
|
||||
|
||||
STRINGA 2 68
|
||||
STRINGA 2 55
|
||||
BEGIN
|
||||
PROMPT 1 2 "@BTotale generale"
|
||||
END
|
||||
|
||||
NUMERO 10 12
|
||||
BEGIN
|
||||
KEY "GIAC"
|
||||
PROMPT 2 2 ""
|
||||
PICTURE "########,@##"
|
||||
END
|
||||
VALUTA 11 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 1"
|
||||
PROMPT 2 2 ""
|
||||
PROMPT 3 2 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
NUMERO 12 12
|
||||
BEGIN
|
||||
PROMPT 3 2 ""
|
||||
PROMPT 4 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 13 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 2"
|
||||
PROMPT 4 2 ""
|
||||
PROMPT 5 2 ""
|
||||
PICTURE "##.###.###.##@"
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
NUMERO 14 12
|
||||
BEGIN
|
||||
PROMPT 5 2 ""
|
||||
PROMPT 6 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 15 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 3"
|
||||
PROMPT 6 2 ""
|
||||
PROMPT 7 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 16 12
|
||||
BEGIN
|
||||
PROMPT 7 2 ""
|
||||
PROMPT 8 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 17 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 4"
|
||||
PROMPT 8 2 ""
|
||||
PROMPT 9 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 18 12
|
||||
BEGIN
|
||||
PROMPT 9 2 ""
|
||||
PROMPT 10 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 19 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 5"
|
||||
PROMPT 10 2 ""
|
||||
PROMPT 11 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 20 12
|
||||
BEGIN
|
||||
PROMPT 11 2 ""
|
||||
PROMPT 12 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
VALUTA 21 15
|
||||
BEGIN
|
||||
KEY "TOTALE COL. 6"
|
||||
PROMPT 12 2 ""
|
||||
PROMPT 13 2 ""
|
||||
FLAGS "H"
|
||||
PICTURE "##.###.###.##@"
|
||||
END
|
||||
|
||||
NUMERO 22 12
|
||||
BEGIN
|
||||
PROMPT 13 2 ""
|
||||
PROMPT 14 2 ""
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
|
@ -581,6 +581,9 @@ public:
|
||||
TArticolo & articolo(int row) const { return cached_article(body()[row].get(RMOVMAG_CODART));}
|
||||
TArticolo_giacenza & articolo_giacenza(int row) const { return cached_article_balances(body()[row].get(RMOVMAG_CODART));}
|
||||
TCausale_magazzino& causale(int row) const;
|
||||
const TCausale_magazzino& causale(const char* cod = NULL) const;
|
||||
void renum_mov(const long numreg);
|
||||
|
||||
|
||||
// @member: effettua l'aggiornamento dei saldi di una giacenza
|
||||
void update_balances(TRectype& magrec, int numrig, bool plus = true);
|
||||
|
@ -486,6 +486,12 @@ bool TMov_mag::force_update_bal()
|
||||
return update_balances(false);
|
||||
}
|
||||
|
||||
void TMov_mag::renum_mov(const long numreg)
|
||||
{
|
||||
put(MOVMAG_NUMREG, numreg);
|
||||
renum_key();
|
||||
}
|
||||
|
||||
// restituisce il valore dei dati
|
||||
|
||||
void TMov_mag::add_saldi(const bool plus)
|
||||
|
@ -3457,8 +3457,8 @@ bool TMatResPlanning::emit_orders()
|
||||
if (dardoc != NULL)
|
||||
{
|
||||
int rifdepth = m.get_int(F_RIFERIMENTO_MRP);
|
||||
if (rifdepth == 0 && dardoc->get(RDOC_DACODNUM).full())
|
||||
rifdepth = 1;
|
||||
// if (rifdepth == 0 && dardoc->get(RDOC_DACODNUM).full())
|
||||
// rifdepth = 1;
|
||||
rdoc.set_original_rdoc_key(*dardoc, rifdepth); // Imposto DAPROVV, DAANNO, DACODNUM, DANDOC, DAIDRIGA
|
||||
}
|
||||
else
|
||||
|
@ -201,7 +201,7 @@ bool TRiga_articolo::find_block(const TSheet_field& sf, const int riga, int &fir
|
||||
|
||||
int TRiga_articolo::order_compare( const TToken_string &r1, const TToken_string &r2, int level, bool ascending)
|
||||
{
|
||||
TString80 str0, str1;
|
||||
TString str0, str1;
|
||||
int cmp = 0;
|
||||
|
||||
if (level>=0)
|
||||
@ -873,20 +873,18 @@ void TMSP_constraint::fill_sheet_row(TToken_string& row, const TMask & m, const
|
||||
if ((descr == NULL || *descr == '\0') && __userflds != NULL && __userflds->full())
|
||||
{
|
||||
TString userdesc;
|
||||
TString16 fldname;
|
||||
TString16 codnum;
|
||||
TString4 codnum;
|
||||
TString fldval;
|
||||
const TRectype & anamag = cache().get(LF_ANAMAG, articolo());
|
||||
TToken_string fld("", '#');
|
||||
|
||||
for (fld = __userflds->get(0); fld.full(); fld = __userflds->get())
|
||||
{
|
||||
|
||||
fldname = fld.get(0);
|
||||
const TFieldref fr(fld.get(0), 0);
|
||||
codnum = fld.get();
|
||||
|
||||
if (codnum.blank())
|
||||
fldval = anamag.get(fldname);
|
||||
fldval = fr.read(anamag);
|
||||
else
|
||||
{
|
||||
fldval.cut(0);
|
||||
@ -899,14 +897,14 @@ void TMSP_constraint::fill_sheet_row(TToken_string& row, const TMask & m, const
|
||||
curr.put(RDOC_DANDOC, da_rdoc_key.smid(9,7));
|
||||
curr.put(RDOC_DAIDRIGA, da_rdoc_key.smid(16));
|
||||
|
||||
TRectype filter_fr(curr), filter_to(curr);
|
||||
const TRectype filter_fr(curr), filter_to(curr);
|
||||
TCursor cur(&rel, "", 4, &filter_fr, &filter_to);
|
||||
const int items = cur.items();
|
||||
|
||||
cur.freeze();
|
||||
for (cur = 0L; cur.pos() < items; ++cur)
|
||||
if (cur.curr().get(RDOC_CODNUM) == codnum)
|
||||
{
|
||||
fldval = cur.curr().get(fldname);
|
||||
fldval = fr.read(cur.curr());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1218,10 +1216,8 @@ void TMSP_constraint::init()
|
||||
if (__userflds == NULL)
|
||||
{
|
||||
TConfig c(CONFIG_DITTA, "mr");
|
||||
|
||||
__userflds = new TToken_string(c.get("USERFLDS"));
|
||||
if (c.exist("FLDSEP"))
|
||||
__sep = c.get_char("FLDSEP");
|
||||
__sep = c.get_char("FLDSEP", NULL, -1, ';');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,9 +89,12 @@ TConsumi_report::TConsumi_report()
|
||||
class TGenera_ordini_mask : public TAutomask
|
||||
{
|
||||
TString _anamag_query;
|
||||
TString _disable_expr;
|
||||
TString8 _disable_num;
|
||||
TExpression _dis;
|
||||
TString _doc_filter;
|
||||
int _days_interval;
|
||||
bool _filter_changed;
|
||||
bool _filter_changed, _order_changed;
|
||||
|
||||
private:
|
||||
void serialize(bool bSave);
|
||||
@ -138,6 +141,8 @@ inline TCreazione_ordini & capp() { return (TCreazione_ordini &) main_app();}
|
||||
|
||||
void TGenera_ordini_mask::update_sheet()
|
||||
{
|
||||
_filter_changed = false;
|
||||
|
||||
TWait_cursor hourglass;
|
||||
const TDate oggi(TODAY);
|
||||
|
||||
@ -148,6 +153,8 @@ void TGenera_ordini_mask::update_sheet()
|
||||
const int pos = query.find("KEY ");
|
||||
TArticolo_giacenza art;
|
||||
TString8 codmag(get(F_MAG));
|
||||
const TString8 codnum(get(F_CODNUM));
|
||||
const bool check_expr = codnum == _disable_num;
|
||||
int anno = get_int(F_ANNO);
|
||||
if (anno <= 0)
|
||||
anno = oggi.year();
|
||||
@ -239,7 +246,11 @@ void TGenera_ordini_mask::update_sheet()
|
||||
var = user();
|
||||
recset.set_var("#USER", var);
|
||||
TString8 codes; codes.format("%04d", esc.date2esc(oggi));
|
||||
|
||||
var = codmag;
|
||||
recset.set_var("#CODMAG", var);
|
||||
var = (long)anno;
|
||||
recset.set_var("#ANNOES", var);
|
||||
|
||||
int i = 0;
|
||||
|
||||
sf.destroy();
|
||||
@ -277,7 +288,26 @@ void TGenera_ordini_mask::update_sheet()
|
||||
row.add(recset.get(ANAMAG_USER10).as_string(), sf.cid2index(F_USER10));
|
||||
const real disp = art.disponibilita(codes, get(F_MAG), NULL);
|
||||
row.add(disp.string(), sf.cid2index(F_DISPON));
|
||||
sf.check_row(i++);
|
||||
sf.check_row(i);
|
||||
if (check_expr)
|
||||
{
|
||||
for (int j = _dis.numvar() - 1; j >= 0; j--)
|
||||
{
|
||||
const TString16 varn =_dis.varname(j);
|
||||
|
||||
if (varn == "GIAC")
|
||||
_dis.setvar(j, giac.string());
|
||||
else
|
||||
if (varn == "USER")
|
||||
_dis.setvar(j, user());
|
||||
else
|
||||
_dis.setvar(j, recset.get(varn).as_string());
|
||||
}
|
||||
if (_dis.as_bool())
|
||||
sf.disable_row(i);
|
||||
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
sf.force_update();
|
||||
@ -285,6 +315,7 @@ void TGenera_ordini_mask::update_sheet()
|
||||
|
||||
void TGenera_ordini_mask::update_orders()
|
||||
{
|
||||
_order_changed = false;
|
||||
TWait_cursor hourglass;
|
||||
|
||||
TSheet_field& sh = sfield(F_ORDERS);
|
||||
@ -338,12 +369,15 @@ void TGenera_ordini_mask::next_page(int p)
|
||||
|
||||
if (_filter_changed)
|
||||
{
|
||||
TSheet_field& sf = sfield(F_ARTICLES);
|
||||
const TSheet_field& sf = sfield(F_ARTICLES);
|
||||
if (xvt_scr_get_focus_vobj() == sf.parent())
|
||||
{
|
||||
update_sheet();
|
||||
_filter_changed = false;
|
||||
}
|
||||
}
|
||||
if (_order_changed)
|
||||
{
|
||||
const TSheet_field& sf = sfield(F_ORDERS);
|
||||
if (xvt_scr_get_focus_vobj() == sf.parent())
|
||||
update_orders();
|
||||
}
|
||||
|
||||
}
|
||||
@ -383,6 +417,10 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
if (e == fe_modify)
|
||||
_filter_changed = true;
|
||||
break;
|
||||
case F_CODNUM:
|
||||
if (e == fe_modify)
|
||||
_order_changed = true;
|
||||
break;
|
||||
case F_ANNO:
|
||||
if (e == fe_init && o.empty())
|
||||
{
|
||||
@ -427,15 +465,18 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
rset.set_var("#CODNUM", TVariant(get(F_CODNUM)));
|
||||
|
||||
TCursor* c = rset.cursor();
|
||||
TCursor_sheet sht(c, " |CODNUM|NDOC|DATADOC|DATACONS|CODCF|20->RAGSOC", "Selezione Documenti",
|
||||
"@1|Ordine@6|Numero\nDoc.@7|Data\nDoc.@10|Data\nConsegna@10|Fornitore|Ragione Sociale@50",0,1);
|
||||
TCursor_sheet sht(c, " |CODNUM|NDOC|DATADOC|DATACONS|CODCF|20->RAGSOC", TR("Selezione Documenti"),
|
||||
HR("@1|Ordine@6|Numero\nDoc.@7|Data\nDoc.@10|Data\nConsegna@10|Fornitore|Ragione Sociale@50"),0,1);
|
||||
sht.uncheck(-1);
|
||||
|
||||
if (sht.run())
|
||||
if (sht.run() && sht.one_checked())
|
||||
{
|
||||
const int items = c->items();
|
||||
for (*c = 0L; c->pos() < items; ++(*c)) if (sht.checked(c->pos()))
|
||||
capp().print_doc(c->curr());
|
||||
|
||||
update_sheet();
|
||||
update_orders();
|
||||
}
|
||||
ok = false; // Non uscire
|
||||
}
|
||||
@ -469,11 +510,10 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
rset.set_var("#CODNUM", TVariant(get(F_CODNUM)));
|
||||
|
||||
TCursor* c = rset.cursor();
|
||||
TCursor_sheet sht(c, " |CODNUM|NDOC|DATADOC|DATACONS|CODCF|20->RAGSOC", "Selezione Documenti",
|
||||
"@1|Ordine@6|Numero\nDoc.@7|Data\nDoc.@10|Data\nConsegna@10|Fornitore|Ragione Sociale@50",0,1);
|
||||
TCursor_sheet sht(c, " |CODNUM|NDOC|DATADOC|DATACONS|CODCF|20->RAGSOC", TR("Selezione Documenti"),
|
||||
HR("@1|Ordine@6|Numero\nDoc.@7|Data\nDoc.@10|Data\nConsegna@10|Fornitore|Ragione Sociale@50"),0,1);
|
||||
sht.uncheck(-1);
|
||||
|
||||
if (sht.run() && sht.checked() > 0 && yesno_box("Si desidera cancellare %d documenti", sht.checked()))
|
||||
if (sht.run() && sht.one_checked() && yesno_box("Si desidera cancellare %d documenti", sht.checked()))
|
||||
{
|
||||
const int items = c->items();
|
||||
c->freeze();
|
||||
@ -482,6 +522,8 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
TDocumento doc(c->curr());
|
||||
doc.remove();
|
||||
}
|
||||
update_sheet();
|
||||
update_orders();
|
||||
}
|
||||
ok = false; // Non uscire
|
||||
}
|
||||
@ -548,6 +590,10 @@ TGenera_ordini_mask::TGenera_ordini_mask()
|
||||
else
|
||||
_anamag_query = esc(_anamag_query);
|
||||
|
||||
_disable_num = esc(c.get("OR14_DISNUM"));
|
||||
_disable_expr = esc(c.get("OR14_DISABLE"));
|
||||
_dis.set(_disable_expr);
|
||||
|
||||
_doc_filter = c.get("OR14_FILTER");
|
||||
if (_doc_filter.empty() && !field(F_CDCT).empty())
|
||||
_doc_filter = "CODCMS=#CODCMS"; // Utile al Cigno
|
||||
|
BIN
ps/Tabelle vendite al dettaglio.doc
Executable file
BIN
ps/Tabelle vendite al dettaglio.doc
Executable file
Binary file not shown.
@ -27,6 +27,7 @@ Generazione documenti da paghe
|
||||
Trasferimento Maestri a TeamSystem
|
||||
Convesione file Landi
|
||||
Stampa bollettini postali Condeco
|
||||
copia movimenti magazzino AZ
|
||||
|
||||
PG0069 Nautilus (Sipag)
|
||||
Importazione e contabilizzazione fatture Nautilus
|
||||
@ -46,6 +47,9 @@ PS0430 Il Cigno
|
||||
Correlazioni articoli utenti
|
||||
Configurazione campi per utente
|
||||
|
||||
PN0001
|
||||
Importazione dati vendite al dettaglio
|
||||
|
||||
PS0544 Varauto
|
||||
Trasferimento a SISIPHO
|
||||
Trasferimento a SERVUS
|
||||
|
@ -95,8 +95,14 @@ real TValorizzazione_mask::valore(const TCodice_articolo& dis, const char* liv)
|
||||
|
||||
if (calo == ZERO) calo = UNO;
|
||||
|
||||
const real prezzo = compd.get_real(ANAMAG_ULTCOS1) * calo;
|
||||
val_mat += prezzo * qta;
|
||||
TString80 strprezzo("#"); strprezzo << comp;
|
||||
real prezzo;
|
||||
|
||||
if (_tree.exist(strprezzo))
|
||||
prezzo = _tree.get_real(strprezzo);
|
||||
else
|
||||
prezzo = compd.get_real(ANAMAG_ULTCOS1);
|
||||
val_mat += (prezzo * calo) * qta;
|
||||
if (um.starts_with("GR"))
|
||||
peso += qta;
|
||||
}
|
||||
|
@ -13,6 +13,8 @@ int main(int argc, char** argv)
|
||||
pg0001300(argc, argv); break; // conversione da excel a colonne fisse per studio vitali
|
||||
case 3:
|
||||
pg0001400(argc, argv); break; // stampa bollettini postali Condeco
|
||||
case 4:
|
||||
pg0001500(argc, argv); break; // copia movimenti magazzino AZ
|
||||
case 0:
|
||||
default:
|
||||
pg0001100(argc, argv);
|
||||
|
@ -1,4 +1,5 @@
|
||||
int pg0001100(int argc, char* argv[]);
|
||||
int pg0001200(int argc, char* argv[]);
|
||||
int pg0001300(int argc, char* argv[]);
|
||||
int pg0001400(int argc, char* argv[]);
|
||||
int pg0001400(int argc, char* argv[]);
|
||||
int pg0001500(int argc, char* argv[]);
|
@ -228,7 +228,7 @@ const TVariant& TMov_recset::get(const char* column_name) const
|
||||
else
|
||||
if (fname == MOV_CODCAUS)
|
||||
{
|
||||
((TMov_recset *)this)->_indetraibile = TAS400_recordset::get(fname).as_int() == 4;
|
||||
((TMov_recset *)this)->_indetraibile = TAS400_recordset::get("CODCAUSO").as_int() == 4;
|
||||
int ccaus;
|
||||
|
||||
if (vendite())
|
||||
@ -281,7 +281,7 @@ TMov_recset::TMov_recset(const char * query, TArray & recsets)
|
||||
add_field(MOV_NUMDOC, 47, n, 9);
|
||||
add_field(MOV_DATADOC, 56, a, 6);
|
||||
add_field("L09", 62, a, 1);
|
||||
add_field(MOV_CODCAUS, 63, n, 2);
|
||||
add_field("CODCAUSO" , 63, n, 2);
|
||||
add_field(RMI_CODIVA, 65, n, 2);
|
||||
add_field("TIPOM", 67, n, 1);
|
||||
add_field("L10", 68, a, 18);
|
||||
@ -461,7 +461,7 @@ bool TIVA_recset::move_to(TRecnotype pos)
|
||||
}
|
||||
|
||||
TIVA_recset::TIVA_recset(TMov_recset & mov)
|
||||
:TAS400_recordset("AS400(60)\n"),
|
||||
:TAS400_recordset("AS400(62)\n"),
|
||||
_first(-1L), _last(-1L), _numreg(-1L)
|
||||
{
|
||||
const char a = 'a';
|
||||
@ -490,7 +490,7 @@ TIVA_recset::TIVA_recset(TMov_recset & mov)
|
||||
set(RMI_NUMRIG, mov.get("PROG"));
|
||||
|
||||
int civa = mov.get(RMI_CODIVA).as_int();
|
||||
int ccaus = mov.get(MOV_CODCAUS).as_int();
|
||||
int ccaus = mov.get("CODCAUSO").as_int();
|
||||
const bool indetraibile = mov.indetraibile();
|
||||
|
||||
civa += ccaus * 100;
|
||||
|
201
ps/pg0001500.cpp
Executable file
201
ps/pg0001500.cpp
Executable file
@ -0,0 +1,201 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <progind.h>
|
||||
|
||||
#include "pg0001.h"
|
||||
#include "pg0001500a.h"
|
||||
#include "../cg/cglib01.h"
|
||||
#include "../mg/mglib.h"
|
||||
#include "../mg/movmag.h"
|
||||
#include "../mg/rmovmag.h"
|
||||
|
||||
class TMaskpg00015 : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
TMaskpg00015() : TAutomask("pg0001500a") { }
|
||||
virtual ~TMaskpg00015() { }
|
||||
};
|
||||
|
||||
bool TMaskpg00015::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
class TCopiaMovMg : public TSkeleton_application
|
||||
{
|
||||
virtual bool check_autorization() const {return false;}
|
||||
virtual const char * extra_modules() const {return "ba";}
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
|
||||
public:
|
||||
};
|
||||
|
||||
void TCopiaMovMg::main_loop()
|
||||
{
|
||||
TMaskpg00015 m;
|
||||
|
||||
while (m.run() != K_QUIT)
|
||||
{
|
||||
TEsercizi_contabili es;
|
||||
TArray movs;
|
||||
const long damov = m.get_long(F_DANUM);
|
||||
const long amov = m.get_long(F_ANUM);
|
||||
const TDate newdate = m.get_date(F_DATAMOV);
|
||||
TMov_mag mov;
|
||||
TRectype rec(LF_MOVMAG);
|
||||
long newnmov = atol(mov.get_next_key());
|
||||
const real valtot = m.get_real(F_VALTOT);
|
||||
const int qmax = m.get_int(F_QMAX);
|
||||
const real minval = m.get_real(F_VMIN);
|
||||
const int cmax = m.get_int(F_CMAX);
|
||||
real actval;
|
||||
|
||||
{
|
||||
TProgind rd(amov - damov + 1, "Lettura");
|
||||
|
||||
for (long n = damov; n <= amov; n++)
|
||||
{
|
||||
rec.zero();
|
||||
rec.put(MOVMAG_NUMREG, n),
|
||||
|
||||
mov.read(rec);
|
||||
mov.body();
|
||||
mov.renum_mov(newnmov++);
|
||||
mov.put(MOVMAG_DATAREG, newdate);
|
||||
mov.put(MOVMAG_DATACOMP, newdate);
|
||||
mov.put(MOVMAG_ANNOES, es.date2esc(newdate));
|
||||
|
||||
const int nrows = mov.body().rows();
|
||||
|
||||
for (int r = 1; r <= nrows; r++)
|
||||
{
|
||||
const TRectype & row = mov.body().row(r);
|
||||
const real qta = row.get_int(RMOVMAG_QUANT);
|
||||
const real prezzo = row.get_real(RMOVMAG_PREZZO);
|
||||
real val = prezzo * qta;
|
||||
|
||||
val.round(2);
|
||||
actval += val;
|
||||
}
|
||||
movs.add(mov);
|
||||
if (!rd.iscancelled())
|
||||
rd.addstatus(1L);
|
||||
}
|
||||
}
|
||||
|
||||
real varp = valtot / actval;
|
||||
|
||||
varp.round(6);
|
||||
|
||||
const real sign = varp > UNO ? UNO : -UNO;
|
||||
int cnt = 0;
|
||||
int loops = 0;
|
||||
{
|
||||
TProgind c(100, "Calcolo");
|
||||
|
||||
while (sign * actval < sign * valtot && loops < 100)
|
||||
{
|
||||
const int nmov = movs.items();
|
||||
|
||||
actval = ZERO;
|
||||
for (int i = 0; i < nmov; i++)
|
||||
{
|
||||
TMov_mag &mov = (TMov_mag &) movs[i];
|
||||
const int nrows = mov.body().rows();
|
||||
int r;
|
||||
|
||||
for (r = 1; r <= nrows; r++)
|
||||
{
|
||||
TRectype & row = (TRectype &) mov.body().row(r);
|
||||
const real qta = row.get_real(RMOVMAG_QUANT);
|
||||
const real prezzo = row.get_real(RMOVMAG_PREZZO);
|
||||
|
||||
real v = varp * qta;
|
||||
|
||||
v.round(0);
|
||||
int newqta = v.integer();
|
||||
|
||||
if (prezzo >= minval && newqta > qmax)
|
||||
newqta = qmax;
|
||||
else
|
||||
if (qta.integer() == newqta)
|
||||
{
|
||||
cnt++;
|
||||
if (cnt == cmax)
|
||||
{
|
||||
cnt = 0;
|
||||
if (sign > ZERO)
|
||||
newqta++;
|
||||
else
|
||||
newqta--;
|
||||
}
|
||||
}
|
||||
|
||||
if (sign > ZERO)
|
||||
{
|
||||
if (newqta < qta.integer())
|
||||
newqta = qta.integer();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (newqta > qta.integer())
|
||||
newqta = qta.integer();
|
||||
}
|
||||
|
||||
if (newqta < 0)
|
||||
newqta = 0;
|
||||
|
||||
real val = prezzo * newqta;
|
||||
|
||||
val.round(2);
|
||||
actval += val;
|
||||
row.put(RMOVMAG_QUANT, newqta);
|
||||
}
|
||||
for (r = nrows; r > 0; r--)
|
||||
{
|
||||
const TRectype & row = mov.body().row(r);
|
||||
const int qta = row.get_int(RMOVMAG_QUANT);
|
||||
if (qta == 0)
|
||||
mov.body().destroy_row(r, true);
|
||||
}
|
||||
}
|
||||
varp = valtot / actval;
|
||||
varp.round(6);
|
||||
loops++;
|
||||
if (!c.iscancelled())
|
||||
c.addstatus(1L);
|
||||
}
|
||||
}
|
||||
|
||||
TString msg;
|
||||
|
||||
msg.format("Valore totale %s, devo registrare", (const char *) actval.stringa());
|
||||
|
||||
if (yesno_box(msg))
|
||||
{
|
||||
const int nmov = movs.items();
|
||||
TProgind w(nmov, "Scrittura");
|
||||
TLocalisamfile movmag(LF_MOVMAG);
|
||||
|
||||
for (int i = 0; i < nmov; i++)
|
||||
{
|
||||
TMov_mag &mov = (TMov_mag &) movs[i];
|
||||
mov.write(movmag);
|
||||
if (!w.iscancelled())
|
||||
w.addstatus(1L);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int pg0001500(int argc, char* argv[])
|
||||
{
|
||||
TCopiaMovMg a;
|
||||
a.run(argc, argv, "Copia Movimenti di magazzino");
|
||||
return 0;
|
||||
}
|
7
ps/pg0001500a.h
Executable file
7
ps/pg0001500a.h
Executable file
@ -0,0 +1,7 @@
|
||||
#define F_DANUM 101
|
||||
#define F_ANUM 102
|
||||
#define F_DATAMOV 103
|
||||
#define F_VALTOT 104
|
||||
#define F_QMAX 105
|
||||
#define F_VMIN 106
|
||||
#define F_CMAX 107
|
76
ps/pg0001500a.uml
Executable file
76
ps/pg0001500a.uml
Executable file
@ -0,0 +1,76 @@
|
||||
#include "pg0001500a.h"
|
||||
|
||||
PAGE "Copia movimenti di magazzino" -1 -1 76 18
|
||||
|
||||
NUMBER F_DANUM 7
|
||||
BEGIN
|
||||
PROMPT 1 2 "Dal numero "
|
||||
USE LF_MOVMAG
|
||||
INPUT NUMREG F_DANUM
|
||||
DISPLAY "N.reg.@7" NUMREG
|
||||
DISPLAY "Anno" ANNOES
|
||||
DISPLAY "Data reg. @10" DATAREG
|
||||
DISPLAY "Data comp.@10" DATACOMP
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
DISPLAY "Causale" CODCAUS
|
||||
OUTPUT F_DANUM NUMREG
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_ANUM 7
|
||||
BEGIN
|
||||
PROMPT 1 4 " Al numero "
|
||||
GROUP 15
|
||||
USE LF_MOVMAG
|
||||
INPUT NUMREG F_ANUM
|
||||
DISPLAY "N.reg.@7" NUMREG
|
||||
DISPLAY "Anno" ANNOES
|
||||
DISPLAY "Data reg. @10" DATAREG
|
||||
DISPLAY "Data comp.@10" DATACOMP
|
||||
DISPLAY "Descrizione@30" DESCR
|
||||
DISPLAY "Causale" CODCAUS
|
||||
OUTPUT F_ANUM NUMREG
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_DATAMOV
|
||||
BEGIN
|
||||
PROMPT 1 6 "Data movimenti "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
CURRENCY F_VALTOT
|
||||
BEGIN
|
||||
PROMPT 1 8 "Valore totale "
|
||||
END
|
||||
|
||||
NUMBER F_QMAX 5
|
||||
BEGIN
|
||||
PROMPT 1 10 "Quantità massima "
|
||||
END
|
||||
|
||||
CURRENCY F_VMIN 12
|
||||
BEGIN
|
||||
PROMPT 1 12 "Valore unitario minimo "
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
NUMBER F_CMAX 2
|
||||
BEGIN
|
||||
PROMPT 1 14 "Articoli da saltare "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
24
ps/pn0001.cpp
Executable file
24
ps/pn0001.cpp
Executable file
@ -0,0 +1,24 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "pn0001.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
const int op = argc < 2 ? 0 : argv[1][1]-'0';
|
||||
switch (op)
|
||||
{
|
||||
case 0:
|
||||
pn0001100(argc,argv);
|
||||
break;
|
||||
default:
|
||||
pn0001100(argc,argv);
|
||||
break;
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
15
ps/pn0001.h
Executable file
15
ps/pn0001.h
Executable file
@ -0,0 +1,15 @@
|
||||
int pn0001100(int argc, char* argv[]);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
1294
ps/pn0001100.cpp
Executable file
1294
ps/pn0001100.cpp
Executable file
File diff suppressed because it is too large
Load Diff
11
ps/pn0001100.h
Executable file
11
ps/pn0001100.h
Executable file
@ -0,0 +1,11 @@
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_PATH 103
|
||||
#define F_LEN 104
|
||||
#define F_CF 105
|
||||
#define F_AM 106
|
||||
#define F_BC 107
|
||||
#define F_LI 108
|
||||
#define F_GI 109
|
||||
#define F_CS 110
|
||||
|
89
ps/pn0001100.uml
Executable file
89
ps/pn0001100.uml
Executable file
@ -0,0 +1,89 @@
|
||||
#include "pn0001100.h"
|
||||
|
||||
PAGE "Invio dati contabilita'" -1 -1 78 10
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 2 1 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice "
|
||||
FLAGS "FD"
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_LEN 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Lunghezz codice numerico "
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CodeLen
|
||||
END
|
||||
|
||||
BOOLEAN F_CF
|
||||
BEGIN
|
||||
PROMPT 2 5 "Clienti/Forn."
|
||||
FIELD cf
|
||||
END
|
||||
|
||||
BOOLEAN F_AM
|
||||
BEGIN
|
||||
PROMPT 14 5 "Articoli"
|
||||
FIELD am
|
||||
END
|
||||
|
||||
BOOLEAN F_BC
|
||||
BEGIN
|
||||
PROMPT 26 5 "Barcode"
|
||||
FIELD bc
|
||||
END
|
||||
|
||||
BOOLEAN F_LI
|
||||
BEGIN
|
||||
PROMPT 38 5 "Listini"
|
||||
FIELD li
|
||||
END
|
||||
|
||||
BOOLEAN F_GI
|
||||
BEGIN
|
||||
PROMPT 50 5 "Giacenze"
|
||||
FIELD gi
|
||||
END
|
||||
|
||||
BOOLEAN F_CS
|
||||
BEGIN
|
||||
PROMPT 62 5 "Costi"
|
||||
FIELD cs
|
||||
END
|
||||
|
||||
STRING F_PATH 256 30
|
||||
BEGIN
|
||||
PROMPT 2 6 "Cartella di input "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD DestPath
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -129,7 +129,10 @@ void TStampaProduzionePs0920::main_loop()
|
||||
TCursor & cur = *s.cursor();
|
||||
TReport rep;
|
||||
|
||||
rep.load("OrdineProd.rep");
|
||||
if (m.get_bool(F_PAGEBREAK))
|
||||
rep.load("OrdineProdSP.rep");
|
||||
else
|
||||
rep.load("OrdineProd.rep");
|
||||
const long items = cur.items();
|
||||
|
||||
for (long pos = 0L; pos < items; pos++)
|
||||
|
@ -3,4 +3,5 @@
|
||||
#define F_NUM 102
|
||||
#define F_CODCLI 103
|
||||
#define F_RAGSOC 104
|
||||
#define F_PAGEBREAK 105
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "ps0920100a.h"
|
||||
|
||||
PAGE "Stampa ordini di produzione" -1 -1 80 9
|
||||
PAGE "Stampa ordini di produzione" -1 -1 80 11
|
||||
|
||||
GROUPBOX -1 78 5
|
||||
BEGIN
|
||||
@ -69,6 +69,11 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BOOLEAN F_PAGEBREAK
|
||||
BEGIN
|
||||
PROMPT 4 6 "Salto pagina per ogni scheda"
|
||||
END
|
||||
|
||||
STRING F_PROFILO 70 50
|
||||
BEGIN
|
||||
PROMPT 8 -4 "Profilo "
|
||||
|
@ -261,6 +261,6 @@ TIncassoFatture0003 & app() { return (TIncassoFatture0003&) main_app();}
|
||||
int pt0003100(int argc, char* argv[])
|
||||
{
|
||||
TIncassoFatture0003 a;
|
||||
a.run(argc, argv, "Stampa ordini di produzione");
|
||||
a.run(argc, argv, "Incasso fatture");
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user