Patch level :4.0 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento :aggiunte le tabelle multirel in tabapp, aggiunte 2 macro sulle maschere (riporto dalla 3.0) git-svn-id: svn://10.65.10.50/trunk@14829 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6cb38e5a76
commit
52b3f753ab
@ -486,4 +486,13 @@ public:
|
||||
~TYesnoallnone_box();
|
||||
};
|
||||
|
||||
#define FOR_EACH_MASK_FIELD(__m, __i, __f) \
|
||||
TMask_field* __f = NULL; \
|
||||
for (int __i = 0; __i < __m.fields() && (__f=&__m.fld(__i))!=NULL; __i++)
|
||||
|
||||
#define FOR_EACH_MASK_SHEET(__m, __i, __s) \
|
||||
TSheet_field* __s = NULL; \
|
||||
for (int __i = 0; __i < __m.fields() && (__s=(TSheet_field*)&__m.fld(__i))!= NULL; __i++) if (__m.fld(__i).is_sheet())
|
||||
|
||||
|
||||
#endif // __MASK_H
|
||||
|
@ -136,3 +136,95 @@ bool TTable_application::user_destroy()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Tabelle Multirel
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
// @cmember Indica se la futura <mf TMultirel_application::get_mask> ritornera' una maschera diversa
|
||||
// dalla corrente.
|
||||
bool TMultirel_application::changing_mask(int mode)
|
||||
{ return false; }
|
||||
|
||||
// @cmember Richiede la maschera da usare
|
||||
TMask* TMultirel_application::get_mask(int mode)
|
||||
{
|
||||
CHECK(_msk, "Null mask");
|
||||
return _msk;
|
||||
}
|
||||
|
||||
// @cmember Ritorna la relazione da modificare
|
||||
TRelation* TMultirel_application::get_relation() const
|
||||
{
|
||||
CHECK(_rel, "Null relation");
|
||||
return _rel;
|
||||
}
|
||||
|
||||
void TMultirel_application::print()
|
||||
{
|
||||
TString16 tabname;
|
||||
get_mask_name(tabname);
|
||||
TString cmd;
|
||||
cmd << "ba8 -4 "<< tabname;
|
||||
TExternal_app stampa(cmd);
|
||||
stampa.run();
|
||||
}
|
||||
|
||||
void TMultirel_application::get_mask_name(TString& tabname) const
|
||||
{
|
||||
tabname = name().left(4);
|
||||
tabname << _tabname;
|
||||
}
|
||||
|
||||
|
||||
bool TMultirel_application::user_create()
|
||||
{
|
||||
if (argc() < 3)
|
||||
return false;
|
||||
|
||||
_tabname = argv(2);
|
||||
_tabname.upper();
|
||||
_rel = new TRelation(LF_MULTIREL);
|
||||
|
||||
//costruisce il nome della maschera interessata
|
||||
//nome modulo + 'ts' + nome tabella
|
||||
TString16 tabname;
|
||||
get_mask_name(tabname);
|
||||
_msk = new TMask(tabname);
|
||||
|
||||
FOR_EACH_MASK_FIELD((*_msk), i, f)
|
||||
{
|
||||
if (f->in_key(1))
|
||||
{
|
||||
set_search_field(f->dlg());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TFilename rep = tabname;
|
||||
rep.ext("rep");
|
||||
if (rep.custom_path())
|
||||
enable_menu_item(M_FILE_PRINT);
|
||||
|
||||
TString title;
|
||||
_msk->get_caption(title);
|
||||
set_title(title);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TMultirel_application::user_destroy()
|
||||
{
|
||||
if (_msk) delete _msk;
|
||||
if (_rel) delete _rel;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// @cmember Costruttore
|
||||
TMultirel_application::TMultirel_application()
|
||||
: _msk(NULL), _rel(NULL)
|
||||
{ }
|
||||
|
||||
// @cmember Distruttore
|
||||
TMultirel_application::~TMultirel_application()
|
||||
{ }
|
||||
|
@ -68,5 +68,55 @@ public:
|
||||
virtual ~TTable_application();
|
||||
};
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// Tabelle multirel
|
||||
///////////////////////////////////////////////////////////////
|
||||
// @class TMultirel_application | Classe per la definizione della <c TRelation_application> per le tabelle
|
||||
//
|
||||
// @base public | TRelation_application
|
||||
class TMultirel_application : public TRelation_application
|
||||
|
||||
// @author:(INTERNAL) Vari
|
||||
// @access:(INTERNAL) Private Member
|
||||
{
|
||||
// @cmember:(INTERNAL) Maschera corrente dell'applicazione
|
||||
TMask* _msk;
|
||||
// @cmember:(INTERNAL) Relazione corrente dell'applicazione
|
||||
TRelation* _rel;
|
||||
// @cmember:(INTERNAL) Nome della tabella da utilizzare
|
||||
TString _tabname;
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
|
||||
virtual void get_mask_name(TString& tabname) const;
|
||||
// @cmember Richiede la maschera da usare
|
||||
virtual TMask* get_mask(int mode = MODE_QUERY);
|
||||
// @cmember Indica se la futura <mf Tab_application::get_mask> ritornera' una maschera diversa
|
||||
// dalla corrente.
|
||||
virtual bool changing_mask(int mode);
|
||||
// @cmember Ritorna la relazione da modificare
|
||||
virtual TRelation* get_relation() const;
|
||||
// @cmember Inizializzazione dei dati dell'utente
|
||||
virtual bool user_create() ;
|
||||
// @cmember Distruzione dei dati dell'utente
|
||||
virtual bool user_destroy() ;
|
||||
// @cmember Chiama il programma di stampa
|
||||
virtual void print();
|
||||
|
||||
|
||||
// @access Public Member
|
||||
public:
|
||||
// @cmember Ritorna il nome della tabella
|
||||
const TString& get_tabname() const
|
||||
{ return _tabname; }
|
||||
|
||||
// @cmember Costruttore
|
||||
TMultirel_application();
|
||||
// @cmember Distruttore
|
||||
virtual ~TMultirel_application();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user