diff --git a/include/tabapp.cpp b/include/tabapp.cpp index c3eb07d6f..e2f922baf 100755 --- a/include/tabapp.cpp +++ b/include/tabapp.cpp @@ -57,6 +57,33 @@ bool Tab_application::protected_record(TRectype& rec) return rec.get_bool(FPC); } +TString Tab_application::mask_name() +{ + TString16 t(_tabname); + + if (t[0] == '%') t.ltrim(1); + TString16 m; m << "batb" << t; + return m.upper(); + +} + + + +TMask * Tab_application::set_mask(TMask * _m) +{ + if (_m!=NULL) + { + // imposta la maschera come maschera della applicazione + if (_msk!=NULL) + delete _msk; + _msk=_m; + } else { + // alloca la maschera standard come maschera della applicazione + _msk = new TMask((const char *)mask_name()) ; + } + return _msk; +} + bool Tab_application::user_create() { if (argc() < 3) @@ -65,11 +92,9 @@ bool Tab_application::user_create() _tabname = argv(2); _tabname.upper(); _rel = new TRelation(_tabname); - - TString16 t(_tabname); - if (t[0] == '%') t.ltrim(1); - TString16 m; m << "BATB" << t; - _msk = new TMask(m) ; + + + set_mask(); const int campi = _msk->fields(); for (int i = 0; i < campi; i++) @@ -82,13 +107,12 @@ bool Tab_application::user_create() } } - TFilename rpt("batb"); rpt << t << ".rpt"; + TFilename rpt(mask_name()); rpt << ".rpt"; if (fexist(rpt)) enable_menu_item(M_FILE_PRINT); const char* title = _msk->get_caption(); set_title(title); - return TRUE; } diff --git a/include/tabapp.h b/include/tabapp.h index af1957166..360826651 100755 --- a/include/tabapp.h +++ b/include/tabapp.h @@ -19,7 +19,6 @@ class Tab_application : public TRelation_application // @author:(INTERNAL) Nicola - // @access:(INTERNAL) Private Member { // @cmember:(INTERNAL) Maschera corrente dell'applicazione @@ -28,9 +27,10 @@ class Tab_application : public TRelation_application TRelation* _rel; // @cmember:(INTERNAL) Nome della tabella da utilizzare TString _tabname; - + // @access Protected Member protected: + // @cmember Richiede se il record corrente e' protetto (non cancellabile) virtual bool protected_record(TRectype& rec); // @cmember Richiede la maschera da usare @@ -50,6 +50,12 @@ protected: virtual bool user_destroy() ; // @cmember Chiama il programma di stampa virtual void print(); + // Nuovi membri: + // @cmember Ritorna il nome della maschera associata + virtual TString mask_name(); + // @cmember imposta la maschera (se non indicata, usa le convenzioni di default) ed eventualmente disalloca quella usata in precedenza + virtual TMask * set_mask(TMask * mask=NULL); + // @access Public Member public: