campo-sirio/mr/mr0400.cpp
alex a29e4b43d4 Patch level : 2.1 048
Files correlati     : mr0.exe mr1.exe mr2.exe
Ricompilazione Demo : [ ]
Commento            :
Bug 0000135

 Implementare la gestione multilingua


git-svn-id: svn://10.65.10.50/trunk@12087 c028cbd2-c16b-5b4b-a496-9718f37d4682
2004-05-18 11:17:26 +00:00

130 lines
3.2 KiB
C++
Executable File

// Gestione parametri ditta MRP
#ifndef __CONFAPP_H
#include <confapp.h>
#endif
#include "mrplib.h"
#include "mr0400.h"
#define NTURNI 8
class TConf_MRP_mask : public TCalendar_mask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TConf_MRP_mask(const char* name, int num = 0);
virtual ~TConf_MRP_mask();
};
bool TConf_MRP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_YEAR:
if (e == fe_init || e == fe_modify)
update_calendar(F_CALENDAR, F_YEAR);
break;
default:
break;
}
return TRUE;
}
TConf_MRP_mask::TConf_MRP_mask(const char* name, int num)
: TCalendar_mask(name, num)
{
set_handlers();
}
TConf_MRP_mask::~TConf_MRP_mask()
{
}
//////////////////////////////////////////////////
// TConf_MRP_application
//////////////////////////////////////////////////
class TConf_MRP_application : public TConfig_application
{
TConf_MRP_mask *_mask;
protected:
virtual TMask* get_mask() { return _mask; }
virtual TMask* create_mask(const TFilename& f) { if (_mask == NULL) _mask = new TConf_MRP_mask(f); return _mask;}
virtual void destroy_mask() { delete _mask; _mask = NULL; }
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_MRP_application() : TConfig_application(CONFIG_DITTA) { _mask = NULL;}
virtual ~TConf_MRP_application() {}
};
bool TConf_MRP_application::preprocess_config (TMask& mask, TConfig& c)
{
TMRP_config& config=(TMRP_config&)c;
for (int i = 0; i < NTURNI; i++)
{
const short h = F_T1HINIZIO+(i*4);
// inizio turno
mask.set(h , config.ora_inizio_turno(i)); // Hour...
mask.set(h+1, config.min_inizio_turno(i)); // Minutes...
// durata turno
mask.set(h+2, config.ore_durata_turno(i));
mask.set(h+3, config.min_durata_turno(i));
mask.set(F_T1NUMPERS+i,config.numpers_turno(i));
}
// Carica il calendario
((TCalendar_mask&)mask).update_calendar(F_CALENDAR, F_YEAR);
return TRUE;
}
bool TConf_MRP_application::postprocess_config (TMask& mask, TConfig& c)
{
TMRP_config& config=(TMRP_config&)c;
for (int i = 0; i < NTURNI; i++)
{
// Traduce le ore ed i minuti
const short h = F_T1HINIZIO+(i*4);
config.set_inizio_turno(i,mask.get_int(h) ,mask.get_int(h+1));
config.set_durata_turno(i,mask.get_int(h+2),mask.get_int(h+3));
// numero di persone
config.set_numpers_turno(i,mask.get_int(F_T1NUMPERS+i));
}
config.set_gestimpianti(mask.get_bool(F_GESTIMPIANTI));
config.set_turni(mask.get_int(F_NTURNI));
TString paragraph(config.get_paragraph());
config.set_paragraph(""); // Akkrokkio per salvare il calendario...
((const TCalendar_mask&)mask).calendar().write();
config.set_paragraph(paragraph); // re-read
return TRUE;
}
bool TConf_MRP_application::user_create()
{
TConfig conf(CONFIG_DITTA);
conf.set( "EdMask", "mr0400a", "mr");
return TRUE;
}
bool TConf_MRP_application::user_destroy()
{
return TRUE;
}
int mr0400(int argc, char* argv[])
{
TConf_MRP_application app;
app.run(argc, argv, TR("Parametri gestione MRP"));
return 0;
}