campo-sirio/ca/ca1400.cpp
guy 6d67a73f1c Patch level : 2.2
Files correlati     : ca?.exe
Ricompilazione Demo : [ ]
Commento            :

Migliorata sensibilmente la velocita' di generazione dei campi analitici.
La tipica maschera ora impiega meno di 1 secondo (invece di 6) per comparire.


git-svn-id: svn://10.65.10.50/trunk@13347 c028cbd2-c16b-5b4b-a496-9718f37d4682
2005-09-19 10:16:43 +00:00

93 lines
1.8 KiB
C++
Executable File

#include <applicat.h>
#include <execp.h>
#include <reprint.h>
#include "ca1.h"
#include "ca1400a.h"
#include "calib01.h"
#include "calib02.h"
class TMask_print_pdc : public TAutomask
{
protected:
bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;}
public:
TMask_print_pdc();
virtual ~TMask_print_pdc() {}
};
TMask_print_pdc::TMask_print_pdc()
:TAutomask("ca1400a")
{
ca_create_fields(*this, 0, LF_PCONANA, 3, 2, F_DACONTO, F_DACONTO + 100, 0x0, "#DACONTO");
int nfields = ca_create_fields(*this, 0, LF_PCONANA, 3, 8, F_ACONTO, F_ACONTO + 100, 0x0, "#ACONTO");
for (int i = 0; i < nfields; i++)
{
TMask_field& daconto = field(F_DACONTO + i);
daconto.set_group(1);
daconto.check_type(CHECK_NORMAL);
TMask_field& aconto = field(F_ACONTO + i);
aconto.set_group(2);
aconto.check_type(CHECK_NORMAL);
}
}
class TPrint_pdc : public TSkeleton_application
{
bool create();
public:
virtual void main_loop();
};
bool TPrint_pdc::create()
{
TConfig& cfg = ca_config();
const TString& pdc = cfg.get("Pdci", NULL, 1);
if (pdc.blank())
{
const bool use_cg1 = cfg.get_bool("UsePdcc");
if (use_cg1)
{
TExternal_app app("cg1 -0");
app.run(true);
return false;
}
else
return error_box(TR("Il piano dei conti analitico non e' stato configurato"));
}
return TSkeleton_application::create();
}
void TPrint_pdc::main_loop()
{
TFilename path;
TMask_print_pdc m;
while (m.run() == K_ENTER)
{
TReport_book book;
TAnal_report rep;
path = m.get(F_REPORT);
if (path.empty())
path = "ca1400a";
rep.load(path);
rep.mask2report(m);
book.add(rep);
book.print_or_preview();
}
}
int ca1400(int argc, char* argv[])
{
TPrint_pdc a;
a.run(argc, argv, TR("Stampa piano dei conti analitica"));
return 0;
}