campo-sirio/ve/ve8100.cpp
luca 5088e95822 Patch level :4.0 567
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :corretti errori di riporto


git-svn-id: svn://10.65.10.50/trunk@14643 c028cbd2-c16b-5b4b-a496-9718f37d4682
2006-12-15 10:44:40 +00:00

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;
}