Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21167 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			181 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include <automask.h>
 | |
| #include <confapp.h>
 | |
| #include <relation.h>
 | |
| 
 | |
| #include "ha0200a.h"
 | |
| 
 | |
| ///////////////////////////////////////////////////
 | |
| //  Maschera
 | |
| ///////////////////////////////////////////////////
 | |
| class TConf_Hardy_mask : public TAutomask
 | |
| {
 | |
| protected:
 | |
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | |
| 
 | |
| public:
 | |
| 	void config_loader(TSheet_field& sf, const char* paragrafo);
 | |
| 	void config_setter(TSheet_field& sf, const char* paragrafo);
 | |
|   TConf_Hardy_mask(const TFilename& f);
 | |
|   
 | |
|   virtual ~TConf_Hardy_mask(){};
 | |
| };
 | |
| 
 | |
| bool TConf_Hardy_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | |
| { 
 | |
|   /*switch (o.dlg())
 | |
|   {
 | |
|   default:
 | |
|     break;
 | |
|   }*/
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| TConf_Hardy_mask::TConf_Hardy_mask(const TFilename& f) : TAutomask (f)
 | |
| {
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////
 | |
| //  Applicazione
 | |
| ///////////////////////////////////////////////////
 | |
| class TConf_Hardy : public TConfig_application
 | |
| {
 | |
|   TMask* _ch;
 | |
| 
 | |
| protected:
 | |
|   virtual TMask* create_mask(const TFilename& f);
 | |
|   virtual TMask* get_mask();
 | |
|   virtual void load_mask();
 | |
|   virtual void save_mask(bool tosave);
 | |
| 
 | |
| 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_Hardy() : TConfig_application(CONFIG_DITTA), _ch(NULL) { }
 | |
|   virtual ~TConf_Hardy() { }
 | |
| };
 | |
| 
 | |
| TMask* TConf_Hardy::get_mask()
 | |
| {
 | |
|   return _ch;
 | |
| }
 | |
| 
 | |
| TMask* TConf_Hardy::create_mask(const TFilename& f)
 | |
| {
 | |
|   if (_ch == NULL)
 | |
|     _ch = new TConf_Hardy_mask(f);
 | |
|   return _ch;
 | |
| }
 | |
| 
 | |
| bool TConf_Hardy::preprocess_config (TMask& mask, TConfig& config)
 | |
| {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TConf_Hardy::postprocess_config (TMask& mask, TConfig& config)
 | |
| {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| //questa serve per caricare gli sheet della maschera
 | |
| void TConf_Hardy::load_mask()
 | |
| {
 | |
|   TMask* m = get_mask();
 | |
|   if (m != NULL)
 | |
| 	{
 | |
| 		TConfig_application::load_mask();
 | |
|     //dopo aver caricato la maschera principale, fa il giro sugli sheet presenti
 | |
| 		FOR_EACH_MASK_SHEET((*m), i, s)
 | |
| 		{
 | |
| 			s->destroy();
 | |
|       //carica la maschera del singolo sheet
 | |
| 			TMask& sm = s->sheet_mask();
 | |
| 
 | |
| 			bool found = true;
 | |
| 			for (int r = 0; found; r++)
 | |
| 			{
 | |
|         //giro sui campi della maschera di sheet
 | |
| 				FOR_EACH_MASK_FIELD(sm, j, f)
 | |
| 				{
 | |
| 					const TFieldref* fr = f->field();
 | |
|           //deve caricare solo i campi che hanno un field
 | |
| 					if(fr != NULL)
 | |
| 					{
 | |
| 						const TString& value = get_config()->get(fr->name(), NULL, r);
 | |
| 						if (value.empty() && f->dlg() == 101) 
 | |
| 						{ 
 | |
| 							found = false;
 | |
| 							break;
 | |
| 						}
 | |
| 						s->row(r).add(value, s->cid2index(f->dlg()));
 | |
| 					}
 | |
| 				}
 | |
| 				if (found)
 | |
| 					s->check_row(r, 1);
 | |
| 			}
 | |
| 			s->force_update();
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| //questa serve per salvare gli sheet della maschera (tipo quello con i codici iva)
 | |
| void TConf_Hardy::save_mask(bool tosave)
 | |
| {
 | |
|   TConfig* cnf = get_config();
 | |
|   if (!tosave || cnf == NULL) 
 | |
|     return;
 | |
| 
 | |
|   TConfig_application::save_mask(tosave);
 | |
| 
 | |
|   TAssoc_array& v = cnf->list_variables("ha");
 | |
|   FOR_EACH_ASSOC_STRING(v, h, k, str)
 | |
|   {
 | |
|     const TFixed_string name = k;
 | |
|     if (name.find('(') > 0 && !name.starts_with("IVA"))
 | |
|       v.remove(name);
 | |
|   }
 | |
|   
 | |
|   TConf_Hardy_mask& m = (TConf_Hardy_mask&) *get_mask();
 | |
| 
 | |
|   FOR_EACH_MASK_SHEET(m, i, s)
 | |
|   {
 | |
|     TMask& sm = s->sheet_mask();
 | |
|     FOR_EACH_SHEET_ROW(*s, j, row)
 | |
|     {
 | |
|       FOR_EACH_MASK_FIELD(sm, k, f)
 | |
|       {
 | |
|         const TFieldref* fr = f->field();
 | |
|         if (fr != NULL)
 | |
|         {
 | |
|           const char* value = row->get(s->cid2index(f->dlg()));
 | |
|           cnf->set(fr->name(), value, NULL, true, j);
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   cnf->set_paragraph("ha");
 | |
| }
 | |
| 
 | |
| bool TConf_Hardy::user_create( )
 | |
| {
 | |
| 	TConfig cfg(CONFIG_DITTA, "ha");
 | |
|   cfg.set("EdMask", "ha0200a");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TConf_Hardy::user_destroy( )
 | |
| {
 | |
|   if (_ch != NULL)
 | |
|     delete _ch;
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| int ha0200(int argc, char* argv[])
 | |
| {
 | |
|  TConf_Hardy configapp;
 | |
|   configapp.run(argc, argv, TR("Configurazione modulo"));
 | |
|   return 0;
 | |
| } |