Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 873 git-svn-id: svn://10.65.10.50/trunk@15151 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			224 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			224 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 "tc0800a.h"
 | 
						|
 | 
						|
////////////////////////////////////////////////////////////////////////
 | 
						|
//MASCHERA
 | 
						|
////////////////////////////////////////////////////////////////////////
 | 
						|
class TTS_ricl_msk : public TAutomask
 | 
						|
{
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
	
 | 
						|
public:
 | 
						|
  TTS_ricl_msk() : TAutomask("tc0800a") {}
 | 
						|
};
 | 
						|
 | 
						|
bool TTS_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 TTSRiclass_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
 | 
						|
  TTSRiclass_application() : _msk(NULL), _rel(NULL) { }
 | 
						|
 | 
						|
 | 
						|
  // @cmember Distruttore
 | 
						|
  virtual ~TTSRiclass_application() {}
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
void TTSRiclass_application::print()
 | 
						|
{
 | 
						|
  TFilename rep("tctsricl.rep");
 | 
						|
	TString cmd;
 | 
						|
 | 
						|
  rep.custom_path();
 | 
						|
  cmd << "ba8 -4 "<< rep;
 | 
						|
  TExternal_app stampa(cmd);
 | 
						|
  stampa.run();
 | 
						|
}
 | 
						|
 | 
						|
void TTSRiclass_application::init_insert_mode(TMask& m) 
 | 
						|
{
 | 
						|
	TLocalisamfile ricl(LF_RICLPDC);
 | 
						|
 | 
						|
	ricl.put("TIPORIC", m.get(F_COD));
 | 
						|
	TString codice(m.get(F_TSGRUPPO));
 | 
						|
 | 
						|
	codice << m.get(F_TSCONTO);
 | 
						|
	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 TTSRiclass_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 TTSRiclass_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 TTSRiclass_application::user_create()
 | 
						|
{
 | 
						|
  _rel = new TRelation(LF_RICLPDC);
 | 
						|
  _msk = new TTS_ricl_msk;
 | 
						|
  
 | 
						|
  set_search_field(F_TSSOTTOCONTO);
 | 
						|
 | 
						|
	TConfig config(CONFIG_DITTA);
 | 
						|
	const bool use_pcn = config.get_bool("TSUSECMPCN");
 | 
						|
 | 
						|
	_msk->show(-10, use_pcn);
 | 
						|
	_msk->show(-20, !use_pcn);
 | 
						|
  
 | 
						|
  TFilename rep("tctsricl.rep");
 | 
						|
 | 
						|
  if (rep.custom_path()) 
 | 
						|
    enable_menu_item(M_FILE_PRINT);
 | 
						|
  
 | 
						|
  TString title;
 | 
						|
  _msk->get_caption(title);
 | 
						|
  set_title(title);
 | 
						|
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
bool TTSRiclass_application::user_destroy() 
 | 
						|
{
 | 
						|
  if (_msk)
 | 
						|
		delete _msk;
 | 
						|
  if (_rel)
 | 
						|
		delete _rel;
 | 
						|
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
int tc0800(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TTSRiclass_application a;
 | 
						|
 | 
						|
  a.run(argc, argv, TR("Riclassificazione piano dei conto Team System"));
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 |