Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :Aggiunti check Stampa righi resi e da fatturare, controllo data iniziale. Nella Stampa Giri inserito check Mnemorico e controllo località-comune


git-svn-id: svn://10.65.10.50/trunk@19760 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
lvietri 2009-12-14 08:02:55 +00:00
parent b851d2bc2d
commit 173be8e09a
11 changed files with 274 additions and 169 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<report name="lv2200z" orientation="1" lpi="6" command="lv0 -1 lv2200z"> <report name="LV2200Z" orientation="1" lpi="6" command="lv0 -1 lv2200z">
<description>Stampa Giri Giornaliero</description> <description>Stampa Giri Giornaliero</description>
<font face="Courier New" size="10" /> <font face="Courier New" size="10" />
<section type="Head"> <section type="Head">
@ -106,12 +106,9 @@
</field> </field>
<field border="1" x="13.5" type="Linea" height="4" pattern="1" /> <field border="1" x="13.5" type="Linea" height="4" pattern="1" />
<field x="14" type="Stringa" width="17" height="3" pattern="1"> <field x="14" type="Stringa" width="17" height="3" pattern="1">
<source>303@.RAGSOC</source> <source>IF(#F_CHECK_MNEM='X';303@.RICALT;303@.RAGSOC)</source>
</field> </field>
<field border="1" x="31.37" type="Linea" height="4" pattern="1" /> <field border="1" x="31.37" type="Linea" height="4" pattern="1" />
<field x="31.5" type="Stringa" width="25" height="2" pattern="1">
<source>IF(304@.CODINDSP= "0" ;303@.LOCALITACF;305@.LOCALITA)</source>
</field>
<field border="1" x="56.75" type="Linea" height="4" pattern="1" /> <field border="1" x="56.75" type="Linea" height="4" pattern="1" />
<field x="57" type="Array" align="center" width="9" pattern="1"> <field x="57" type="Array" align="center" width="9" pattern="1">
<source>167.MODPASS</source> <source>167.MODPASS</source>
@ -137,6 +134,18 @@
<source>167.NDOC</source> <source>167.NDOC</source>
</field> </field>
<field border="1" x="0.5" y="4" type="Linea" width="92.4" height="0" pattern="1" /> <field border="1" x="0.5" y="4" type="Linea" width="92.4" height="0" pattern="1" />
<field x="1" y="1" type="Stringa" width="25" height="2" id="1000" pattern="1">
<source>IF(304@.CODINDSP= "0" ;303@.COMCF;305@.COM)</source>
</field>
<field x="1" y="2" type="Stringa" width="25" height="2" id="1001" pattern="1">
<prescript description="B1.1001 PRESCRIPT">MESSAGE _ISAMREAD,COMUNI,COM=#1000,DENCOM</prescript>
</field>
<field x="1" y="3" type="Stringa" width="25" height="2" id="1002" pattern="1">
<source>IF(304@.CODINDSP= "0" ;303@.LOCALITACF;305@.LOCALITA)</source>
</field>
<field x="31.5" type="Stringa" width="25" height="2" id="1003" pattern="1">
<source>IF(#1001="";#1002;#1001)</source>
</field>
</section> </section>
<section type="Foot" /> <section type="Foot" />
<section type="Foot" level="1" /> <section type="Foot" level="1" />

View File

@ -209,6 +209,7 @@ void TGiri_app::elabora(const TMask& mask) const
giri.set_var("#TO_CODAUT",TVariant(mask.get(F_CODAUT_TO))); giri.set_var("#TO_CODAUT",TVariant(mask.get(F_CODAUT_TO)));
giri.set_var("#FROM_CODCF",TVariant(mask.get(F_CODCF_FROM))); giri.set_var("#FROM_CODCF",TVariant(mask.get(F_CODCF_FROM)));
giri.set_var("#TO_CODCF",TVariant(mask.get(F_CODCF_TO))); giri.set_var("#TO_CODCF",TVariant(mask.get(F_CODCF_TO)));
giri.set_var("#F_CHECK_MNEM",TVariant(mask.get(F_CHECK_MNEM_TO)));
TItinerari iti; TItinerari iti;

View File

@ -15,4 +15,5 @@
#define F_RAGSOCCF_FROM 212 #define F_RAGSOCCF_FROM 212
#define F_CODCF_TO 213 #define F_CODCF_TO 213
#define F_RAGSOCCF_TO 214 #define F_RAGSOCCF_TO 214
#define F_CHOICE 215 #define F_CHOICE 215
#define F_CHECK_MNEM_TO 216

View File

@ -1,147 +1,154 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<report name="lv2300a" orientation="2" lpi="6"> <report name="LV2300A" orientation="1" lpi="6" command="lv0 -1 lv2300a">
<description>Stampa Giri Settimanale</description> <description>Stampa Giri</description>
<font face="Courier New" size="10" /> <font face="Courier New" size="10" />
<section type="Head"> <section type="Head">
<field x="1.5" type="Testo" width="12" height="1.5" pattern="1" text="Data elab. :" /> <field y="1" type="Testo" width="12" height="1.5" pattern="1" text="Data elab. :" />
<field x="14" type="Stringa" width="12" height="1.5" pattern="1"> <field x="12.5" y="1" type="Stringa" width="12" height="1.5" pattern="1">
<prescript>MESSAGE _TODAY</prescript> <prescript description="H0.0 PRESCRIPT">MESSAGE _TODAY</prescript>
</field> </field>
<field x="36" type="Testo" align="center" width="45" height="1.5" pattern="1" text="Stampa Giro Settimanale"> <field x="27.5" y="1" type="Testo" align="center" width="45" height="1.5" pattern="1" text="Stampa planning consegna giornaliero">
<font face="Courier New" bold="1" size="12" /> <font face="Courier New" bold="1" size="12" />
</field> </field>
<field x="91.87" y="0.12" type="Testo" width="5" height="1.5" pattern="1" text="Pag." /> <field x="79.87" y="1.12" type="Testo" width="5" height="1.5" pattern="1" text="Pag." />
<field x="97" y="0.12" type="Stringa" width="10" height="1.5" pattern="1"> <field x="85" y="1.12" type="Stringa" width="10" height="1.5" pattern="1">
<prescript>MESSAGE _PAGENO</prescript> <prescript description="H0.0 PRESCRIPT">MESSAGE _PAGENO</prescript>
</field> </field>
</section> </section>
<section type="Head" level="1" /> <section type="Head" level="1" />
<section repeat="1" type="Head" level="2" height="3" page_break="1"> <section type="Head" level="2" height="10" page_break="1">
<groupby>A</groupby> <groupby>DTCONS+CODITI</groupby>
<field x="2" type="Testo" width="10" pattern="1" text="Itinerario:"> <field x="68" y="0.31" type="Array" width="25" height="1.5" pattern="1">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="14" />
<source>167.GGCONS</source>
<list>
<li Value="Luned&#EC;" Code="1" />
<li Value="Marted&#EC;" Code="2" />
<li Value="Mercoled&#EC;" Code="3" />
<li Value="Gioved&#EC;" Code="4" />
<li Value="Venerd&#EC;" Code="5" />
<li Value="Sabato" Code="6" />
<li Value="Domenica" Code="7" />
</list>
</field> </field>
<field x="12" type="Stringa" width="40" pattern="1"> <field x="0.5" y="0.37" type="Numero" align="right" width="10" height="1.5" pattern="1">
<source>A</source> <font face="Courier New" bold="1" size="14" />
<prescript description="H2.0 PRESCRIPT">MESSAGE _ISAMREAD,163,MOD='LV'!COD='ITI'!CODTAB=#THIS,S0</prescript> <source>167.CODITI</source>
</field> </field>
<field x="53" type="Testo" width="8" pattern="1" text="Autista:"> <field x="11.5" y="0.37" type="Stringa" width="50" height="1.5" pattern="1">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="14" />
<source>300@.S0</source>
</field> </field>
<field x="94" type="Testo" width="15" pattern="1" text="Settimana dal:"> <field x="0.5" y="2.24" type="Stringa" width="10" height="1.5" pattern="1">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="14" />
<source>167.CODAUT</source>
</field> </field>
<field x="106.5" type="Stringa" width="12" pattern="1"> <field x="11.5" y="2.24" type="Stringa" width="50" height="1.5" pattern="1">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="14" />
<source>#FROM_DATA</source> <source>301@.S0</source>
</field> </field>
<field x="118.5" type="Testo" width="4" pattern="1" text="al:"> <field x="68" y="2.31" type="Data" width="16" height="1.5" pattern="1">
<font face="Courier New" bold="1" size="8" /> <font face="Courier New" bold="1" size="14" />
<source>DTCONS</source>
</field> </field>
<field x="121" type="Stringa" width="12" pattern="1"> <field border="1" x="0.5" y="4" type="Rettangolo" width="92.5" height="3" pattern="1" />
<font face="Courier New" bold="1" size="8" /> <field border="1" x="51.5" y="4" type="Linea" height="2.95" pattern="1" />
<source>#TO_DATA</source> <field x="72" y="4" type="Linea" height="2.95" pattern="1" />
<field border="1" x="72" y="4" type="Linea" height="2.95" pattern="1" />
<field x="51.5" y="4.06" type="Linea" height="2.95" pattern="1" />
<field x="52" y="4.56" type="Testo" width="13" pattern="1" text="KM. PARTENZA:" />
<field x="72.5" y="4.56" type="Testo" width="13" pattern="1" text="ORA PARTENZA:" />
<field x="1.5" y="4.81" type="Stringa" width="50" pattern="1">
<source>302@.S0</source>
</field> </field>
<field border="1" x="0.5" y="1" type="Rettangolo" width="132.5" height="2" pattern="1" /> <field border="1" x="65" y="5.25" type="Linea" width="6" height="0" pattern="1" />
<field border="1" x="19" y="1" type="Linea" height="2" pattern="1" /> <field border="1" x="86" y="5.25" type="Linea" width="6" height="0" pattern="1" />
<field border="1" x="38" y="1" type="Linea" height="2" pattern="1" /> <field x="1.5" y="5.81" type="Testo" width="7" pattern="1" text="TARGA" />
<field border="1" x="57" y="1" type="Linea" height="2" pattern="1" /> <field x="8.5" y="5.81" type="Stringa" width="40" pattern="1">
<field border="1" x="76" y="1" type="Linea" height="2" pattern="1" /> <source>167.CODMEZ</source>
<field border="1" x="95" y="1" type="Linea" height="2" pattern="1" />
<field border="1" x="114" y="1" type="Linea" height="2" pattern="1" />
<field x="5.5" y="1.5" type="Testo" width="10" pattern="1" text="Lunedi">
<font face="Courier New" bold="1" size="8" />
</field> </field>
<field x="21" y="1.5" type="Testo" width="10" pattern="1" text="Martedi"> <field x="52" y="5.81" type="Testo" width="13" pattern="1" text="KM. ARRIVO :" />
<font face="Courier New" bold="1" size="8" /> <field x="72.5" y="5.81" type="Testo" width="13" pattern="1" text="ORA ARRIVO :" />
</field> <field border="1" x="65" y="6.5" type="Linea" width="6" height="0" pattern="1" />
<field x="41" y="1.5" type="Testo" width="10" pattern="1" text="Mercoledi"> <field border="1" x="86" y="6.5" type="Linea" width="6" height="0" pattern="1" />
<font face="Courier New" bold="1" size="8" /> <field border="1" x="0.5" y="8" type="Rettangolo" width="92.5" height="2" pattern="1" />
</field> <field border="1" x="6.5" y="8" type="Linea" height="1.95" pattern="1" />
<field x="61" y="1.5" type="Testo" width="10" pattern="1" text="Giovedi"> <field x="57" y="8" type="Testo" align="center" width="9" pattern="1" text="MODALITA'" />
<font face="Courier New" bold="1" size="8" /> <field border="1" x="66.25" y="8" type="Linea" height="2" pattern="1" />
</field> <field x="66.5" y="8" type="Testo" width="15" height="1.5" pattern="1" text="BOLLE CONS." />
<field x="81" y="1.5" type="Testo" width="10" pattern="1" text="Venerdi"> <field border="1" x="13.5" y="8.06" type="Linea" height="1.95" pattern="1" />
<font face="Courier New" bold="1" size="8" /> <field border="1" x="31.37" y="8.06" type="Linea" height="1.95" pattern="1" />
</field> <field border="1" x="56.75" y="8.06" type="Linea" height="1.95" pattern="1" />
<field x="101" y="1.5" type="Testo" width="10" pattern="1" text="Sabato"> <field border="1" x="81.5" y="8.06" type="Linea" height="1.95" pattern="1" />
<font face="Courier New" bold="1" size="8" /> <field x="81.75" y="8.06" type="Testo" width="10" pattern="1" text="PROSSIMA" />
</field> <field x="1.12" y="8.31" type="Testo" align="right" width="5" pattern="1" text="FERM." />
<field x="121" y="1.5" type="Testo" width="10" pattern="1" text="Domenica"> <field x="7" y="8.31" type="Testo" align="right" width="6" pattern="1" text="CODICE" />
<font face="Courier New" bold="1" size="8" /> <field x="14.12" y="8.31" type="Testo" width="17" pattern="1" text="RAGIONE SOCIALE " />
</field> <field x="31.5" y="8.31" type="Testo" width="25" pattern="1" text="LOCALITA'" />
<field x="1" y="2" type="Stringa" hidden="1" width="18" id="1000" pattern="1"> <field x="14.12" y="9" type="Testo" width="17" pattern="1" text="CLIENTE" />
<source>A</source> <field x="57" y="9" type="Testo" align="center" width="9" pattern="1" text="PASSAGGIO" />
<prescript description="H2.1000 PRESCRIPT">MESSAGE _ISAMREAD,163,MOD='LV'!COD='ITI'!CODTAB=#THIS,S1</prescript> <field x="81.75" y="9.06" type="Testo" width="10.5" pattern="1" text="CONSEGNA" />
</field> </section>
<field x="60" type="Stringa" width="32" id="2000" pattern="1"> <section type="Body">
<prescript description="H2.2000 PRESCRIPT">MESSAGE _ISAMREAD,163,MOD='LV'!COD='AUT'!CODTAB=H2.1000,S0</prescript> <field y="197" type="Numero" align="right" width="3" pattern="1">
<source>CODITI</source>
</field> </field>
</section> </section>
<section type="Body" /> <section type="Body" level="1">
<section type="Body" level="1" height="2"> <field border="1" x="92.9" y="-0.07" type="Linea" height="4" pattern="1" />
<font face="Courier New" size="8" /> <field border="1" x="0.5" type="Linea" height="4" pattern="1" />
<field border="1" x="0.5" type="Linea" height="2" pattern="1" /> <field x="1" type="Numero" align="right" width="5" pattern="1">
<field border="1" x="19" type="Linea" height="2" pattern="1" /> <source>167.ORDFER</source>
<field border="1" x="38" type="Linea" height="2" pattern="1" />
<field border="1" x="57" type="Linea" height="2" pattern="1" />
<field border="1" x="76" type="Linea" height="2" pattern="1" />
<field border="1" x="95" type="Linea" height="2" pattern="1" />
<field border="1" x="114" type="Linea" height="2" pattern="1" />
<field border="1" x="133" type="Linea" height="2" pattern="1" />
<field x="1" y="0.5" type="Stringa" width="15" pattern="1">
<source>B</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript>
</field> </field>
<field x="16.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1"> <field border="1" x="6.5" type="Linea" height="4" pattern="1" />
<source>C</source> <field x="7" type="Numero" align="right" width="6" pattern="1">
<source>167.CODCF</source>
</field> </field>
<field x="20" y="0.5" type="Stringa" width="15" pattern="1"> <field border="1" x="13.5" type="Linea" height="4" pattern="1" />
<source>E</source> <field x="14" type="Stringa" width="17" height="3" pattern="1">
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript> <source>IF(#F_CHECK_MNEM='X';303@.RICALT;303@.RAGSOC)</source>
</field> </field>
<field x="35.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1"> <field border="1" x="31.37" type="Linea" height="4" pattern="1" />
<source>F</source> <field x="31.5" type="Stringa" width="25" height="2" pattern="1">
<source>IF(304@.CODINDSP= "0" ;IF(303@.COMCF="";303@.LOCALITACF;303@.COMCF);305@.LOCALITA)</source>
</field> </field>
<field x="39" y="0.5" type="Stringa" width="15" pattern="1"> <field border="1" x="56.75" type="Linea" height="4" pattern="1" />
<source>H</source> <field x="57" type="Array" align="center" width="9" pattern="1">
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript> <source>167.MODPASS</source>
<list>
<li Value="ENTRAMBI" Code=" " />
<li Value="ENTRAMBI" Code="E" />
<li Value="CONSEGNA" Code="C" />
<li Value="RITIRO" Code="R" />
</list>
</field> </field>
<field x="54.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1"> <field border="1" x="66.25" type="Linea" height="4" pattern="1" />
<source>I</source> <field x="66.5" type="Stringa" width="15" pattern="1">
<source>167.CODNUM</source>
</field> </field>
<field x="58" y="0.5" type="Stringa" width="15" pattern="1"> <field border="1" x="81.5" type="Linea" height="4" pattern="1" />
<source>K</source> <field x="81.75" type="Stringa" width="10" pattern="1">
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript> <source>#NEXTCONS</source>
</field> </field>
<field x="73.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1"> <field x="31.5" y="2" type="Stringa" width="25" height="2" pattern="1">
<source>L</source> <source>IF(304@.CODINDSP= "0";303@.INDCF;305@.INDIR)</source>
</field> </field>
<field x="77" y="0.5" type="Stringa" width="15" pattern="1"> <field x="66.5" y="2" type="Numero" align="right" width="13" pattern="1" hide_zero="1">
<source>N</source> <source>167.NDOC</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript>
</field>
<field x="92.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1">
<source>O</source>
</field>
<field x="96" y="0.5" type="Stringa" width="15" pattern="1">
<source>Q</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript>
</field>
<field x="111.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1">
<source>R</source>
</field>
<field x="115" y="0.5" type="Stringa" width="15" pattern="1">
<source>T</source>
<prescript description="B1.0 PRESCRIPT">MESSAGE _ISAMREAD,CLIFO,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript>
</field>
<field x="130.5" y="0.5" type="Numero" align="right" width="2" pattern="1" hide_zero="1">
<source>U</source>
</field> </field>
<field border="1" x="0.5" y="4" type="Linea" width="92.4" height="0" pattern="1" />
</section> </section>
<section type="Foot" /> <section type="Foot" />
<section type="Foot" level="1" /> <section type="Foot" level="1" />
<section type="Foot" level="2"> <section type="Foot" level="2" />
<field border="2" x="0.5" y="0.01" type="Linea" width="132.5" height="0" pattern="1" /> <sql>USE 167 KEY 2
</section> SELECT BETWEEN (CODITI, #FROM_CODITI, #TO_CODITI) &#26;&#26; BETWEEN (CODAUT, #FROM_CODAUT,#TO_CODAUT) &#26;&#26; BETWEEN(CODCF,#FROM_CODCF,#TO_CODCF)
JOIN &#26;ITI ALIAS 300 INTO CODTAB==CODITI
JOIN &#26;AUT TO 167 ALIAS 301 INTO CODTAB==CODAUT
JOIN &#26;MEZ TO 167 ALIAS 302 INTO CODTAB==CODMEZ
JOIN 20 TO 167 ALIAS 303 INTO TIPOCF=="C" CODCF==CODCF
JOIN 168 TO 167 ALIAS 304 INTO CODCONT==CODCONT CODCF==CODCF
JOIN 16 TO 168 ALIAS 305 INTO TIPOCF=="C" CODCF==CODCF CODIND==CODINDSP
FROM DTCONS=#FROM_DATA
TO DTCONS=#TO_DATA</sql>
</report> </report>

View File

@ -176,6 +176,12 @@ BEGIN
FLAGS "U" FLAGS "U"
END END
BOOLEAN F_CHECK_MNEM_TO
BEGIN
PROMPT 2 18 "Utilizza Mnemorico (Ricerca Alt.)"
FIELD #F_CHECK_MNEM
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -47,6 +47,17 @@ public:
bool TRiepBolle_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TRiepBolle_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch (o.dlg())
{
case F_DATA_DA:
if (e == fe_init)
{
TDate oggi(TODAY);
oggi.set_day(1);
o.set (oggi.string());
}
default: break;
}
return true; return true;
} }
@ -61,10 +72,10 @@ class TRiepBolle_app: public TSkeleton_application
protected: protected:
virtual void main_loop(); virtual void main_loop();
void elabora(const TMask& mask) const; void elabora(const TMask& mask) const;
TString getQuery(bool isArticolo) const; TString getQuery(bool isArticolo,const TMask& mask) const;
}; };
TString TRiepBolle_app::getQuery(bool isArticolo) const TString TRiepBolle_app::getQuery(bool isArticolo,const TMask& mask) const
{ {
/* /*
RICHIESTA QUERY: RICHIESTA QUERY:
@ -81,15 +92,23 @@ TString TRiepBolle_app::getQuery(bool isArticolo) const
*/ */
//Stringhe x composizione query //Stringhe x composizione query
TString query, select, between, orderBy, join, from_, to_; TString query, select, between, orderBy, join;
//Richiamo parametri della ditta di configurazione //Richiamo parametri della ditta di configurazione
//file Ditta.ini //file Ditta.ini
const TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN"); //const TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN");
const TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN"); const TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN");
select << "USE RDOC KEY 1\n"; select << "USE RDOC KEY 1\n";
select << "SELECT ((2000@.B2!='X')&&(3000@.S2[37,38] ='+1')&&(DOC.TIPODOC='" << tipodoc << "')&&"; select << "SELECT ((DOC.TIPODOC='" << tipodoc << "')&&";
if(!mask.get_bool(F_CHECK_NO_RESI)){
select << "(2000@.B2!='X')&&";
}
if(mask.get_bool(F_CHECK_FATT)){
select << "(3000@.S2[37,38] ='+1')&&";
}
between << "(BETWEEN(DOC.ZONA,#F_ZONA_FROM,#F_ZONA_FROM))&&(BETWEEN(DOC.DATADOC,#F_DATA_FROM,#F_DATA_TO))&&(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO)))\n"; between << "(BETWEEN(DOC.ZONA,#F_ZONA_FROM,#F_ZONA_FROM))&&(BETWEEN(DOC.DATADOC,#F_DATA_FROM,#F_DATA_TO))&&(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO)))\n";
if(isArticolo) if(isArticolo)
@ -98,13 +117,18 @@ TString TRiepBolle_app::getQuery(bool isArticolo) const
orderBy << "BY DOC.CODCF DOC.DATADOC NDOC\n"; orderBy << "BY DOC.CODCF DOC.DATADOC NDOC\n";
join << "JOIN DOC TO RDOC ALIAS 1000 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC\n"; join << "JOIN DOC TO RDOC ALIAS 1000 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC\n";
join << "JOIN &LVCAU TO RDOC ALIAS 2000 INTO CODTAB==CODAGG1\n";
join << "JOIN %CAU TO &LVCAU ALIAS 3000 INTO CODTAB==S2\n"; if(!mask.get_bool(F_CHECK_NO_RESI)){
join << "JOIN &LVCAU TO RDOC ALIAS 2000 INTO CODTAB==CODAGG1\n";
}
if(mask.get_bool(F_CHECK_FATT)){
join << "JOIN %CAU TO &LVCAU ALIAS 3000 INTO CODTAB==S2\n";
}
from_ << "FROM CODNUM='" << codnum << "'\n"; //from_ << "FROM CODNUM='" << codnum << "'\n";
to_ << "TO CODNUM='" << codnum << "'"; //to_ << "TO CODNUM='" << codnum << "'";
query << select << between << orderBy << join << from_ << to_; query << select << between << orderBy << join;
return query; return query;
} }
@ -139,7 +163,7 @@ void TRiepilogoData::add(int posizione,int cliente, TDate dataDoc, int numeroDoc
void TRiepBolle_app:: elabora(const TMask& mask)const void TRiepBolle_app:: elabora(const TMask& mask)const
{ {
TISAM_recordset riep(getQuery(true)); TISAM_recordset riep(getQuery(true,mask));
//inserire parametri filtri //inserire parametri filtri
riep.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA)); riep.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA));
@ -198,7 +222,7 @@ void TRiepBolle_app:: elabora(const TMask& mask)const
{ {
//Per ogni cliente creo una struttura di date. è necessario //Per ogni cliente creo una struttura di date. è necessario
//per il report. //per il report.
TISAM_recordset dateDocAll(getQuery(false)); TISAM_recordset dateDocAll(getQuery(false,mask));
//inserire parametri filtri //inserire parametri filtri
dateDocAll.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA)); dateDocAll.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA));

View File

@ -1,9 +1,11 @@
//Stampa Riepilogo Bolle di Lavanderie //Stampa Riepilogo Bolle di Lavanderie
#define F_CODCF_DA 203 #define F_CODCF_DA 203
#define F_RAGSOC_DA 204 #define F_RAGSOC_DA 204
#define F_CODCF_A 205 #define F_CODCF_A 205
#define F_RAGSOC_A 206 #define F_RAGSOC_A 206
#define F_DATA_DA 207 #define F_DATA_DA 207
#define F_DATA_A 208 #define F_DATA_A 208
#define F_ZONA 209 #define F_ZONA 209
#define F_DESZONA 210 #define F_DESZONA 210
#define F_CHECK_NO_RESI 211
#define F_CHECK_FATT 212

View File

@ -75,7 +75,6 @@ END
DATE F_DATA_DA DATE F_DATA_DA
BEGIN BEGIN
PROMPT 2 6 "Da Data " PROMPT 2 6 "Da Data "
FLAGS "A"
FIELD #F_DATA_FROM FIELD #F_DATA_FROM
END END
@ -117,6 +116,18 @@ BEGIN
OUTPUT F_DESZONA S0 OUTPUT F_DESZONA S0
END END
BOOLEAN F_CHECK_NO_RESI
BEGIN
PROMPT 2 12 "Stampo tutti i righi incluso i resi "
FIELD #F_CHECK_NO_RESI_TO
END
BOOLEAN F_CHECK_FATT
BEGIN
PROMPT 2 14 "Stampo solo i righi da fatturare "
FIELD #F_CHECK_FATT_TO
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -39,6 +39,17 @@ public:
bool TVend_cli_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TVend_cli_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
switch (o.dlg())
{
case F_DATA_DA:
if (e == fe_init)
{
TDate oggi(TODAY);
oggi.set_day(1);
o.set (oggi.string());
}
default: break;
}
return true; return true;
} }
@ -53,35 +64,53 @@ class TVend_cli_app: public TSkeleton_application
protected: protected:
virtual void main_loop(); virtual void main_loop();
void elabora(const TMask& mask) const; void elabora(const TMask& mask) const;
TString getQuery() const; TString getQuery(const TMask& mask) const;
bool ctl(TDate dataInizio, bool ctl(TDate dataInizio,
TDate dataFine, TDate dataFine,
bool isAnno) const; bool isAnno) const;
bool erroreBox(TString aMsg) const; bool erroreBox(TString aMsg) const;
}; };
TString TVend_cli_app::getQuery() const TString TVend_cli_app::getQuery(const TMask& mask) const
{ {
//Stringhe x composizione query //Stringhe x composizione query
TString query, select, between, orderBy, join, from , to; TString query, select, between, orderBy, join;
//Richiamo parametri della ditta di configurazione file Ditta.ini
//andare su bolle senza numeratore
//const TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_FAT");
//const TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_FAT");
const TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN");
//Richiamo parametri della ditta di configurazione
//file Ditta.ini
const TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_FAT");
const TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_FAT");
select << "USE RDOC KEY 1\n"; select << "USE RDOC KEY 1\n";
select << "SELECT ((DOC.TIPODOC='" << tipodoc << "')&&"; select << "SELECT ((DOC.TIPODOC='" << tipodoc << "')&&";
if(!mask.get_bool(F_CHECK_NO_RESI)){
select << "(2000@.B2!='X')&&";
}
if(mask.get_bool(F_CHECK_FATT)){
select << "(3000@.S2[37,38] ='+1')&&";
}
between << "(BETWEEN(DOC.ZONA,#F_ZONA_FROM,#F_ZONA_FROM))"; between << "(BETWEEN(DOC.ZONA,#F_ZONA_FROM,#F_ZONA_FROM))";
between << "&&(BETWEEN(CODART,#F_CODART_FROM,#F_CODART_TO))"; between << "&&(BETWEEN(CODART,#F_CODART_FROM,#F_CODART_TO))";
between << "&&(BETWEEN(DOC.DATADOC,#F_DATA_FROM,#F_DATA_TO))"; between << "&&(BETWEEN(DOC.DATADOC,#F_DATA_FROM,#F_DATA_TO))";
between << "&&(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO)))\n"; between << "&&(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO)))\n";
orderBy << "BY DOC.CODCF CODART DOC.DATADOC NDOC\n"; orderBy << "BY DOC.CODCF CODART DOC.DATADOC NDOC\n";
join << "JOIN DOC TO RDOC ALIAS 1000 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC\n"; join << "JOIN DOC TO RDOC ALIAS 1000 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC\n";
from << "FROM CODNUM='" << codnum << "'\n";
to << "TO CODNUM='" << codnum << "'"; if(!mask.get_bool(F_CHECK_NO_RESI)){
join << "JOIN &LVCAU TO RDOC ALIAS 2000 INTO CODTAB==CODAGG1\n";
}
if(mask.get_bool(F_CHECK_FATT)){
join << "JOIN %CAU TO &LVCAU ALIAS 3000 INTO CODTAB==S2\n";
}
query << select << between << orderBy << join << from << to; query << select << between << orderBy << join;
return query; return query;
} }
@ -148,7 +177,7 @@ void TVend_cli_app:: elabora(const TMask& mask)const
mask.get_date(F_DATA_A), mask.get_date(F_DATA_A),
mask.get_bool(F_CHECK_ANNO))) mask.get_bool(F_CHECK_ANNO)))
{ {
TISAM_recordset riep(getQuery()); TISAM_recordset riep(getQuery(mask));
TDate dataDa = mask.get_date(F_DATA_DA); TDate dataDa = mask.get_date(F_DATA_DA);
TDate dataA = mask.get_date(F_DATA_A); TDate dataA = mask.get_date(F_DATA_A);
@ -174,6 +203,8 @@ void TVend_cli_app:: elabora(const TMask& mask)const
riep.set_var("#F_CHECK_ANNO_TO",TVariant(mask.get(F_CHECK_ANNO))); riep.set_var("#F_CHECK_ANNO_TO",TVariant(mask.get(F_CHECK_ANNO)));
riep.set_var("#F_CODART_FROM",TVariant(mask.get(F_CODART_FROM))); riep.set_var("#F_CODART_FROM",TVariant(mask.get(F_CODART_FROM)));
riep.set_var("#F_CODART_TO",TVariant(mask.get(F_CODART_TO))); riep.set_var("#F_CODART_TO",TVariant(mask.get(F_CODART_TO)));
riep.set_var("#F_CHECK_NO_RESI_TO",TVariant(mask.get(F_CHECK_NO_RESI)));
riep.set_var("#F_CHECK_FATT_TO",TVariant(mask.get(F_CHECK_FATT)));
TRiepVendCli riepilogo; TRiepVendCli riepilogo;

View File

@ -1,15 +1,17 @@
//Stampa Venduto Per Cliente nei 12 Mesi //Stampa Venduto Per Cliente nei 12 Mesi
#define F_CODCF_DA 203 #define F_CODCF_DA 203
#define F_RAGSOC_DA 204 #define F_RAGSOC_DA 204
#define F_CODCF_A 205 #define F_CODCF_A 205
#define F_RAGSOC_A 206 #define F_RAGSOC_A 206
#define F_DATA_DA 207 #define F_DATA_DA 207
#define F_DATA_A 208 #define F_DATA_A 208
#define F_ANNO 209 #define F_ANNO 209
#define F_CHECK_ANNO 210 #define F_CHECK_ANNO 210
#define F_CODART_FROM 211 #define F_CODART_FROM 211
#define F_DESART_FROM 212 #define F_DESART_FROM 212
#define F_CODART_TO 213 #define F_CODART_TO 213
#define F_DESART_TO 214 #define F_DESART_TO 214
#define F_ZONA 215 #define F_ZONA 215
#define F_DESZONA 216 #define F_DESZONA 216
#define F_CHECK_NO_RESI 217
#define F_CHECK_FATT 218

View File

@ -75,7 +75,6 @@ END
DATE F_DATA_DA DATE F_DATA_DA
BEGIN BEGIN
PROMPT 2 6 "Da Data " PROMPT 2 6 "Da Data "
FLAGS "A"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD #F_DATA_FROM FIELD #F_DATA_FROM
GROUP 1 GROUP 1
@ -192,6 +191,18 @@ BEGIN
OUTPUT F_DESZONA S0 OUTPUT F_DESZONA S0
END END
BOOLEAN F_CHECK_NO_RESI
BEGIN
PROMPT 2 16 "Stampo tutti i righi incluso i resi "
FIELD #F_CHECK_NO_RESI_TO
END
BOOLEAN F_CHECK_FATT
BEGIN
PROMPT 2 18 "Stampo solo i righi da fatturare "
FIELD #F_CHECK_FATT_TO
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK