5088e95822
Files correlati : Ricompilazione Demo : [ ] Commento :corretti errori di riporto git-svn-id: svn://10.65.10.50/trunk@14643 c028cbd2-c16b-5b4b-a496-9718f37d4682
139 lines
3.2 KiB
C++
Executable File
139 lines
3.2 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <execp.h>
|
|
#include <progind.h>
|
|
#include <recset.h>
|
|
#include <relation.h>
|
|
#include <reprint.h>
|
|
#include <tabutil.h>
|
|
|
|
#include "../cg/cg2103.h"
|
|
#include "velib.h"
|
|
#include "velib07.h"
|
|
|
|
#include "ve8.h"
|
|
#include "ve8100a.h"
|
|
|
|
////////////////////////////////////////////////////////
|
|
// MASCHERA
|
|
////////////////////////////////////////////////////////
|
|
class TListaRitFisc_mask : public TAutomask
|
|
{
|
|
protected:
|
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TListaRitFisc_mask();
|
|
virtual ~TListaRitFisc_mask() {}
|
|
};
|
|
|
|
bool TListaRitFisc_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
bool ok = true;
|
|
/*
|
|
switch (o.dlg())
|
|
{
|
|
case :
|
|
if (e == fe_init || e == fe_modify)
|
|
{
|
|
}
|
|
break;
|
|
default: break;
|
|
}
|
|
*/
|
|
return ok;
|
|
}
|
|
|
|
TListaRitFisc_mask::TListaRitFisc_mask():TAutomask("ve8100")
|
|
{
|
|
}
|
|
|
|
////////////////////////////////////////////////////////
|
|
// APPLICAZIONE
|
|
////////////////////////////////////////////////////////
|
|
class TListaRitFisc : public TSkeleton_application
|
|
{
|
|
protected:
|
|
virtual void main_loop();
|
|
public:
|
|
bool crea_righe(const TListaRitFisc_mask& m) const;
|
|
};
|
|
|
|
|
|
bool TListaRitFisc::crea_righe(const TListaRitFisc_mask& m) const
|
|
{
|
|
int err=NOERR;
|
|
TLocalisamfile righe(LF_RIGHEF24);
|
|
TDocument_recordset rdoc("USE RDOC\nSELECT (TIPORIGA=='04')&&(110@->S10!='')&&(NUM(ANSI(33.DATADOC)>=ANSI(#DADATA)))&&(NUM(ANSI(33.DATADOC)<=ANSI(#ADATA)))\nJOIN SPP ALIAS 110 INTO CODTAB=CODART\nJOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\nFROM CODNUM=#NUM\nTO CODNUM=#NUM");
|
|
TVariant var;
|
|
var = m.get(F_DATAINI);
|
|
rdoc.set_var("#DADATA", var);
|
|
var = m.get(F_DATAFIN);
|
|
rdoc.set_var("#ADATA", var);
|
|
var = m.get(F_CODNUM);
|
|
rdoc.set_var("#NUM", var);
|
|
righe.last();
|
|
int cont=righe.get_long("PROGR");
|
|
// trucco per poter usare la get (nei TDocument_recordset la get ha 2 par. ed e' protected!)
|
|
const TRecordset& curr = rdoc;
|
|
for (bool ok = rdoc.move_first(); ok; ok = rdoc.move_next())
|
|
{
|
|
cont++;
|
|
righe.zero();
|
|
righe.put("PROGR", cont);
|
|
righe.put("F24", 0);
|
|
righe.put("TRIBUTO", curr.get("SPP.S10").as_string());
|
|
righe.put("TIPOINTEST", 'C');
|
|
righe.put("INTEST", curr.get("DOC.CODCF").as_int());
|
|
righe.put("DESCR", "Riga generata");
|
|
righe.put("IMPORTODEB", curr.get("RDOC.RITENUTA").as_real());
|
|
err = righe.write();
|
|
}
|
|
return (err==NOERR);
|
|
}
|
|
|
|
void TListaRitFisc::main_loop()
|
|
{
|
|
TListaRitFisc_mask m;
|
|
KEY key = K_ENTER;
|
|
while (key != K_QUIT)
|
|
{
|
|
key = m.run();
|
|
switch (key)
|
|
{
|
|
case K_SAVE:
|
|
crea_righe(m);
|
|
break;
|
|
case K_QUIT:
|
|
break;
|
|
case K_ENTER:
|
|
{
|
|
//report e book dei report
|
|
TReport_book book;
|
|
TDocument_report rep;
|
|
rep.load("ve8100a");
|
|
TRecordset * r = rep.recordset();
|
|
if (r != NULL)
|
|
{
|
|
TVariant var;
|
|
var = m.get(F_DATAINI);
|
|
r->set_var("#DADATA", var);
|
|
var = m.get(F_DATAFIN);
|
|
r->set_var("#ADATA", var);
|
|
var = m.get(F_CODNUM);
|
|
r->set_var("#NUM", var);
|
|
}
|
|
book.add(rep);
|
|
book.print_or_preview(); //stampa il book dei report
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
int ve8100(int argc, char* argv[])
|
|
{
|
|
TListaRitFisc a;
|
|
a.run(argc, argv, TR("Lista ritenute per F24"));
|
|
return 0;
|
|
} |