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;
 | |
| } |