Files correlati : Ricompilazione Demo : [ ] Commento : gestione intelligente dei moduli CA-CM in base all'autorizzazione sulla chiave git-svn-id: svn://10.65.10.50/trunk@18963 c028cbd2-c16b-5b4b-a496-9718f37d4682
114 lines
2.5 KiB
C++
Executable File
114 lines
2.5 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <reprint.h>
|
|
|
|
#include "ca1.h"
|
|
#include "ca1700a.h"
|
|
#include "calib01.h"
|
|
#include "calib02.h"
|
|
|
|
class TMask_print_fasi : public TAutomask
|
|
{
|
|
int _nfields;
|
|
protected:
|
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly) {return true;}
|
|
|
|
public:
|
|
int nfields() { return _nfields; }
|
|
TMask_print_fasi();
|
|
virtual ~TMask_print_fasi() {}
|
|
};
|
|
|
|
TMask_print_fasi::TMask_print_fasi()
|
|
:TAutomask("ca1700a")
|
|
{
|
|
ca_create_fields(*this, 0, LF_FASI, 3, 2, F_DAFASE, F_DAFASE + 100);
|
|
_nfields = ca_create_fields(*this, 0, LF_FASI, 3, 9, F_AFASE, F_AFASE + 100);
|
|
TString80 workstring;
|
|
|
|
for (int i = 0; i < _nfields; i++)
|
|
{
|
|
TEdit_field& dafase = efield(F_DAFASE + i);
|
|
dafase.set_group(1);
|
|
dafase.check_type(CHECK_NORMAL);
|
|
const TFieldref& dafr = *dafase.field();
|
|
workstring.format("DA%s[%d,%d]", (const char*)dafr.name(), dafr.from()+1, dafr.to());
|
|
dafase.set_field(workstring);
|
|
|
|
TEdit_field& afase = efield(F_AFASE + i);
|
|
afase.set_group(2);
|
|
afase.check_type(CHECK_NORMAL);
|
|
const TFieldref& afr = *afase.field();
|
|
workstring.format("A%s[%d,%d]", (const char*)afr.name(), afr.from()+1, afr.to());
|
|
afase.set_field(workstring);
|
|
}
|
|
}
|
|
|
|
class TPrint_fasi : public TSkeleton_application
|
|
{
|
|
protected:
|
|
virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM
|
|
|
|
virtual bool create();
|
|
|
|
public:
|
|
virtual void main_loop();
|
|
};
|
|
|
|
bool TPrint_fasi::create()
|
|
{
|
|
const TMultilevel_code_info& mci = ca_multilevel_code_info(LF_FASI);
|
|
if (mci.levels() <= 0)
|
|
return error_box(TR("Le fasi non sono state configurate"));
|
|
|
|
return TSkeleton_application::create();
|
|
}
|
|
|
|
void TPrint_fasi::main_loop()
|
|
{
|
|
TFilename path;
|
|
TMask_print_fasi m;
|
|
while (m.run() == K_ENTER)
|
|
{
|
|
TReport_book book;
|
|
TAnal_report rep;
|
|
|
|
path = m.get(F_REPORT);
|
|
if (path.empty())
|
|
path = "ca1700a";
|
|
|
|
rep.load(path);
|
|
rep.mask2report(m);
|
|
const TMultilevel_code_info& main_info = ca_multilevel_code_info(LF_FASI);
|
|
|
|
if (main_info.parent() == 0)
|
|
{
|
|
TRecordset* rset = rep.recordset();
|
|
|
|
if (rset != NULL)
|
|
{
|
|
TVariant var;
|
|
|
|
var = "";
|
|
rset->set_var("#DACODCMSFAS", var);
|
|
TString fs;
|
|
|
|
for (int i = 0 ; fs.empty() && i < m.nfields(); i++)
|
|
fs << m.field(F_AFASE + i).get();
|
|
if (fs.empty())
|
|
var = "zzzzzzzzzzzz";
|
|
rset->set_var("#ACODCMSFAS", var);
|
|
}
|
|
}
|
|
book.add(rep);
|
|
book.print_or_preview();
|
|
}
|
|
}
|
|
|
|
int ca1700(int argc, char* argv[])
|
|
{
|
|
TPrint_fasi a;
|
|
a.run(argc, argv, TR("Stampa fasi"));
|
|
return 0;
|
|
}
|
|
|