campo-sirio/vd/vd0200.cpp
alex 046e2c06cb Patch level : 4.0 649
Ricompilazione Demo : [ ]
Commento            :

Riportata la versione 3.1 patch 848


git-svn-id: svn://10.65.10.50/trunk@14993 c028cbd2-c16b-5b4b-a496-9718f37d4682
2007-03-06 16:37:44 +00:00

111 lines
2.3 KiB
C++
Executable File

//Programma per stampa report tabelle
#include <applicat.h>
#include <automask.h>
#include <relation.h>
#include <reprint.h>
#include <tabutil.h>
#include "../ba/ba3200.h"
#define F_REPORT 250
///////////////////////////////////////////////////////////
// TMask_print_table
///////////////////////////////////////////////////////////
class TMask_print_table : public TAutomask
{
protected:
bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;}
public:
TMask_print_table(const char * name);
virtual ~TMask_print_table() {}
};
TMask_print_table::TMask_print_table(const char * name)
:TAutomask(name)
{
TEdit_field & f = add_string(F_REPORT, 0, TR("Report "), 2, -3, 20, "B");
f.set_query_button(new TReport_select(&f, name));
f.enable_check();
}
///////////////////////////////////////////////////////////
// TTable_report
///////////////////////////////////////////////////////////
class TTable_report : public TReport
{
public:
virtual bool use_mask() { return false;}
TTable_report() {}
virtual ~TTable_report() {}
};
///////////////////////////////////////////////////////////
// TTable_dettaglio_reporter
///////////////////////////////////////////////////////////
class TTable_dettaglio_reporter : public TSkeleton_application
{
protected:
virtual void main_loop();
public:
bool get_rpt_name(TFilename& rptname) const;
};
bool TTable_dettaglio_reporter::get_rpt_name(TFilename& rptname) const
{
TTable tab(argv(2));
rptname = tab.get("COD");
rptname.insert("vdst", 0);
rptname.ext("rep");
rptname.lower();
return rptname.custom_path();
}
void TTable_dettaglio_reporter::main_loop()
{
TFilename rptname;
if (get_rpt_name(rptname))
{
TFilename msk(rptname.name()); msk.ext(""); msk.lower();
TMask_print_table m(msk);
while (m.run() == K_ENTER)
{
TTable_report rep;
TReport_book book;
TString name(m.get(F_REPORT));
if (name.empty())
name = rptname;
rep.load(name);
rep.mask2report(m);
book.add(rep);
book.print_or_preview();
}
}
else
error_box(FR("Manca il file %s"), (const char *)rptname);
}
int vd0200(int argc, char* argv[])
{
if (argc > 2)
{
TString name;
TTable_dettaglio_reporter app;
name << TR("Stampa Tabelle ") << argv[2];
app.run(argc, argv, name);
}
return 0;
}