2004-10-11 14:37:45 +00:00
|
|
|
#include <automask.h>
|
|
|
|
#include <confapp.h>
|
|
|
|
|
2005-03-16 12:12:22 +00:00
|
|
|
#include "calib01.h"
|
2004-10-11 14:37:45 +00:00
|
|
|
#include "ca0.h"
|
|
|
|
#include "ca0300a.h"
|
|
|
|
|
2005-10-10 11:26:19 +00:00
|
|
|
// TConf_mask
|
2004-10-11 14:37:45 +00:00
|
|
|
class TConf_mask : public TAutomask
|
|
|
|
{
|
|
|
|
protected:
|
2005-10-10 11:26:19 +00:00
|
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
2004-10-11 14:37:45 +00:00
|
|
|
|
|
|
|
public:
|
2005-09-01 18:04:42 +00:00
|
|
|
void config_loader(TSheet_field& sf, const char* paragrafo);
|
|
|
|
void config_setter(TSheet_field& sf, const char* paragrafo);
|
2004-10-11 14:37:45 +00:00
|
|
|
TConf_mask(const TFilename& f);
|
|
|
|
|
|
|
|
virtual ~TConf_mask(){};
|
|
|
|
};
|
|
|
|
|
|
|
|
bool TConf_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
|
|
{
|
|
|
|
switch (o.dlg())
|
|
|
|
{
|
|
|
|
case F_LEVEL_1 :
|
|
|
|
if (e == fe_modify || e == fe_init)
|
|
|
|
{
|
|
|
|
TToken_string cod, desc;
|
|
|
|
cod = " ";
|
|
|
|
desc = TR("Nessuno");
|
|
|
|
if (o.get() == "CDC")
|
|
|
|
{
|
|
|
|
cod.add("CMS");
|
|
|
|
desc.add(TR("Commessa"));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
cod.add("CDC");
|
|
|
|
desc.add(TR("Centro di Costo"));
|
|
|
|
}
|
|
|
|
|
|
|
|
TList_field& lev2 = (TList_field&)field(F_LEVEL_2);
|
2004-10-12 13:12:28 +00:00
|
|
|
const TString4 laccio = lev2.get();
|
2004-10-11 14:37:45 +00:00
|
|
|
lev2.replace_items(cod, desc);
|
2004-10-12 13:12:28 +00:00
|
|
|
lev2.set(laccio);
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case F_FATHER_FASI :
|
2005-10-10 11:26:19 +00:00
|
|
|
if (e == fe_close && !o.empty())
|
2004-10-11 14:37:45 +00:00
|
|
|
{
|
|
|
|
const TString& lev1 = get(F_LEVEL_1);
|
|
|
|
const TString& lev2 = get(F_LEVEL_2);
|
2005-10-10 11:26:19 +00:00
|
|
|
if (o.get() != lev1 && o.get() != lev2)
|
|
|
|
return error_box(TR("Livello superiore di fase non valido"));
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
default: break;
|
|
|
|
}
|
2005-08-23 08:43:45 +00:00
|
|
|
return true;
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
|
2005-10-10 11:26:19 +00:00
|
|
|
TConf_mask::TConf_mask(const TFilename& f) : TAutomask (f)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2004-10-11 14:37:45 +00:00
|
|
|
//-----CONFIG APPLICATION------------------------------------------------------------------------------------------//
|
|
|
|
|
|
|
|
class TConf_Analitica : public TConfig_application
|
|
|
|
{
|
|
|
|
TMask* _cm;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual TMask* create_mask(const TFilename& f);
|
|
|
|
virtual TMask* get_mask();
|
|
|
|
|
|
|
|
public:
|
|
|
|
virtual bool preprocess_config (TMask& mask, TConfig& config);
|
|
|
|
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
|
|
|
virtual bool user_create( );
|
|
|
|
virtual bool user_destroy( );
|
|
|
|
|
2006-07-21 12:55:46 +00:00
|
|
|
void config_loader(TSheet_field& sf, TConfig& config, TString4 tipo);
|
|
|
|
void config_setter(TSheet_field& sf, TConfig& config, TString4 tipo);
|
2005-09-01 18:04:42 +00:00
|
|
|
|
2005-10-10 11:26:19 +00:00
|
|
|
TConf_Analitica() : TConfig_application(CONFIG_DITTA), _cm(NULL) { }
|
|
|
|
virtual ~TConf_Analitica() { }
|
2004-10-11 14:37:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
TMask* TConf_Analitica::get_mask()
|
|
|
|
{
|
|
|
|
return _cm;
|
|
|
|
}
|
|
|
|
|
|
|
|
TMask* TConf_Analitica::create_mask(const TFilename& f)
|
|
|
|
{
|
|
|
|
if (_cm == NULL)
|
|
|
|
_cm = new TConf_mask(f);
|
|
|
|
return _cm;
|
|
|
|
}
|
|
|
|
|
2006-07-21 12:55:46 +00:00
|
|
|
void TConf_Analitica::config_loader(TSheet_field& sf, TConfig& config, TString4 tipo)
|
2005-09-01 18:04:42 +00:00
|
|
|
{
|
|
|
|
for (int i = 0;;i++)
|
|
|
|
{
|
2006-07-21 12:55:46 +00:00
|
|
|
TToken_string num_doc(config.get(tipo, NULL, i));
|
2005-09-01 18:04:42 +00:00
|
|
|
if (num_doc.blank())
|
|
|
|
break;
|
|
|
|
TToken_string& row = sf.row(i);
|
|
|
|
row.add(num_doc.get(0));
|
|
|
|
row.add("");
|
|
|
|
row.add(num_doc.get(1));
|
2006-07-21 12:55:46 +00:00
|
|
|
if (tipo == "ND")
|
|
|
|
{
|
|
|
|
row.add(num_doc.get(2));
|
|
|
|
row.add(num_doc.get(3));
|
|
|
|
}
|
2005-09-01 18:04:42 +00:00
|
|
|
sf.check_row(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-07-21 12:55:46 +00:00
|
|
|
void TConf_Analitica::config_setter(TSheet_field& sf, TConfig& config, TString4 tipo)
|
2005-09-01 18:04:42 +00:00
|
|
|
{
|
|
|
|
const int items = sf.items();
|
2005-10-10 11:26:19 +00:00
|
|
|
for (int i = items; ;i++)
|
2005-09-01 18:04:42 +00:00
|
|
|
{
|
2006-07-21 12:55:46 +00:00
|
|
|
TToken_string num_doc(config.get(tipo, NULL, i));
|
2005-09-01 18:04:42 +00:00
|
|
|
if (num_doc.blank())
|
|
|
|
break;
|
2006-07-21 12:55:46 +00:00
|
|
|
config.remove(tipo, i);
|
2005-09-01 18:04:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
FOR_EACH_SHEET_ROW (sf, j, row)
|
|
|
|
{
|
|
|
|
TToken_string num_doc;
|
|
|
|
num_doc.add(row->get(0));
|
2006-07-21 12:55:46 +00:00
|
|
|
if (tipo == "ND")
|
|
|
|
{
|
|
|
|
num_doc.add(row->get(2));
|
|
|
|
num_doc.add(row->get(3));
|
|
|
|
num_doc.add(row->get(4));
|
|
|
|
}
|
|
|
|
config.set(tipo, num_doc, NULL, true, j); //setta i valori nel config
|
2005-09-01 18:04:42 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-10-11 14:37:45 +00:00
|
|
|
bool TConf_Analitica::preprocess_config (TMask& mask, TConfig& config)
|
|
|
|
{
|
2006-07-21 12:55:46 +00:00
|
|
|
config_loader(mask.sfield(F_RIGHE_NUM), config, "ND");
|
|
|
|
config_loader(mask.sfield(F_RIGHE_FDR), config, "NF");
|
2006-10-09 14:01:26 +00:00
|
|
|
config_loader(mask.sfield(F_RIGHE_RER), config, "RR");
|
2005-08-23 08:43:45 +00:00
|
|
|
return true;
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool TConf_Analitica::postprocess_config (TMask& mask, TConfig& config)
|
|
|
|
{
|
2006-07-21 12:55:46 +00:00
|
|
|
config_setter(mask.sfield(F_RIGHE_NUM), config, "ND");
|
|
|
|
config_setter(mask.sfield(F_RIGHE_FDR), config, "NF");
|
2006-10-09 14:01:26 +00:00
|
|
|
config_setter(mask.sfield(F_RIGHE_RER), config, "RR");
|
2005-08-23 08:43:45 +00:00
|
|
|
return true;
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool TConf_Analitica::user_create( )
|
|
|
|
{
|
2005-10-10 11:26:19 +00:00
|
|
|
TConfig cfg(CONFIG_DITTA, "ca");
|
|
|
|
cfg.set("EdMask", "ca0300a");
|
2005-08-23 08:43:45 +00:00
|
|
|
return true;
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool TConf_Analitica::user_destroy( )
|
|
|
|
{
|
|
|
|
if (_cm != NULL)
|
|
|
|
delete _cm;
|
2005-08-23 08:43:45 +00:00
|
|
|
return true;
|
2004-10-11 14:37:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int ca0300(int argc, char* argv[])
|
|
|
|
{
|
|
|
|
TConf_Analitica app;
|
|
|
|
app.run(argc, argv, TR("Parametri Contabilita' Analitica"));
|
|
|
|
return 0;
|
2005-10-10 11:26:19 +00:00
|
|
|
}
|