Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunti commenti e tolte funzioni vuote! git-svn-id: svn://10.65.10.50/trunk@15202 c028cbd2-c16b-5b4b-a496-9718f37d4682
141 lines
3.4 KiB
C++
Executable File
141 lines
3.4 KiB
C++
Executable File
#include <automask.h>
|
|
#include <confapp.h>
|
|
#include <lffiles.h>
|
|
#include <prefix.h>
|
|
#include <sheet.h>
|
|
|
|
#include "ce0400a.h"
|
|
|
|
//------------------------------------------------------
|
|
// Maschera di configurazione
|
|
//------------------------------------------------------
|
|
class TConfig_mask : public TAutomask
|
|
{
|
|
protected:
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TConfig_mask() : TAutomask("ce0400a") { }
|
|
};
|
|
|
|
|
|
bool TConfig_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
|
{
|
|
switch (f.dlg())
|
|
{
|
|
case F_NAME_USER:
|
|
if (e == fe_button)
|
|
{
|
|
//crea lo sheet con i campi del .trr
|
|
TArray_sheet sht(-1,-1,-4,-4,TR("Parametri campi"),HR("Nome@10R|Tipo|Lunghezza|Decimali"));
|
|
const RecDes& rd = prefix().get_recdes(LF_CESPI);
|
|
|
|
for (int i = 0; i < rd.NFields; i++)
|
|
{
|
|
const RecFieldDes& rfd = rd.Fd[i];
|
|
TToken_string row;
|
|
//deve aggiungere solo i campi il cui nome comincia per "_"
|
|
if (rfd.Name[0] == '_')
|
|
{
|
|
row.add(rfd.Name); //nome campo
|
|
row.add(rfd.TypeF); //tipo
|
|
row.add(rfd.Len);//lunghezza
|
|
row.add(rfd.Dec);//decimali
|
|
sht.add(row);
|
|
}
|
|
}
|
|
if (sht.items() > 0)
|
|
{
|
|
if (sht.run() == K_ENTER)
|
|
f.set(sht.row(-1).get(0));
|
|
}
|
|
else
|
|
return error_box(TR("Non ci sono campi personalizzati"));
|
|
|
|
}
|
|
break;
|
|
default: break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
//------------------------------------------------------
|
|
// Applicazione
|
|
//------------------------------------------------------
|
|
class TCespi_config_app : public TConfig_application
|
|
{
|
|
TConfig_mask* _mask;
|
|
|
|
protected:
|
|
virtual const char* get_mask_name() const { return "ce0400a"; }
|
|
TMask* create_mask(const TFilename& f);
|
|
virtual TMask* get_mask();
|
|
|
|
public:
|
|
virtual void load_mask();
|
|
virtual void save_mask(bool tosave);
|
|
TCespi_config_app();
|
|
};
|
|
|
|
TMask* TCespi_config_app::create_mask(const TFilename& f)
|
|
{
|
|
if (_mask == NULL)
|
|
_mask = new TConfig_mask;
|
|
|
|
return _mask;
|
|
}
|
|
|
|
TMask* TCespi_config_app::get_mask()
|
|
{
|
|
if (_mask == NULL)
|
|
{
|
|
const TFilename name = get_mask_name();
|
|
create_mask(name);
|
|
}
|
|
|
|
return _mask;
|
|
}
|
|
|
|
//carica i valori dal ditta.ini nello sheet della maschera
|
|
void TCespi_config_app::load_mask()
|
|
{
|
|
TConfig_application::load_mask(); //chiama la load_mask() standard dei TConfig per caricare i campi != sheet
|
|
TConfig& config = *get_config(); //si carica il config della load_mask
|
|
TSheet_field& sf = get_mask()->sfield(F_USER);
|
|
|
|
for (int i = 0; config.exist("USER", i); i++)
|
|
sf.row(i) = config.get("USER", NULL, i);
|
|
}
|
|
|
|
//registra i valori dello sheet nel ditta.ini
|
|
void TCespi_config_app::save_mask(bool tosave)
|
|
{
|
|
TConfig* config = get_config();
|
|
if (config == NULL)
|
|
return;
|
|
|
|
TConfig_application::save_mask(tosave);
|
|
|
|
//svuota il paragrafo sul .ini prima di ricompilarlo (se non si facesse
|
|
//non si riuscirebbero ad ammazzare le righe sul .ini
|
|
for (int i = 0; config->exist("USER", i); i++)
|
|
config->remove("USER", i);
|
|
|
|
TSheet_field& sf = get_mask()->sfield(F_USER);
|
|
FOR_EACH_SHEET_ROW (sf, j, row)
|
|
{
|
|
config->set("USER", *row, "ce", true, j);
|
|
}
|
|
}
|
|
|
|
TCespi_config_app::TCespi_config_app() : TConfig_application(CONFIG_DITTA), _mask(NULL)
|
|
{ }
|
|
|
|
int ce0400 (int argc, char* argv[])
|
|
{
|
|
TCespi_config_app appc;
|
|
appc.run(argc, argv, TR("Parametri Ditta"));
|
|
return 0;
|
|
}
|