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:
parent
70c1ab9ead
commit
14ea969dc6
174
lv/lv2700.cpp
174
lv/lv2700.cpp
@ -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,7 +110,7 @@ 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";
|
||||||
@ -118,12 +119,10 @@ TString TRiepBolle_app::getQuery(bool isArticolo,const TMask& mask) const
|
|||||||
|
|
||||||
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;
|
||||||
|
{
|
||||||
|
TISAM_recordset riep(get_query(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));
|
||||||
riep.set_var("#F_DATA_TO",mask.get_date(F_DATA_A));
|
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_FROM",mask.get_long(F_CODCF_DA));
|
||||||
riep.set_var("#F_CODCF_TO",TVariant(mask.get(F_CODCF_A)));
|
riep.set_var("#F_CODCF_TO",mask.get_long(F_CODCF_A));
|
||||||
riep.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA)));
|
riep.set_var("#F_ZONA_FROM",TVariant(mask.get(F_ZONA)));
|
||||||
|
|
||||||
|
TProgind pi(riep.items(), TR("Estrazione articoli"), true, true);
|
||||||
TRiepilogo riepilogo;
|
|
||||||
TRiepilogoData riepilogoData;
|
|
||||||
TRiepilogoData riepilogoData2;
|
|
||||||
int count = 1;
|
int count = 1;
|
||||||
|
for(bool ok = riep.move_first(); ok && pi.addstatus(1); ok=riep.move_next())
|
||||||
for(bool ok = riep.move_first();ok;ok=riep.move_next())
|
|
||||||
{
|
{
|
||||||
TDate dataDoc = riep.get("DOC.DATADOC").as_date();
|
const TDate dataDoc = riep.get("DOC.DATADOC").as_date();
|
||||||
long cliente = riep.get("DOC.CODCF").as_int();
|
const long cliente = riep.get("DOC.CODCF").as_int();
|
||||||
TString articolo = riep.get("CODART").as_string();
|
const TString articolo = riep.get("CODART").as_string();
|
||||||
TString descr = riep.get("DESCR").as_string();
|
const TString descr = riep.get("DESCR").as_string();
|
||||||
int numeroDoc = riep.get("NDOC").as_int();
|
const long numeroDoc = riep.get("NDOC").as_int();
|
||||||
long qta = riep.get("QTA").as_int();
|
const long qta = riep.get("QTA").as_int();
|
||||||
|
|
||||||
riepilogo.add(count,cliente,articolo,descr,dataDoc,numeroDoc,qta);
|
riepilogo.add(count,cliente,articolo,descr,dataDoc,numeroDoc,qta);
|
||||||
count++;
|
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;
|
||||||
}
|
}
|
@ -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">
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user