Patch level : 10.0

Files correlati     : lv2.exe lv2700a.rep lv2700a.msk
Ricompilazione Demo : [ ]
Commento            :
Corretta stampa riepilogo bolle


git-svn-id: svn://10.65.10.50/trunk@19910 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-01-12 16:25:56 +00:00
parent 70c1ab9ead
commit 14ea969dc6
3 changed files with 139 additions and 144 deletions

View File

@ -1,6 +1,7 @@
#include <applicat.h> #include <applicat.h>
#include <automask.h> #include <automask.h>
#include <config.h> #include <config.h>
#include <progind.h>
#include <reprint.h> #include <reprint.h>
#include <textset.h> #include <textset.h>
@ -18,20 +19,20 @@ struct TStruttura: public TObject
TString _articolo; TString _articolo;
TString _descr; TString _descr;
TDate _dataDoc; TDate _dataDoc;
int _numeroDoc; long _numeroDoc;
long _qta; long _qta;
TStruttura():_cliente(0),_articolo(""),_descr(""),_dataDoc(""),_numeroDoc(0),_qta(0) {} TStruttura():_cliente(0),_numeroDoc(0),_qta(0) {}
TStruttura(long cliente, TString articolo, TString descr, TStruttura(long cliente, const TString& articolo, const TString& descr,
TDate dataDoc, int numeroDoc, long qta):_cliente(cliente),_articolo(articolo),_descr(descr),_dataDoc(dataDoc),_numeroDoc(numeroDoc),_qta(qta) {} TDate dataDoc, int numeroDoc, long qta):_cliente(cliente),_articolo(articolo),_descr(descr),_dataDoc(dataDoc),_numeroDoc(numeroDoc),_qta(qta) {}
}; };
struct TStrutturaData: public TObject struct TStrutturaData: public TObject
{ {
TDate _dataDoc; TDate _dataDoc;
int _numeroDoc; long _numeroDoc;
int _cliente; long _cliente;
int _posizione; int _posizione;
TStrutturaData():_cliente(0),_dataDoc(""),_numeroDoc(0),_posizione(0) {} TStrutturaData():_cliente(0),_numeroDoc(0),_posizione(0) {}
TStrutturaData(int posizione, int cliente, TStrutturaData(int posizione, int cliente,
TDate dataDoc, int numeroDoc):_posizione(posizione), _dataDoc(dataDoc),_numeroDoc(numeroDoc) {} TDate dataDoc, int numeroDoc):_posizione(posizione), _dataDoc(dataDoc),_numeroDoc(numeroDoc) {}
}; };
@ -50,12 +51,13 @@ bool TRiepBolle_mask::on_field_event(TOperable_field& o, TField_event e, long jo
switch (o.dlg()) switch (o.dlg())
{ {
case F_DATA_DA: case F_DATA_DA:
if (e == fe_init) if (e == fe_init && o.empty())
{ {
TDate oggi(TODAY); TDate oggi(TODAY);
oggi.set_day(1); oggi.set_day(1);
o.set (oggi.string()); o.set(oggi.string());
} }
break;
default: break; default: break;
} }
return true; return true;
@ -72,10 +74,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 TMask& mask) const; TString get_query(bool isArticolo,const TMask& mask) const;
}; };
TString TRiepBolle_app::getQuery(bool isArticolo,const TMask& mask) const TString TRiepBolle_app::get_query(bool isArticolo,const TMask& mask) const
{ {
/* /*
RICHIESTA QUERY: RICHIESTA QUERY:
@ -94,8 +96,7 @@ TString TRiepBolle_app::getQuery(bool isArticolo,const TMask& mask) const
//Stringhe x composizione query //Stringhe x composizione query
TString query, select, between, orderBy, join; 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");
@ -109,21 +110,19 @@ TString TRiepBolle_app::getQuery(bool isArticolo,const TMask& mask) const
select << "(3000@.S2[37,38] ='+1')&&"; 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))&&(STR(BETWEEN(DOC.CODCF,#F_CODCF_FROM,#F_CODCF_TO))))\n";
if(isArticolo) if(isArticolo)
orderBy << "BY DOC.CODCF CODART DOC.DATADOC NDOC\n"; orderBy << "BY DOC.CODCF CODART DOC.DATADOC NDOC\n";
else else
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";
if(!mask.get_bool(F_CHECK_NO_RESI)){ if (!mask.get_bool(F_CHECK_NO_RESI))
join << "JOIN &LVCAU TO RDOC ALIAS 2000 INTO CODTAB==CODAGG1\n"; join << "JOIN &LVCAU TO RDOC ALIAS 2000 INTO CODTAB==CODAGG1\n";
} if (mask.get_bool(F_CHECK_FATT))
if(mask.get_bool(F_CHECK_FATT)){
join << "JOIN %CAU TO &LVCAU ALIAS 3000 INTO CODTAB==S2\n"; 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 << "'";
@ -136,26 +135,24 @@ TString TRiepBolle_app::getQuery(bool isArticolo,const TMask& mask) const
class TRiepilogo: public TArray class TRiepilogo: public TArray
{ {
public: public:
void add(int count,long cliente, TString articolo, TString descr, void add(int count,long cliente, const TString& articolo, const TString& descr,
TDate dataDoc, int numeroDoc, long qta); const TDate& dataDoc, long numeroDoc, long qta);
TRiepilogo():TArray(9){}
}; };
class TRiepilogoData: public TArray class TRiepilogoData: public TArray
{ {
public: public:
void add(int posizione,int cliente, TDate dataDoc, int numeroDoc); void add(int posizione, long cliente, const TDate& dataDoc, long numeroDoc);
TRiepilogoData():TArray(){}
}; };
void TRiepilogo::add(int count,long cliente, TString articolo, TString descr, void TRiepilogo::add(int count,long cliente, const TString& articolo, const TString& descr,
TDate dataDoc, int numeroDoc, long qta) const TDate& dataDoc, long numeroDoc, long qta)
{ {
TStruttura* struttura = new TStruttura(cliente,articolo, descr,dataDoc,numeroDoc,qta); TStruttura* struttura = new TStruttura(cliente,articolo, descr,dataDoc,numeroDoc,qta);
TArray::add(struttura,count); TArray::add(struttura,count);
} }
void TRiepilogoData::add(int posizione,int cliente, TDate dataDoc, int numeroDoc) void TRiepilogoData::add(int posizione, long cliente, const TDate& dataDoc, long numeroDoc)
{ {
TStrutturaData* strutturaData = new TStrutturaData(posizione,cliente, dataDoc,numeroDoc); TStrutturaData* strutturaData = new TStrutturaData(posizione,cliente, dataDoc,numeroDoc);
TArray::add(strutturaData,posizione); TArray::add(strutturaData,posizione);
@ -163,88 +160,87 @@ 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,mask)); TRiepilogo riepilogo;
//inserire parametri filtri
riep.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA));
riep.set_var("#F_DATA_TO",mask.get_date(F_DATA_A));
riep.set_var("#F_CODCF_FROM",TVariant(mask.get(F_CODCF_DA)));
riep.set_var("#F_CODCF_TO",TVariant(mask.get(F_CODCF_A)));
riep.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA)));
TRiepilogo riepilogo;
TRiepilogoData riepilogoData;
TRiepilogoData riepilogoData2;
int count = 1;
for(bool ok = riep.move_first();ok;ok=riep.move_next())
{ {
TDate dataDoc = riep.get("DOC.DATADOC").as_date(); TISAM_recordset riep(get_query(true,mask));
long cliente = riep.get("DOC.CODCF").as_int();
TString articolo = riep.get("CODART").as_string();
TString descr = riep.get("DESCR").as_string();
int numeroDoc = riep.get("NDOC").as_int();
long qta = riep.get("QTA").as_int();
riepilogo.add(count,cliente,articolo,descr,dataDoc,numeroDoc,qta); //inserire parametri filtri
count++; riep.set_var("#F_DATA_FROM",mask.get_date(F_DATA_DA));
riep.set_var("#F_DATA_TO",mask.get_date(F_DATA_A));
riep.set_var("#F_CODCF_FROM",mask.get_long(F_CODCF_DA));
riep.set_var("#F_CODCF_TO",mask.get_long(F_CODCF_A));
riep.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA)));
TProgind pi(riep.items(), TR("Estrazione articoli"), true, true);
int count = 1;
for(bool ok = riep.move_first(); ok && pi.addstatus(1); ok=riep.move_next())
{
const TDate dataDoc = riep.get("DOC.DATADOC").as_date();
const long cliente = riep.get("DOC.CODCF").as_int();
const TString articolo = riep.get("CODART").as_string();
const TString descr = riep.get("DESCR").as_string();
const long numeroDoc = riep.get("NDOC").as_int();
const long qta = riep.get("QTA").as_int();
riepilogo.add(count,cliente,articolo,descr,dataDoc,numeroDoc,qta);
count++;
}
} }
TRiepBolle_report rep;
TRiepBolle_report rep;
bool stampa = rep.load("lv2700a"); bool stampa = rep.load("lv2700a");
TRiepBolle_recordset* riep_set = new TRiepBolle_recordset(); TRiepBolle_recordset* riep_set = new TRiepBolle_recordset();
rep.set_recordset(riep_set); rep.set_recordset(riep_set);
int clienteOld = 0; long clienteOld = 0;
TString articoloOld; TString articoloOld;
int contatore = 0; int contatore = 0;
FOR_EACH_ARRAY_ITEM(riepilogo,c,obj)//scandisce clienti e tiene TRiepilogoData riepilogoData, riepilogoData2;
//buoni solo quelli valorizzati
{
TStruttura& s = *(TStruttura*) obj;
if(clienteOld!=s._cliente || TProgind pi(riepilogo.items(), TR("Estrazione documenti"), true, true);
articoloOld!=s._articolo) FOR_EACH_ARRAY_ITEM(riepilogo, c, obj)//scandisce clienti e tiene buoni solo quelli valorizzati
{
if (!pi.addstatus(1))
break;
const TStruttura& s = *(TStruttura*)obj;
if (clienteOld!=s._cliente || articoloOld!=s._articolo)
{ {
riep_set->new_rec(); riep_set->new_rec();
riep_set->set(0,TVariant(long (s._cliente)));//CAMPO DI ROTTURA riep_set->set(0, TVariant(s._cliente)); //CAMPO DI ROTTURA
riep_set->set(1,TVariant(long (s._cliente))); riep_set->set(1, TVariant(s._cliente));
riep_set->set(2,TVariant(s._articolo)); riep_set->set(2, TVariant(s._articolo));
riep_set->set(3,TVariant(s._descr)); riep_set->set(3, TVariant(s._descr));
contatore=4; contatore = 4;
if (clienteOld != s._cliente)
if(clienteOld!=s._cliente)
{ {
//Per ogni cliente creo una struttura di date. è necessario riepilogoData.destroy();
//per il report. riepilogoData2.destroy();
TISAM_recordset dateDocAll(getQuery(false,mask));
//Per ogni cliente creo una struttura di date. è necessario per il report.
TISAM_recordset dateDocAll(get_query(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));
dateDocAll.set_var("#F_DATA_TO",mask.get_date(F_DATA_A)); dateDocAll.set_var("#F_DATA_TO", mask.get_date(F_DATA_A));
dateDocAll.set_var("#F_CODCF_FROM",TVariant(long (s._cliente))); dateDocAll.set_var("#F_CODCF_FROM", s._cliente);
dateDocAll.set_var("#F_CODCF_TO",TVariant(long (s._cliente))); dateDocAll.set_var("#F_CODCF_TO", s._cliente);
dateDocAll.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA))); dateDocAll.set_var("#F_ZONA_FROM", TVariant(mask.get(F_ZONA)));
TDate dateOld; TDate dateOld;
int numeroOld=0; long numeroOld = 0;
int cliente=0; long cliente = 0;
int posizione = 4; int posizione = 4;
for(bool ok = dateDocAll.move_first();ok;ok=dateDocAll.move_next()) for (bool ok = dateDocAll.move_first(); ok; ok=dateDocAll.move_next())
{ {
TDate dataDocTot = dateDocAll.get("DOC.DATADOC").as_date(); TDate dataDocTot = dateDocAll.get("DOC.DATADOC").as_date();
int numeroDocTot = dateDocAll.get("NDOC").as_int(); long numeroDocTot = dateDocAll.get("NDOC").as_int();
int clientDocTot = dateDocAll.get("DOC.CODCF").as_int(); long clientDocTot = dateDocAll.get("DOC.CODCF").as_int();
if (dateOld != dataDocTot || numeroOld != numeroDocTot || cliente != clientDocTot)
if(dateOld !=dataDocTot ||
numeroOld !=numeroDocTot ||
cliente!=clientDocTot )
{ {
dateOld=dataDocTot; dateOld=dataDocTot;
numeroOld=numeroDocTot; numeroOld=numeroDocTot;
@ -260,7 +256,6 @@ void TRiepBolle_app:: elabora(const TMask& mask)const
articoloOld=s._articolo; articoloOld=s._articolo;
} }
FOR_EACH_ARRAY_ITEM(riepilogoData,f,obj) FOR_EACH_ARRAY_ITEM(riepilogoData,f,obj)
{ {
TStrutturaData& sD = *(TStrutturaData*) obj; TStrutturaData& sD = *(TStrutturaData*) obj;
@ -268,20 +263,19 @@ void TRiepBolle_app:: elabora(const TMask& mask)const
//ogni primo record riporto come titolo tutte le date-numero //ogni primo record riporto come titolo tutte le date-numero
if(contatore==4) if(contatore==4)
{ {
// Imposta data e numero documento, mentre azzera la qta
FOR_EACH_ARRAY_ITEM(riepilogoData2,f,obj) FOR_EACH_ARRAY_ITEM(riepilogoData2,f,obj)
{ {
TStrutturaData& sD2 = *(TStrutturaData*) obj; TStrutturaData& sD2 = *(TStrutturaData*) obj;
int contatore2 = sD2._posizione; int contatore2 = sD2._posizione;
TString tt = sD2._dataDoc; TString8 ggmm; ggmm.format("%02d-%02d", sD2._dataDoc.day(), sD2._dataDoc.month());
TString tt2 = tt.sub(0,5);
riep_set->set(contatore2,TVariant(tt2)); riep_set->set(contatore2, ggmm); // data doc.
contatore2++; contatore2++;
riep_set->set(contatore2,TVariant(long (sD2._numeroDoc))); riep_set->set(contatore2, sD2._numeroDoc); // num. doc.
contatore2++; contatore2++;
riep_set->set(contatore2,TVariant(long (0))); riep_set->set(contatore2, NULL_VARIANT); // qta
contatore2++; contatore2++;
} }
} }
@ -291,17 +285,17 @@ void TRiepBolle_app:: elabora(const TMask& mask)const
{ {
contatore = sD._posizione; contatore = sD._posizione;
TString tt = s._dataDoc; TString8 tt2;
TString tt2 = tt.sub(0,5); tt2.format("%02d-%02d", s._dataDoc.day(), s._dataDoc.month());
riep_set->set(contatore,TVariant(tt2)); riep_set->set(contatore, tt2);
contatore++; contatore++;
riep_set->set(contatore,TVariant(long (s._numeroDoc))); riep_set->set(contatore,s._numeroDoc);
contatore++; contatore++;
riep_set->set(contatore,TVariant(long (s._qta))); const long qta = riep_set->get(contatore).as_int() + s._qta;
riep_set->set(contatore,qta);
contatore++; contatore++;
TArray* p = (TArray*) obj; TArray* p = (TArray*) obj;
int e = p->size(); int e = p->size();
e=e+1; e=e+1;
@ -312,7 +306,6 @@ void TRiepBolle_app:: elabora(const TMask& mask)const
riep_set->set(contatore,TVariant(long (0))); riep_set->set(contatore,TVariant(long (0)));
contatore++; contatore++;
} }
break; break;
} }
else else
@ -321,13 +314,14 @@ void TRiepBolle_app:: elabora(const TMask& mask)const
contatore++; contatore++;
riep_set->set(contatore,TVariant(long (0))); riep_set->set(contatore,TVariant(long (0)));
contatore++; contatore++;
} }
} }
} }
//Crea file che contiene il recordset #ifdef DBG
//riep_set->save_as("c:\\riepilogoBolla.txt"); //Crea file che contiene il recordset per debug
riep_set->save_as("c:/temp/riepilogoBolla.txt");
#endif
if(stampa) if(stampa)
{ {
@ -358,6 +352,6 @@ void TRiepBolle_app::main_loop()
int lv2700(int argc, char* argv[]) int lv2700(int argc, char* argv[])
{ {
TRiepBolle_app app; TRiepBolle_app app;
app.run(argc, argv, TR("Stampa Riepilogo Bolle di Lavanderia")); app.run(argc, argv, TR("Riepilogo Bolle di Lavanderia"));
return 0; return 0;
} }

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<report name="lv2700a" orientation="2" lpi="6"> <report name="lv2700a" orientation="2" lpi="6">
<description>Stampa Riepilogo Bolle di Lavanderia</description> <description>Riepilogo Bolle di Lavanderia</description>
<font face="Courier New" size="7" /> <font face="Courier New" size="7" />
<section type="Head"> <section type="Head">
<field x="3" type="Testo" width="12" height="1.5" pattern="1" text="Data elab. :" /> <field x="3" type="Testo" width="12" height="1.5" pattern="1" text="Data elab. :" />
<field x="15.5" type="Stringa" width="15" pattern="1"> <field x="15.5" type="Stringa" width="15" pattern="1">
<prescript description="H0.0 PRESCRIPT">MESSAGE _TODAY</prescript> <prescript description="H0.0 PRESCRIPT">MESSAGE _TODAY</prescript>
</field> </field>
<field x="35.5" type="Testo" align="center" width="70" height="1.5" pattern="1" text="Stampa Riepilogo Bolle di Lavanderia"> <field x="35.5" type="Testo" align="center" width="70" height="1.5" pattern="1" text="Riepilogo Bolle di Lavanderia">
<font face="Courier New" bold="1" size="12" /> <font face="Courier New" bold="1" size="12" />
</field> </field>
<field x="113.37" y="0.12" type="Testo" width="5" height="1.5" pattern="1" text="Pag." /> <field x="113.37" y="0.12" type="Testo" width="5" height="1.5" pattern="1" text="Pag." />
@ -26,15 +26,15 @@
</field> </field>
<field x="18.5" type="Stringa" width="40" pattern="1"> <field x="18.5" type="Stringa" width="40" pattern="1">
<source>B</source> <source>B</source>
<prescript description="H2.0 PRESCRIPT">MESSAGE _ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript> <prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,RAGSOC</prescript>
</field> </field>
<field x="59" type="Stringa" width="40" pattern="1"> <field x="59" type="Stringa" width="40" pattern="1">
<source>B</source> <source>B</source>
<prescript description="H2.0 PRESCRIPT">MESSAGE _ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,INDCF</prescript> <prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,INDCF</prescript>
</field> </field>
<field x="101" type="Stringa" width="40" pattern="1"> <field x="101" type="Stringa" width="40" pattern="1">
<source>B</source> <source>B</source>
<prescript description="H2.0 PRESCRIPT">MESSAGE _ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,LOCALITACF</prescript> <prescript description="H2.0 PRESCRIPT">MESSAGE ISAMREAD,20,TIPOCF='C'!CODCF=#THIS,LOCALITACF</prescript>
</field> </field>
<field border="1" y="1.5" type="Linea" width="192" height="0" pattern="1" /> <field border="1" y="1.5" type="Linea" width="192" height="0" pattern="1" />
<field x="50" y="1.75" type="Stringa" align="right" width="5" pattern="1"> <field x="50" y="1.75" type="Stringa" align="right" width="5" pattern="1">

View File

@ -6,16 +6,15 @@ ENDPAGE
PAGE "Riepilogo Bolle di Lavanderie" -1 -1 40 5 PAGE "Riepilogo Bolle di Lavanderie" -1 -1 40 5
GROUPBOX DLG_NULL 80 4 GROUPBOX DLG_NULL 78 4
BEGIN BEGIN
PROMPT 1 1 "@b Parametri Cliente" PROMPT 1 1 "@bSelezione clienti"
END END
NUMBER F_CODCF_DA 6 NUMBER F_CODCF_DA 6
BEGIN BEGIN
PROMPT 2 2 "Da Cliente " PROMPT 2 2 "Da Cliente "
FLAGS "U" FLAGS "U"
KEY 1
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF F_CODCF_DA INPUT CODCF F_CODCF_DA
@ -23,78 +22,75 @@ BEGIN
DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_CODCF_DA CODCF OUTPUT F_CODCF_DA CODCF
OUTPUT F_RAGSOC_DA RAGSOC OUTPUT F_RAGSOC_DA RAGSOC
CHECKTYPE SEARCH
FIELD #F_CODCF_FROM FIELD #F_CODCF_FROM
END END
STRING F_RAGSOC_DA 50 STRING F_RAGSOC_DA 50
BEGIN BEGIN
PROMPT 25 2 "" PROMPT 25 2 ""
KEY 2
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT RAGSOC F_RAGSOC_DA INPUT RAGSOC F_RAGSOC_DA
DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF DISPLAY "Codice" CODCF
OUTPUT F_CODCF_DA CODCF COPY OUTPUT F_CODCF_DA
OUTPUT F_RAGSOC_DA RAGSOC CHECKTYPE SEARCH
END END
NUMBER F_CODCF_A 6 NUMBER F_CODCF_A 6
BEGIN BEGIN
PROMPT 2 3 "A Cliente " PROMPT 2 3 "A Cliente "
FLAGS "U" FLAGS "U"
KEY 1
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF F_CODCF_A INPUT CODCF F_CODCF_A
DISPLAY "Codice" CODCF COPY DISPLAY F_CODCF_DA
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_CODCF_A CODCF OUTPUT F_CODCF_A CODCF
OUTPUT F_RAGSOC_A RAGSOC OUTPUT F_RAGSOC_A RAGSOC
FIELD #F_CODCF_TO FIELD #F_CODCF_TO
CHECKTYPE SEARCH
END END
STRING F_RAGSOC_A 50 STRING F_RAGSOC_A 50
BEGIN BEGIN
PROMPT 25 3 "" PROMPT 25 3 ""
KEY 2
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT RAGSOC F_RAGSOC_A INPUT RAGSOC F_RAGSOC_A
DISPLAY "Ragione Sociale@50" RAGSOC COPY DISPLAY F_RAGSOC_DA
DISPLAY "Codice" CODCF COPY OUTPUT F_CODCF_A
OUTPUT F_CODCF_A CODCF CHECKTYPE SEARCH
OUTPUT F_RAGSOC_A RAGSOC
END END
GROUPBOX DLG_NULL 80 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 5 "@b Parametri Data" PROMPT 1 5 "@bIntervallo date"
END END
DATE F_DATA_DA DATE F_DATA_DA
BEGIN BEGIN
PROMPT 2 6 "Da Data " PROMPT 2 6 "Da Data "
FIELD #F_DATA_FROM FIELD #F_DATA_FROM
END END
DATE F_DATA_A DATE F_DATA_A
BEGIN BEGIN
PROMPT 40 6 "A Data " PROMPT 40 6 "A Data "
FLAGS "A" FLAGS "A"
FIELD #F_DATA_TO FIELD #F_DATA_TO
VALITATE DATE_CMP_FUNC >= F_DATA_DA VALITATE DATE_CMP_FUNC >= F_DATA_DA
WARNING "La data finale deve essere successiva a quella iniziale" WARNING "La data finale deve essere successiva a quella iniziale"
END END
GROUPBOX DLG_NULL 80 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 8 "@b Parametri Zona" PROMPT 1 8 "@bZona"
END END
STRING F_ZONA 2 STRING F_ZONA 2
BEGIN BEGIN
PROMPT 2 9 "Codice Zona" PROMPT 2 9 "Codice Zona "
USE ZON USE ZON
INPUT CODTAB F_ZONA INPUT CODTAB F_ZONA
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
@ -107,28 +103,33 @@ END
STRING F_DESZONA 50 STRING F_DESZONA 50
BEGIN BEGIN
PROMPT 20 9 "" PROMPT 25 9 ""
USE ZON KEY 2 USE ZON KEY 2
INPUT CODTAB F_ZONA INPUT CODTAB F_ZONA
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_ZONA CODTAB OUTPUT F_ZONA CODTAB
OUTPUT F_DESZONA S0 OUTPUT F_DESZONA S0
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 11 "@bDettaglio"
END END
BOOLEAN F_CHECK_NO_RESI BOOLEAN F_CHECK_NO_RESI
BEGIN BEGIN
PROMPT 2 12 "Stampo tutti i righi incluso i resi " PROMPT 2 12 "Stampare tutti i righi incluso i resi"
FIELD #F_CHECK_NO_RESI_TO FIELD #F_CHECK_NO_RESI_TO
END END
BOOLEAN F_CHECK_FATT BOOLEAN F_CHECK_FATT
BEGIN BEGIN
PROMPT 2 14 "Stampo solo i righi da fatturare " PROMPT 2 13 "Stampare solo i righi da fatturare"
FIELD #F_CHECK_FATT_TO FIELD #F_CHECK_FATT_TO
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK