Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunta trattazione al rendiconto delle parcelle che, in base allo stato, devono essere considerate come bolle o fatture. git-svn-id: svn://10.65.10.50/branches/R_10_00@22125 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			186 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			4.2 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;
 | 
						|
 | 
						|
protected:
 | 
						|
  virtual TMask* create_mask(const TFilename& f);
 | 
						|
  virtual TMask* get_mask();
 | 
						|
 | 
						|
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( );
 | 
						|
 | 
						|
	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" || tipo == "PA")
 | 
						|
		{
 | 
						|
			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" || tipo == "PA")
 | 
						|
		{
 | 
						|
			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");
 | 
						|
  config_loader(mask.sfield(F_RIGHE_PAR), config, "PA");
 | 
						|
  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");
 | 
						|
  config_setter(mask.sfield(F_RIGHE_PAR), config, "PA");
 | 
						|
  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;
 | 
						|
}
 |