campo-sirio/lv/lv1100.cpp

117 lines
3.4 KiB
C++
Raw Normal View History

#include <applicat.h>
#include <automask.h>
#include <execp.h>
#include <relation.h>
#include <reprint.h>
#include "lv1100a.h"
class TStampaBuoni_mask: public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TStampaBuoni_mask();
};
TStampaBuoni_mask::TStampaBuoni_mask():TAutomask("lv1100a")
{
//precarico i campi fissi
set(F_CODNUM, ini_get_string(CONFIG_DITTA, "lv", "NUM_PRE", NULL, 0));
set(F_TIPODOC, ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0));
}
bool TStampaBuoni_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
return true;
}
class TStampaBuoni_app: public TSkeleton_application
{
protected:
virtual void main_loop();
void elabora(const TMask& mask) const;
};
void TStampaBuoni_app::elabora(const TMask& mask) const
{
const TDate data_from = mask.get_date(F_DATA_FROM);
TString query = "USE DOC \n"
"JOIN CLIFO INTO TIPOCF=='C' CODCF==CODCF\n"
"SELECT (BETWEEN(DATADOC,#FROM_DATA,#TO_DATA))\n"
"(BETWEEN(CODCF,#FROM_CODCF,#TO_CODCF))\n"
//"&&SELECT (BETWEEN(G1:CODITI,#FROM_CODITI,#TO_CODITI))"
//"&&(BETWEEN(G1:CODAUT,#FROM_CODAUT,#TO_CODAUT))\n";
;
query << "FROM PROVV=\"D\" ANNO=" << data_from.year() << " CODNUM=\"" << mask.get(F_CODNUM) << " TIPODOC=\"" << mask.get(F_TIPODOC) << "\"\n"
<< "TO PROVV=\"D\" ANNO=" << data_from.year() << " CODNUM=\"" << mask.get(F_CODNUM) << " TIPODOC=\"" << mask.get(F_TIPODOC) << "\"\n";
TISAM_recordset buoni(query);
//inserire parametri filtri
buoni.set_var("#FROM_DATA",mask.get_date(F_DATA_FROM));
buoni.set_var("#TO_DATA",mask.get_date(F_DATA_TO));
buoni.set_var("#FROM_CODCF",TVariant(mask.get(F_CODCF_FROM)));
buoni.set_var("#TO_CODCF",TVariant(mask.get(F_CODCF_TO)));
/*
if (mask.get(F_CODITI_FROM).empty())
buoni.set_var("#FROM_CODITI", "000");
else
buoni.set_var("#FROM_CODITI", TVariant(mask.get(F_CODITI_FROM)));
if (mask.get(F_CODITI_TO).empty())
buoni.set_var("#TO_CODITI","ZZZ");
else
buoni.set_var("#TO_CODITI",TVariant(mask.get(F_CODITI_TO)));
*/
//buoni.set_var("#FROM_CODAUT",TVariant(mask.get(F_CODAUT_FROM)));
//buoni.set_var("#TO_CODAUT",TVariant(mask.get(F_CODAUT_TO)));
TFilename tmp; tmp.temp();
ofstream outf(tmp);
TString80 chiavedoc = "D|";
chiavedoc << data_from.year() << "|" << mask.get(F_CODNUM) << "|";
TCursor* c = buoni.cursor();
TCursor_sheet sht(c, " |NDOC|DATADOC|CODCF|20->RAGSOC", TR("Selezione Documenti"),
HR("@1|Numero\nDoc.@7|Data\nDoc.@10|Cliente|Ragione Sociale@50"));
if (sht.run() && sht.one_checked())
{
const long items = sht.items();
for (long i = 0L; i<items; i++)
if (sht.checked(i))
outf << chiavedoc << sht.row(i).get_long(1) << endl;
}
outf.close();
TString80 appname = "ve1.exe -2";
appname << tmp;
TExternal_app app(appname);
app.run();
tmp.fremove();
}
void TStampaBuoni_app::main_loop()
{
TStampaBuoni_mask m;
while(m.run()==K_ENTER)
elabora(m);
}
int lv1100(int argc, char* argv[])
{
TStampaBuoni_app app;
switch (toupper(*argv[2]))
{
case 'P':
app.run(argc, argv, TR("Stampa buoni di prelievo"));
break;
case 'R':
app.run(argc, argv, TR("Stampa buoni di ritiro"));
break;
case 'C':
app.run(argc, argv, TR("Stampa buoni di consegna"));
break;
default:
break;
}
return 0;
}