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
		
			
				
	
	
		
			185 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
} |