campo-sirio/ba/ba4500.cpp
alex cb6165f09b Corretti errori sulle anagrafiche da MI :
2475 2521 2493 2494 2559 2558 2556 2495 2487 2491 2470 2461 2568 2492 2587
2457 2458 2459 2460 2574 2582 2525 2526 2524 2523 2522 2531 2530 2529 2528
2527 2534 2533 2536 2537 2538 2510 2515 2585 2539 2570 2555 2584 2503 2500
2499 2543 2547 2569 2472 ????


git-svn-id: svn://10.65.10.50/trunk@702 c028cbd2-c16b-5b4b-a496-9718f37d4682
1994-11-29 17:49:19 +00:00

146 lines
3.4 KiB
C++
Executable File

#include <relapp.h>
#include <stdtypes.h>
#include <lffiles.h>
#include "ba4.h"
#include "ba4500.h"
class TAttivita_application : public TRelation_application
{
TMask* _msk;
TRelation* _rel;
TLocalisamfile * _anag;
TLocalisamfile * _ditte;
TLocalisamfile * _comuni;
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)
{
if (!f.to_check(key)) return TRUE;
TMask & msk = f.mask();
TLocalisamfile & anag = *app()._anag;
TLocalisamfile & comuni = *app()._comuni;
anag.setkey(1);
anag.zero();
anag.put(N_TIPOA, msk.get(LST_AT2_TIPOADS));
anag.put(N_CODANAGR, msk.get(FLD_AT2_CODANGRDS));
if (anag.read() != NOERR)
return FALSE;
TArray comarr(2), f1(2), f2(2), f3(2);
TString cod_com = anag.get(N_CODCOMRF);
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() )
{
comuni.zero() ;
comuni.put(N_COM, cod_com );
comuni.setkey(1) ;
if (comuni.read() == NOERR)
{
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*) comuni.get(N_DENCOM) ) ;
msk.set( FLD_AT2_DEP_ANAGR_COMUNI_PROV , (const char*) comuni.get(N_PROV) ) ;
break;
}
}
}
return TRUE;
}
bool TAttivita_application::user_create()
{
_msk = new TMask("ba4500a") ;
_msk->set_handler(FLD_AT2_CODANGRDS, gest_res);
_rel = new TRelation(LF_ATTIV) ;
_anag = new TLocalisamfile(LF_ANAG) ;
_ditte = new TLocalisamfile(LF_NDITTE) ;
_comuni = new TLocalisamfile(LF_COMUNI) ;
set_search_field(FLD_AT1_CODDITTAH);
return TRUE;
}
void TAttivita_application::init_query_mode(TMask& m)
{
m.show(FLD_AT1_CODATTH);
m.hide(FLD_AT1_CODATT);
}
void TAttivita_application::init_query_insert_mode(TMask& m)
{
m.show(FLD_AT1_CODATT);
m.hide(FLD_AT1_CODATTH);
}
bool TAttivita_application::user_destroy()
{
delete _msk;
delete _rel;
delete _anag;
delete _ditte;
delete _comuni;
return TRUE;
}
int TAttivita_application::read(TMask& m)
{
m.autoload();
m.field(FLD_AT2_CODANGRDS).set_focusdirty();
gest_res(m.field(FLD_AT2_CODANGRDS), K_TAB);
return NOERR;
}
int ba4500(int argc, char* argv[])
{
TAttivita_application a;
a.run(argc, argv, "Anagrafica Attivita'");
return 0;
}