Files correlati : Ricompilazione Demo : [ ] Commento : gestione intelligente dei moduli CA-CM in base all'autorizzazione sulla chiave git-svn-id: svn://10.65.10.50/trunk@18963 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			217 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| // gestione tabelle Contabilita' Analitica
 | |
| #include <automask.h>
 | |
| #include <modaut.h>
 | |
| #include <tabapp.h>
 | |
| 
 | |
| #include "calib01.h"
 | |
| #include "calibmsk.h"
 | |
| #include "catbauc.h"
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| //MASCHERA GENERICA DI TABELLA NON GERARCHICA 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| // maschere delle tabelle di Contabilita' Analitica
 | |
| class TMask_tabca : public TAutomask
 | |
| {
 | |
| 
 | |
| protected:
 | |
|   bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | |
| public:
 | |
|   TMask_tabca(const char * ,const TString16 &);
 | |
|   virtual ~TMask_tabca();
 | |
| };
 | |
| 
 | |
| TMask_tabca::TMask_tabca(const char * _maskname,const TString16 &tabname):
 | |
|   TAutomask(_maskname)
 | |
| {
 | |
| }
 | |
| 
 | |
| TMask_tabca::~TMask_tabca()
 | |
| {
 | |
| }
 | |
| 
 | |
| bool TMask_tabca::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | |
| { 
 | |
| /*  switch (o.dlg())
 | |
|   {
 | |
| 
 | |
|   default: break;
 | |
|   }*/  
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| //MASCHERA GENERICA DI TABELLA GERARCHICA (attualmente usata per tutte le tabelle catbxxx)
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| class TMask_tabanal : public TSimple_anal_msk
 | |
| {
 | |
|   const char* _codtab;
 | |
|   const char* _keyvar;
 | |
|   const char* _desvar;
 | |
| 
 | |
| protected:
 | |
|   virtual int get_logicnum() const { return LF_TAB; }
 | |
|   virtual const char* get_tabname() const {return _codtab; }
 | |
|   virtual const char* get_key_var() const { return _keyvar; }
 | |
|   virtual const char* get_des_var() const { return _desvar; }
 | |
|   virtual short get_field_id(int n, int k) const;
 | |
| 
 | |
| public:
 | |
|   TMask_tabanal(const char* c, const char* k, const char* d);
 | |
| };
 | |
| 
 | |
| short TMask_tabanal::get_field_id(int n, int k) const
 | |
| {
 | |
|   const int tot = fieldrefs(1);
 | |
|   short id = 0;
 | |
|   if (n >= 0 && n < tot)
 | |
|   {
 | |
|     if (k == 2)
 | |
|       id = F_DES1+n;
 | |
|     else
 | |
|       id = F_KEY1+n;
 | |
|   }
 | |
|   return id;
 | |
| }
 | |
| 
 | |
| 
 | |
| TMask_tabanal::TMask_tabanal(const char* c, const char* k, const char* d)
 | |
|              : _codtab(c),_keyvar(k),_desvar(d)
 | |
| { 
 | |
|   TString16 maskname;
 | |
|   maskname << "catb" << c;
 | |
|   read(maskname); 
 | |
| }
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| //APPLICAZIONE
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| // applicazione per la gestione delle tabelle di Contabilita' Analitica
 | |
| class TTab_app_ca : public Tab_application
 | |
| {
 | |
| 
 | |
| protected:  // TRelation_application
 | |
|   virtual bool user_destroy() ;          
 | |
|   virtual bool user_create() ;
 | |
|   virtual int rewrite(const TMask& m);
 | |
|   virtual void  common_mode(TMask& m, const bool mode_insert);
 | |
|   virtual void  init_insert_mode(TMask& m);
 | |
|   virtual void  init_modify_mode(TMask& m);
 | |
| 	virtual void  init_query_mode(TMask& m);
 | |
|   virtual void  init_query_insert_mode(TMask& m);
 | |
| 
 | |
|   virtual TMask * set_mask(TMask * _m=NULL);
 | |
|   
 | |
| public:
 | |
|   TTab_app_ca();
 | |
|   virtual ~TTab_app_ca() {}
 | |
| };
 | |
| 
 | |
| HIDDEN inline TTab_app_ca& app() { return (TTab_app_ca&)main_app(); }
 | |
| 
 | |
| // costruttore
 | |
| TTab_app_ca::TTab_app_ca() {}
 | |
| 
 | |
| 
 | |
| // alloca/cambia la maschera dell'applicazione
 | |
| TMask * TTab_app_ca::set_mask(TMask * _m)
 | |
| {
 | |
|   if (_m != NULL)
 | |
|     return Tab_application::set_mask(_m);
 | |
|   else 
 | |
|   {
 | |
|     const TFixed_string tabname(get_tabname());
 | |
|     TString maskname;
 | |
|     TMask * m = NULL;
 | |
|     if (tabname == "CDC")
 | |
|       m = new TMask_tabanal("CDC", "CdC", "CdCDes"); else
 | |
|     if (tabname == "CMS")
 | |
|       m = new TMask_tabanal("CMS", "Cms", "CmsDes"); else
 | |
|     if (tabname == "FSC")
 | |
|       m = new TMask_tabanal("FSC", "Fsc", "FscDes");
 | |
|     else
 | |
|       m = new TMask_tabca((const char *)get_mask_name(maskname),tabname);
 | |
|     return Tab_application::set_mask(m);
 | |
|   }
 | |
| }
 | |
| 
 | |
| bool TTab_app_ca::user_create()
 | |
| {
 | |
|   bool ok = Tab_application::user_create();
 | |
|   
 | |
|   if (ok) 
 | |
|   {
 | |
|     TMask& mask = *set_mask();
 | |
|   }
 | |
|   
 | |
|   return ok;
 | |
| }
 | |
| 
 | |
| bool TTab_app_ca::user_destroy()
 | |
| {
 | |
|   return Tab_application::user_destroy();
 | |
| }
 | |
| 
 | |
| int TTab_app_ca::rewrite(const TMask& m)
 | |
| {
 | |
|   return Tab_application::rewrite(m);
 | |
| }
 | |
| 
 | |
| void TTab_app_ca::init_insert_mode(TMask& m)
 | |
| {
 | |
|   Tab_application::init_insert_mode(m);
 | |
|   m.show_default();
 | |
| }
 | |
| 
 | |
| void TTab_app_ca::init_modify_mode(TMask& m)
 | |
| {
 | |
|   Tab_application::init_modify_mode(m);
 | |
|   m.show_default();
 | |
| }
 | |
| 
 | |
| void TTab_app_ca::common_mode(TMask& m, const bool mode_insert)
 | |
| {
 | |
|   //Solo per tabella %AUC
 | |
|   //in ricerca semplice la ricerca viene fatta sulla tabella %AUC (quindi usa il campo F_AUC_CODICE)
 | |
|   //in inserimento la ricerca va fatta sul file USER (quindi usa il campo F_AUC_CODICE1)
 | |
| 	if (get_tabname() == "%AUC")
 | |
|   {
 | |
|     if (mode_insert)
 | |
|     {
 | |
|       m.hide(F_AUC_CODICE);
 | |
|       m.show(F_AUC_CODICE1);
 | |
|     }
 | |
|     else
 | |
|     {
 | |
| 		  m.hide(F_AUC_CODICE1);
 | |
|       m.show(F_AUC_CODICE);
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| void TTab_app_ca::init_query_mode(TMask& m)
 | |
| {
 | |
|   Tab_application::init_query_mode(m);
 | |
| 	m.show_default();
 | |
| 
 | |
|   common_mode(m, false);
 | |
| }
 | |
| 
 | |
| void TTab_app_ca::init_query_insert_mode(TMask& m)
 | |
| {
 | |
| 	Tab_application::init_query_insert_mode(m);
 | |
| 	m.show_default();
 | |
|   
 | |
|   common_mode(m, true);
 | |
| }
 | |
| 
 | |
| int ca0100(int argc, char* argv[])
 | |
| {
 | |
|   TTab_app_ca a;
 | |
|   a.run(argc, argv, TR("Tabella"));
 | |
|   return 0;
 | |
| }
 | |
| 
 |