#include #include #include #include "ba4.h" #include "ba4400.h" class BA4400_application : public TRelation_application { TMask* _msk; TRelation* _rel; TLocalisamfile* _anag; TLocalisamfile* _ditte; 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;} public: BA4400_application() {} virtual ~BA4400_application() {} }; 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()); const bool com_ulc = f.dlg() == FLD_UL1_COMULC; if (val.empty()) { msk.set(com_ulc ? FLD_UL1_CAPULC : FLD_UL2_CAPTRIB, "", TRUE); if (com_ulc) { msk.reset(-7); msk.set(FLD_UL1_COMULC_COMUNI_PROVCOM, "", TRUE); } msk.set(com_ulc ? FLD_UL1_COMULC_COMUNI_DENCOM : FLD_UL2_COMTRIB_COMUNI_DENCOM, "", TRUE); } } return TRUE; } bool BA4400_application::user_create() { _msk = new TMask("ba4400a") ; _msk->set_handler(FLD_UL1_COMULC, clear_cap); _msk->set_handler(FLD_UL2_COMTRIB, clear_cap); _rel = new TRelation(LF_UNLOC) ; _anag = new TLocalisamfile(LF_ANAG) ; _ditte = new TLocalisamfile(LF_NDITTE) ; set_search_field(FLD_UL1_CODULC); return TRUE; } bool BA4400_application::user_destroy() { delete _msk; delete _rel; delete _anag; delete _ditte; return TRUE; } int ba4400(int argc, char* argv[]) { BA4400_application a; a.run(argc, argv, "Anagrafica Unita' Locali"); return 0; }