campo-sirio/dt/dt0300.cpp
alex c434cad322 Patch level : 4.0 451
Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

Riportata la versione 3.1 patch 650


git-svn-id: svn://10.65.10.50/trunk@14148 c028cbd2-c16b-5b4b-a496-9718f37d4682
2006-07-11 13:10:51 +00:00

185 lines
4.4 KiB
C++
Executable File

#include <automask.h>
#include <confapp.h>
#include "dt0300a.h"
#include "dt0300b.h"
class TConf_dt : public TConfig_application
{
TMask* _mask;
char _current;
protected:
virtual TMask* get_mask() { return _mask; }
virtual TMask* create_mask(const TFilename& f) { if (_mask == NULL) _mask = new TMask(f); return _mask;}
virtual void destroy_mask() { delete _mask; _mask = NULL; }
virtual void load_mask();
virtual void save_mask(bool tosave);
bool save_mask_doc(TMask* mask);
bool load_mask_doc(TMask* mask);
bool save_mask_ditte(TMask* mask);
bool load_mask_ditte(TMask* mask);
public:
virtual bool user_create( );
virtual bool user_destroy( );
TConf_dt() : TConfig_application() { _mask = NULL;}
virtual ~TConf_dt( ){ }
};
bool TConf_dt::load_mask_doc(TMask* mask)
{
TConfig* config_studio = get_config();
TConfig_application::load_mask();
TToken_string workstring;
TSheet_field& sf_doc = mask->sfield(F_CONF_DOC);
sf_doc.destroy();
for (int k = 0; config_studio->exist("ConfDoc", k); k++)
{
workstring= config_studio->get("ConfDoc", NULL, k);
TToken_string& row = sf_doc.row(-1);
row.add(workstring.get(0), 0);
row.add(workstring.get(1), 1);
row.add(workstring.get(2), 2);
row.add(workstring.get(3), 3);
row.add(workstring.get(4), 4);
sf_doc.check_row(sf_doc.items()-1);
}
return TRUE;
}
bool TConf_dt::load_mask_ditte(TMask* mask)
{
TConfig* config_studio = get_config();
TConfig_application::load_mask();
TToken_string workstring;
TSheet_field& sf_ditte = mask->sfield(F_CONF_DITTE);
sf_ditte.destroy();
for (int k = 0; config_studio->exist("ConfDitte", k); k++)
{
workstring= config_studio->get("ConfDitte", NULL, k);
TToken_string& row = sf_ditte.row(-1);
row.add(workstring.get(0), 0);
row.add(workstring.get(1), 1);
row.add(workstring.get(2), 2);
row.add(workstring.get(3), 3);
row.add(workstring.get(4), 4);
row.add(workstring.get(5), 5);
sf_ditte.check_row(sf_ditte.items()-1);
}
return TRUE;
}
void TConf_dt::load_mask()
{
TMask* mask = get_mask();
if (mask==NULL)
return;
if (_current=='1')
load_mask_doc(mask);
if (_current=='2')
load_mask_ditte(mask);
}
bool TConf_dt::save_mask_doc(TMask* mask)
{
TConfig* config_studio = get_config();
for (int k = 0; config_studio->exist("ConfDoc", k); k++)
config_studio->remove("ConfDoc", k);
TToken_string workstring;
TSheet_field& sf_doc = mask->sfield(F_CONF_DOC);
int c = 0;
FOR_EACH_SHEET_ROW(sf_doc, j, line)
{
workstring.cut(0);
workstring.add(line->get(0));
workstring.add(line->get(1));
workstring.add(line->get(2));
workstring.add(line->get(3));
workstring.add(line->get(4));
config_studio->set("ConfDoc", workstring, NULL, true, c++);
}
return TRUE;
}
bool TConf_dt::save_mask_ditte(TMask* mask)
{
TConfig* config_studio = get_config();
for (int k = 0; config_studio->exist("ConfDitte", k); k++)
config_studio->remove("ConfDitte", k);
TToken_string workstring;
TSheet_field& sf_ditte = mask->sfield(F_CONF_DITTE);
int c = 0;
FOR_EACH_SHEET_ROW(sf_ditte, j, line)
{
workstring.cut(0);
workstring.add(line->get(0));
if (!workstring.blank())
{
workstring.add(line->get(1));
workstring.add(line->get(2));
workstring.add(line->get(3));
workstring.add(line->get(4));
workstring.add(line->get(5));
config_studio->set("ConfDitte", workstring, NULL, true, c++);
}
}
return TRUE;
}
void TConf_dt::save_mask(bool tosave)
{
TMask* mask = get_mask();
if (mask==NULL)
return;
bool ask_save = mask->dirty() && !tosave;
if (ask_save)
tosave = yesno_box("Modifiche non registrate. Salvare?");
if (tosave)
{
TConfig_application::save_mask(tosave);
if (_current == '1')
save_mask_doc(mask);
if (_current == '2')
save_mask_ditte(mask);
}
}
bool TConf_dt::user_create( )
{
TString16 arg( argv(2) );
if( arg[ 0 ] != '-' )
fatal_box( TR( "Usage: dt0 -2 -[1|2]") );
_current = arg[1];
TConfig conf(CONFIG_STUDIO );
set_config(CONFIG_STUDIO);
switch( _current )
{
case '1':
conf.set( "EdMask", "dt0300a", "dt");
break;
case '2':
conf.set( "EdMask", "dt0300b", "dt" );
break;
default:
fatal_box( TR("Usage: dt0 -2 -[1|2]") );
return FALSE;
break;
}
return TRUE;
}
bool TConf_dt::user_destroy( )
{
return TRUE;
}
int dt0300(int argc, char* argv[])
{
TConf_dt app;
app.run(argc, argv, TR("Configurazione modulo"));
return 0;
}