Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione P@rtners 2.0 patch 349 git-svn-id: svn://10.65.10.50/trunk@10573 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			163 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <recarray.h>
 | 
						|
#include <relapp.h>
 | 
						|
#include "ba4.h"
 | 
						|
#include "ba4500.h"
 | 
						|
 | 
						|
class TAttivita_application : public TRelation_application
 | 
						|
{
 | 
						|
  TMask* _msk;
 | 
						|
  TRelation* _rel;
 | 
						|
 | 
						|
  bool user_create() ;                         
 | 
						|
  bool user_destroy() ;                        
 | 
						|
  virtual TMask* get_mask(int mode) { return _msk;}
 | 
						|
  virtual bool changing_mask(int mode) { return FALSE;}
 | 
						|
  virtual TRelation* get_relation() const { return _rel;}
 | 
						|
  virtual int read(TMask& m);
 | 
						|
  virtual void init_query_mode(TMask& m) ;
 | 
						|
  virtual void init_query_insert_mode(TMask& m) ;
 | 
						|
  static bool gest_res(TMask_field& f, KEY key);
 | 
						|
 | 
						|
 | 
						|
public:
 | 
						|
  TAttivita_application() {}
 | 
						|
  virtual ~TAttivita_application() {}
 | 
						|
};
 | 
						|
HIDDEN inline TAttivita_application & app() { return (TAttivita_application &) main_app();}
 | 
						|
 | 
						|
 | 
						|
bool TAttivita_application::gest_res(TMask_field& f, KEY key)
 | 
						|
{
 | 
						|
  TMask &        msk = f.mask();
 | 
						|
                      
 | 
						|
  if (key == K_TAB && f.dirty() == 3)
 | 
						|
  {
 | 
						|
    msk.set( FLD_AT2_CODANGRDS_ANAGR_RAGSOC ,  "" ) ; 
 | 
						|
    msk.set( FLD_AT2_ANAGR_DEP_IND ,  "" ) ; 
 | 
						|
    msk.set( FLD_AT2_ANAGR_DEP_CIV ,  "" ) ; 
 | 
						|
    msk.set( FLD_AT2_ANAGR_DEP_CAP ,  "" ) ; 
 | 
						|
    msk.set( FLD_AT2_DEP_ANAGR_COMUNI_DESCR ,  "" ) ; 
 | 
						|
    msk.set( FLD_AT2_DEP_ANAGR_COMUNI_PROV ,  "" ) ; 
 | 
						|
  }                      
 | 
						|
  if (f.to_check(key))
 | 
						|
  {
 | 
						|
  
 | 
						|
	  TString16 cod(msk.get(LST_AT2_TIPOADS));
 | 
						|
    cod << "|" << msk.get(FLD_AT2_CODANGRDS);
 | 
						|
 | 
						|
    const TRectype & anag = cache().get(LF_ANAG, cod);
 | 
						|
  
 | 
						|
    if (anag.empty())
 | 
						|
      return FALSE;
 | 
						|
  
 | 
						|
    TString cod_com = anag.get(N_CODCOMRF);
 | 
						|
    TArray comarr(2), f1(2), f2(2), f3(2);
 | 
						|
    
 | 
						|
    msk.set( FLD_AT2_CODANGRDS_ANAGR_RAGSOC ,  anag.get(N_RAGSOC) ) ; 
 | 
						|
    comarr.add(cod_com);
 | 
						|
    cod_com = anag.get(N_CODCOMRES);
 | 
						|
    comarr.add(cod_com);
 | 
						|
    cod_com = N_INDRF;
 | 
						|
    f1.add(cod_com);
 | 
						|
    cod_com = N_CIVRF;
 | 
						|
    f2.add(cod_com);
 | 
						|
    cod_com = N_CAPRF;
 | 
						|
    f3.add(cod_com);
 | 
						|
    cod_com = N_INDRES;
 | 
						|
    f1.add(cod_com);
 | 
						|
    cod_com = N_CIVRES;
 | 
						|
    f2.add(cod_com);
 | 
						|
    cod_com = N_CAPRES;
 | 
						|
    f3.add(cod_com);
 | 
						|
  
 | 
						|
    for (int i = 0; i < comarr.items(); i++)
 | 
						|
    {
 | 
						|
      cod_com = (TString&) comarr[i];
 | 
						|
      if ( cod_com.not_empty() )
 | 
						|
      {
 | 
						|
				cod = "|"; cod << cod_com;
 | 
						|
				const TRectype & comune = cache().get(LF_COMUNI, cod);
 | 
						|
 | 
						|
        if (!comune.empty())
 | 
						|
        {
 | 
						|
          msk.set( FLD_AT2_ANAGR_DEP_IND ,  (const char*) anag.get((TString&) f1[i]) ) ; 
 | 
						|
          msk.set( FLD_AT2_ANAGR_DEP_CIV ,  (const char*) anag.get((TString&) f2[i]) ) ; 
 | 
						|
          msk.set( FLD_AT2_ANAGR_DEP_CAP ,  (const char*) anag.get((TString&) f3[i]) ) ; 
 | 
						|
          msk.set( FLD_AT2_DEP_ANAGR_COMUNI_DESCR ,  (const char*) comune.get(N_DENCOM) ) ; 
 | 
						|
          msk.set( FLD_AT2_DEP_ANAGR_COMUNI_PROV ,  (const char*) comune.get(N_PROV) ) ; 
 | 
						|
          break;
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }     
 | 
						|
  }
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
HIDDEN bool clear_cap(TMask_field& f, KEY key)
 | 
						|
{                     
 | 
						|
  if (!f.mask().query_mode() && key == K_TAB) 
 | 
						|
  {
 | 
						|
    TMask& msk = f.mask() ;
 | 
						|
    const TString16 val(f.get());
 | 
						|
 | 
						|
    if (val.empty())
 | 
						|
      msk.set(FLD_AT2_CAPCS, "");
 | 
						|
  }
 | 
						|
  return TRUE; 
 | 
						|
} 
 | 
						|
 | 
						|
 | 
						|
bool TAttivita_application::user_create()
 | 
						|
{
 | 
						|
  open_files(LF_ATTIV, LF_ANAG, LF_NDITTE, LF_COMUNI, 0) ;
 | 
						|
	_rel = new TRelation(LF_ATTIV) ;
 | 
						|
  _msk = new TMask("ba4500a") ;
 | 
						|
  _msk->set_handler(FLD_AT2_CODANGRDS, gest_res);
 | 
						|
  _msk->set_handler(FLD_AT2_COMCS, clear_cap);
 | 
						|
  set_search_field(FLD_AT1_CODATTH);
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void TAttivita_application::init_query_mode(TMask& m)
 | 
						|
{
 | 
						|
  m.show(FLD_AT1_CODATTH);
 | 
						|
  m.hide(FLD_AT1_CODATT);
 | 
						|
  set_search_field(FLD_AT1_CODATTH);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void TAttivita_application::init_query_insert_mode(TMask& m)
 | 
						|
{
 | 
						|
  m.show(FLD_AT1_CODATT);
 | 
						|
  m.hide(FLD_AT1_CODATTH);
 | 
						|
  set_search_field(FLD_AT1_CODATT);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool TAttivita_application::user_destroy()
 | 
						|
{
 | 
						|
  delete  _msk;
 | 
						|
  delete _rel;
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
int TAttivita_application::read(TMask& m) 
 | 
						|
{
 | 
						|
  const int err = TRelation_application::read(m);
 | 
						|
  if (err == NOERR)
 | 
						|
  {
 | 
						|
    m.field(FLD_AT2_CODANGRDS).set_focusdirty();
 | 
						|
    gest_res(m.field(FLD_AT2_CODANGRDS), K_TAB);
 | 
						|
  }
 | 
						|
  return err;
 | 
						|
}
 | 
						|
 | 
						|
int ba4500(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TAttivita_application a;
 | 
						|
  a.run(argc, argv, TR("Anagrafica Attivita'"));
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 |