Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21167 c028cbd2-c16b-5b4b-a496-9718f37d4682
181 lines
3.9 KiB
C++
Executable File
181 lines
3.9 KiB
C++
Executable File
#include <automask.h>
|
|
#include <confapp.h>
|
|
#include <relation.h>
|
|
|
|
#include "ha0200a.h"
|
|
|
|
///////////////////////////////////////////////////
|
|
// Maschera
|
|
///////////////////////////////////////////////////
|
|
class TConf_Hardy_mask : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
void config_loader(TSheet_field& sf, const char* paragrafo);
|
|
void config_setter(TSheet_field& sf, const char* paragrafo);
|
|
TConf_Hardy_mask(const TFilename& f);
|
|
|
|
virtual ~TConf_Hardy_mask(){};
|
|
};
|
|
|
|
bool TConf_Hardy_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
/*switch (o.dlg())
|
|
{
|
|
default:
|
|
break;
|
|
}*/
|
|
return true;
|
|
}
|
|
|
|
TConf_Hardy_mask::TConf_Hardy_mask(const TFilename& f) : TAutomask (f)
|
|
{
|
|
}
|
|
|
|
///////////////////////////////////////////////////
|
|
// Applicazione
|
|
///////////////////////////////////////////////////
|
|
class TConf_Hardy : public TConfig_application
|
|
{
|
|
TMask* _ch;
|
|
|
|
protected:
|
|
virtual TMask* create_mask(const TFilename& f);
|
|
virtual TMask* get_mask();
|
|
virtual void load_mask();
|
|
virtual void save_mask(bool tosave);
|
|
|
|
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( );
|
|
|
|
TConf_Hardy() : TConfig_application(CONFIG_DITTA), _ch(NULL) { }
|
|
virtual ~TConf_Hardy() { }
|
|
};
|
|
|
|
TMask* TConf_Hardy::get_mask()
|
|
{
|
|
return _ch;
|
|
}
|
|
|
|
TMask* TConf_Hardy::create_mask(const TFilename& f)
|
|
{
|
|
if (_ch == NULL)
|
|
_ch = new TConf_Hardy_mask(f);
|
|
return _ch;
|
|
}
|
|
|
|
bool TConf_Hardy::preprocess_config (TMask& mask, TConfig& config)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
bool TConf_Hardy::postprocess_config (TMask& mask, TConfig& config)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//questa serve per caricare gli sheet della maschera
|
|
void TConf_Hardy::load_mask()
|
|
{
|
|
TMask* m = get_mask();
|
|
if (m != NULL)
|
|
{
|
|
TConfig_application::load_mask();
|
|
//dopo aver caricato la maschera principale, fa il giro sugli sheet presenti
|
|
FOR_EACH_MASK_SHEET((*m), i, s)
|
|
{
|
|
s->destroy();
|
|
//carica la maschera del singolo sheet
|
|
TMask& sm = s->sheet_mask();
|
|
|
|
bool found = true;
|
|
for (int r = 0; found; r++)
|
|
{
|
|
//giro sui campi della maschera di sheet
|
|
FOR_EACH_MASK_FIELD(sm, j, f)
|
|
{
|
|
const TFieldref* fr = f->field();
|
|
//deve caricare solo i campi che hanno un field
|
|
if(fr != NULL)
|
|
{
|
|
const TString& value = get_config()->get(fr->name(), NULL, r);
|
|
if (value.empty() && f->dlg() == 101)
|
|
{
|
|
found = false;
|
|
break;
|
|
}
|
|
s->row(r).add(value, s->cid2index(f->dlg()));
|
|
}
|
|
}
|
|
if (found)
|
|
s->check_row(r, 1);
|
|
}
|
|
s->force_update();
|
|
}
|
|
}
|
|
}
|
|
|
|
//questa serve per salvare gli sheet della maschera (tipo quello con i codici iva)
|
|
void TConf_Hardy::save_mask(bool tosave)
|
|
{
|
|
TConfig* cnf = get_config();
|
|
if (!tosave || cnf == NULL)
|
|
return;
|
|
|
|
TConfig_application::save_mask(tosave);
|
|
|
|
TAssoc_array& v = cnf->list_variables("ha");
|
|
FOR_EACH_ASSOC_STRING(v, h, k, str)
|
|
{
|
|
const TFixed_string name = k;
|
|
if (name.find('(') > 0 && !name.starts_with("IVA"))
|
|
v.remove(name);
|
|
}
|
|
|
|
TConf_Hardy_mask& m = (TConf_Hardy_mask&) *get_mask();
|
|
|
|
FOR_EACH_MASK_SHEET(m, i, s)
|
|
{
|
|
TMask& sm = s->sheet_mask();
|
|
FOR_EACH_SHEET_ROW(*s, j, row)
|
|
{
|
|
FOR_EACH_MASK_FIELD(sm, k, f)
|
|
{
|
|
const TFieldref* fr = f->field();
|
|
if (fr != NULL)
|
|
{
|
|
const char* value = row->get(s->cid2index(f->dlg()));
|
|
cnf->set(fr->name(), value, NULL, true, j);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cnf->set_paragraph("ha");
|
|
}
|
|
|
|
bool TConf_Hardy::user_create( )
|
|
{
|
|
TConfig cfg(CONFIG_DITTA, "ha");
|
|
cfg.set("EdMask", "ha0200a");
|
|
return true;
|
|
}
|
|
|
|
bool TConf_Hardy::user_destroy( )
|
|
{
|
|
if (_ch != NULL)
|
|
delete _ch;
|
|
return true;
|
|
}
|
|
|
|
int ha0200(int argc, char* argv[])
|
|
{
|
|
TConf_Hardy configapp;
|
|
configapp.run(argc, argv, TR("Configurazione modulo"));
|
|
return 0;
|
|
} |