Files correlati : ve6.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 979 git-svn-id: svn://10.65.10.50/trunk@15623 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			220 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| // gestione files Contabilita' Analitica: CENTRI DI COSTO
 | |
| #include <automask.h>
 | |
| #include <execp.h>
 | |
| #include <relapp.h>
 | |
| #include <pconti.h>
 | |
| #include <recarray.h>
 | |
| 
 | |
| #include "tc1800a.h"
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| //MASCHERA
 | |
| ////////////////////////////////////////////////////////////////////////
 | |
| class TZC_ricl_msk : public TAutomask
 | |
| {
 | |
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | |
| 	
 | |
| public:
 | |
|   TZC_ricl_msk() : TAutomask("tc1800a") {}
 | |
| };
 | |
| 
 | |
| bool TZC_ricl_msk::on_field_event(TOperable_field& o, TField_event e, long jolly) 
 | |
| {
 | |
| 	switch (o.dlg())
 | |
| 	{
 | |
| 	case F_CONTO:
 | |
| 		{
 | |
| 			TString16 key;
 | |
| 			key.format("%d|%d", o.mask().get_int(F_GRUPPO), o.mask().get_int(F_CONTO));
 | |
| 			const TRectype & rec = cache().get(LF_PCON, key);
 | |
| 			const char tsottoc = rec.get_char(PCN_TMCF);
 | |
| 
 | |
| 			if (tsottoc <= ' ')
 | |
| 			{
 | |
| 				enable(F_SOTTOCONTO);
 | |
| 				enable(F_DESC);
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				disable(F_SOTTOCONTO);
 | |
| 				disable(F_DESC);
 | |
| 				reset(F_SOTTOCONTO);
 | |
| 			}
 | |
| 
 | |
| 		}
 | |
| 		break;			
 | |
| 	default:
 | |
| 		break;
 | |
| 	}
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| class TZCRiclass_application : public TRelation_application
 | |
| 
 | |
| // @author:(INTERNAL) Vari
 | |
| // @access:(INTERNAL) Private Member
 | |
| {
 | |
|   // @cmember:(INTERNAL) Maschera corrente dell'applicazione
 | |
|   TMask* _msk;
 | |
|   // @cmember:(INTERNAL) Relazione corrente dell'applicazione
 | |
|   TRelation* _rel;
 | |
|   // @cmember:(INTERNAL) valori iniziale dei gruppo conto sottoconto
 | |
| 	int _gruppo;
 | |
| 	int _conto;
 | |
| 	long _sottoconto;
 | |
| 
 | |
| // @access Protected Member
 | |
| protected:
 | |
|   virtual TMask* get_mask(int mode = MODE_QUERY) { CHECK(_msk, "Null mask"); return _msk; }
 | |
|   // @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
 | |
|   //        dalla corrente.
 | |
|   virtual bool changing_mask(int mode) { return false; }
 | |
|   // @cmember Ritorna la relazione da modificare
 | |
|   virtual TRelation* get_relation() const {  CHECK(_rel, "Null relation"); return _rel; }
 | |
|   // @cmember Inizializza la maschera per il modo inserimento
 | |
|   virtual void  init_insert_mode(TMask& m);
 | |
|   // @cmember Inizializza la maschera per il modo modifica
 | |
|   virtual void  init_modify_mode(TMask& m);
 | |
|   // @cmember Inizializzazione dei dati dell'utente
 | |
|   virtual bool user_create() ;
 | |
|   // @cmember Distruzione dei dati dell'utente
 | |
|   virtual bool user_destroy() ;
 | |
|   // @cmember Chiama il programma di stampa
 | |
|   virtual void print();
 | |
|   // @cmember Riscrive sulla relazione i valori dalla maschera <p m>
 | |
|   virtual int rewrite(const TMask& m);
 | |
| 
 | |
| // @access Public Member
 | |
| public:
 | |
|   // @cmember Costruttore
 | |
|   TZCRiclass_application() : _msk(NULL), _rel(NULL) { }
 | |
| 
 | |
| 
 | |
|   // @cmember Distruttore
 | |
|   virtual ~TZCRiclass_application() {}
 | |
| };
 | |
| 
 | |
| 
 | |
| void TZCRiclass_application::print()
 | |
| {
 | |
|   TFilename rep("tcscricl.rep");
 | |
| 	TString cmd;
 | |
|   rep.custom_path();
 | |
|   cmd << "ba8 -4 "<< rep;
 | |
|   TExternal_app stampa(cmd);
 | |
|   stampa.run();
 | |
| }
 | |
| 
 | |
| void TZCRiclass_application::init_insert_mode(TMask& m) 
 | |
| {
 | |
| 	TLocalisamfile ricl(LF_RICLPDC);
 | |
| 
 | |
| 	ricl.put("TIPORIC", m.get(F_COD));
 | |
| 	TString codice(m.get(F_TSSOTTOCONTO));
 | |
| 	ricl.put("CODICE", codice);
 | |
| 	if (ricl.read(_isgteq) == NOERR && codice == ricl.get("CODICE"))
 | |
| 		m.set(F_DESCRIZ, ricl.get("DESCRIZ"));
 | |
|   for (int i = m.fields() - 1; i >= 0; i--)
 | |
|   {
 | |
|     TMask_field& c = m.fld(i);
 | |
|     if (c.in_group(1) && c.is_edit())
 | |
|     {
 | |
|       TEdit_field& e = (TEdit_field&)c;
 | |
| 
 | |
|       e.enable();
 | |
| 			if (e.browse() != NULL)
 | |
|         e.enable_check();
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| void TZCRiclass_application::init_modify_mode(TMask& m) 
 | |
| {
 | |
|   for (int i = m.fields() - 1; i >= 0; i--)
 | |
|   {
 | |
|     TMask_field& c = m.fld(i);
 | |
|     if (c.in_group(1) && c.is_edit())
 | |
|     {
 | |
|       TEdit_field& e = (TEdit_field&)c;
 | |
| 
 | |
|       e.enable();
 | |
| 			if (e.browse() != NULL)
 | |
|         e.enable_check();
 | |
|     }
 | |
|   }
 | |
| 	_gruppo = m.get_int(F_GRUPPO);
 | |
| 	_conto = m.get_int(F_CONTO);
 | |
| 	_sottoconto = m.get_long(F_SOTTOCONTO);
 | |
| }
 | |
| 
 | |
| int TZCRiclass_application::rewrite(const TMask& m)
 | |
| {
 | |
| 	int err = TRelation_application::rewrite(m);
 | |
| 
 | |
| 	if (err != NOERR)
 | |
| 		err = TRelation_application::write(m);
 | |
| 
 | |
| 	TRelation & rel = *get_relation();
 | |
| 
 | |
| 	int gruppo = rel.lfile().get_int("GRUPPO");
 | |
| 	int conto = rel.lfile().get_int("CONTO");
 | |
| 	long sottoconto = rel.lfile().get_long("SOTTOCONTO");
 | |
| 
 | |
| 	if (err == NOERR && (gruppo != _gruppo || conto != _conto || sottoconto != _sottoconto))
 | |
| 	{
 | |
| 		rel.save_status();
 | |
| 		rel.lfile().put("GRUPPO", _gruppo);
 | |
| 		rel.lfile().put("CONTO", _conto);
 | |
| 		rel.lfile().put("SOTTOCONTO", _sottoconto);
 | |
| 		rel.remove();
 | |
| 		rel.restore_status();
 | |
| 	}
 | |
| 	return err;
 | |
| }
 | |
| 
 | |
| bool TZCRiclass_application::user_create()
 | |
| {
 | |
|   _rel = new TRelation(LF_RICLPDC);
 | |
|   _msk = new TZC_ricl_msk;
 | |
|   
 | |
|   set_search_field(F_TSSOTTOCONTO);
 | |
| 
 | |
| 	//TConfig config(CONFIG_DITTA);
 | |
| 	//const bool use_pcn = config.get_bool("ZCUSECMPCN");
 | |
| 
 | |
| 	//_msk->show(-10, use_pcn);
 | |
| 	//_msk->show(-20, !use_pcn);
 | |
|   
 | |
|   TFilename rep("tczcricl.rep");
 | |
| 
 | |
|   if (rep.custom_path()) 
 | |
|     enable_menu_item(M_FILE_PRINT);
 | |
|   
 | |
|   TString title;
 | |
|   _msk->get_caption(title);
 | |
|   set_title(title);
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool TZCRiclass_application::user_destroy() 
 | |
| {
 | |
|   if (_msk)
 | |
| 		delete _msk;
 | |
|   if (_rel)
 | |
| 		delete _rel;
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| int tc1800(int argc, char **argv) 
 | |
| {
 | |
|   TZCRiclass_application a;
 | |
| 
 | |
|   a.run(argc, argv, TR("Riclassificazione piano dei conti Zucchetti"));
 | |
|   return 0;
 | |
| }
 | |
| 
 |