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();
|
~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
|
#endif // __MASK_H
|
||||||
|
@ -136,3 +136,95 @@ bool TTable_application::user_destroy()
|
|||||||
return TRUE;
|
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();
|
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
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user