Files correlati :ca0.exe ca3.exe ca0300.msk Ricompilazione Demo : [ ] Commento :aggiunto trattamento causali rateo/risconto in configurazione e stampa rendiconto; richiesta di Eva Braun del CRPA git-svn-id: svn://10.65.10.50/trunk@14372 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			188 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include <automask.h>
 | |
| #include <confapp.h>
 | |
| 
 | |
| #include "calib01.h"
 | |
| #include "ca0.h"
 | |
| #include "ca0300a.h"
 | |
| 
 | |
| // TConf_mask
 | |
| class TConf_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_mask(const TFilename& f);
 | |
|   
 | |
|   virtual ~TConf_mask(){};
 | |
| };
 | |
| 
 | |
| bool TConf_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | |
| { 
 | |
|   switch (o.dlg())
 | |
|   {
 | |
|   case F_LEVEL_1 :
 | |
|     if (e == fe_modify || e == fe_init)
 | |
|     {
 | |
|       TToken_string cod, desc;
 | |
|       cod = " ";
 | |
|       desc = TR("Nessuno");
 | |
|       if (o.get() == "CDC")
 | |
|       {
 | |
|         cod.add("CMS");
 | |
|         desc.add(TR("Commessa"));
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         cod.add("CDC");
 | |
|         desc.add(TR("Centro di Costo"));
 | |
|       }
 | |
| 
 | |
|       TList_field& lev2 = (TList_field&)field(F_LEVEL_2);
 | |
|       const TString4 laccio = lev2.get();
 | |
|       lev2.replace_items(cod, desc);
 | |
|       lev2.set(laccio);
 | |
|     }
 | |
|     break;
 | |
| 
 | |
|   case F_FATHER_FASI :
 | |
|     if (e == fe_close && !o.empty())
 | |
|     {
 | |
|       const TString& lev1 = get(F_LEVEL_1);
 | |
|       const TString& lev2 = get(F_LEVEL_2);
 | |
|       if (o.get() != lev1 && o.get() != lev2)
 | |
|         return error_box(TR("Livello superiore di fase non valido"));
 | |
|     }
 | |
| 
 | |
|   default: break;
 | |
|   }  
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| TConf_mask::TConf_mask(const TFilename& f) : TAutomask (f)
 | |
| {
 | |
| }
 | |
|   
 | |
| //-----CONFIG APPLICATION------------------------------------------------------------------------------------------//
 | |
| 
 | |
| class TConf_Analitica : public TConfig_application
 | |
| {
 | |
|   TMask* _cm;
 | |
|   virtual const char* extra_modules() const { return "cm"; } //funziona anche con autorizzazione CM
 | |
| 
 | |
| protected:
 | |
|   virtual TMask* create_mask(const TFilename& f);
 | |
|   virtual TMask* get_mask();
 | |
| 
 | |
| public:
 | |
|   // @cmember Disabilita la verifica del modulo in chiave
 | |
|   virtual bool check_autorization() const { return false; }
 | |
| 
 | |
|   virtual bool preprocess_config (TMask& mask, TConfig& config);
 | |
|   virtual bool postprocess_config (TMask& mask, TConfig& config);
 | |
|   virtual bool user_create( );
 | |
|   virtual bool user_destroy( );
 | |
| 
 | |
| 	void config_loader(TSheet_field& sf, TConfig& config, TString4 tipo);
 | |
| 	void config_setter(TSheet_field& sf, TConfig& config, TString4 tipo);
 | |
| 
 | |
|   TConf_Analitica() : TConfig_application(CONFIG_DITTA), _cm(NULL) { }
 | |
|   virtual ~TConf_Analitica() { }
 | |
| };
 | |
| 
 | |
| TMask* TConf_Analitica::get_mask()
 | |
| {
 | |
|   return _cm;
 | |
| }
 | |
| 
 | |
| TMask* TConf_Analitica::create_mask(const TFilename& f)
 | |
| {
 | |
|   if (_cm == NULL)
 | |
|     _cm = new TConf_mask(f);
 | |
|   return _cm;
 | |
| }
 | |
| 
 | |
| void TConf_Analitica::config_loader(TSheet_field& sf, TConfig& config, TString4 tipo)
 | |
| {
 | |
| 	for (int i = 0;;i++)
 | |
| 	{
 | |
| 		TToken_string num_doc(config.get(tipo, NULL, i));
 | |
| 		if (num_doc.blank())
 | |
| 			break;
 | |
| 		TToken_string& row = sf.row(i);
 | |
| 		row.add(num_doc.get(0));
 | |
| 		row.add("");
 | |
| 		row.add(num_doc.get(1));
 | |
| 		if (tipo == "ND")
 | |
| 		{
 | |
| 			row.add(num_doc.get(2));
 | |
| 			row.add(num_doc.get(3));
 | |
| 		}
 | |
| 		sf.check_row(i);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void TConf_Analitica::config_setter(TSheet_field& sf, TConfig& config, TString4 tipo)
 | |
| {
 | |
| 	const int items = sf.items();
 | |
| 	for (int i = items; ;i++)
 | |
| 	{
 | |
| 		TToken_string num_doc(config.get(tipo, NULL, i));
 | |
| 		if (num_doc.blank())
 | |
| 			break;
 | |
| 		config.remove(tipo, i);
 | |
| 	}
 | |
| 
 | |
|   FOR_EACH_SHEET_ROW (sf, j, row)
 | |
|   {
 | |
| 		TToken_string num_doc;
 | |
| 		num_doc.add(row->get(0));
 | |
| 		if (tipo == "ND")
 | |
| 		{
 | |
| 			num_doc.add(row->get(2));
 | |
| 			num_doc.add(row->get(3));
 | |
| 			num_doc.add(row->get(4));
 | |
| 		}
 | |
|     config.set(tipo, num_doc, NULL, true, j);	//setta i valori nel config
 | |
|   }
 | |
| }
 | |
| 
 | |
| bool TConf_Analitica::preprocess_config (TMask& mask, TConfig& config)
 | |
| {
 | |
| 	config_loader(mask.sfield(F_RIGHE_NUM), config, "ND");
 | |
| 	config_loader(mask.sfield(F_RIGHE_FDR), config, "NF");
 | |
| 	config_loader(mask.sfield(F_RIGHE_RER), config, "RR");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TConf_Analitica::postprocess_config (TMask& mask, TConfig& config)
 | |
| {
 | |
| 	config_setter(mask.sfield(F_RIGHE_NUM), config, "ND");
 | |
| 	config_setter(mask.sfield(F_RIGHE_FDR), config, "NF");
 | |
| 	config_setter(mask.sfield(F_RIGHE_RER), config, "RR");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TConf_Analitica::user_create( )
 | |
| {
 | |
| 	TConfig cfg(CONFIG_DITTA, "ca");
 | |
|   cfg.set("EdMask", "ca0300a");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TConf_Analitica::user_destroy( )
 | |
| {
 | |
|   if (_cm != NULL)
 | |
|     delete _cm;
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| int ca0300(int argc, char* argv[])
 | |
| {
 | |
|   TConf_Analitica app;
 | |
|   app.run(argc, argv, TR("Parametri Contabilita' Analitica"));
 | |
|   return 0;
 | |
| }
 |