#include #include #include #include #include "vd0.h" #include "vdtbopd.h" #define OPDTAB "OPD" #ifndef TTable_application #define TTable_application Tab_application #endif TTable_application& app() { return (TTable_application&)main_app(); } /////////////////////////////////////////////////////////// // TVendita_dettaglio_tables /////////////////////////////////////////////////////////// class TVendita_dettaglio_tables : public TTable_application { protected: virtual TString& get_mask_name(TString& name) const; virtual TMask* set_mask(TMask* m); virtual void init_query_mode(TMask& m); virtual void init_query_insert_mode(TMask& m); virtual void init_insert_mode(TMask& m); virtual void init_modify_mode(TMask& m) { init_insert_mode(m);} virtual bool user_create() ; virtual int read(TMask& m); virtual int write(const TMask& m); virtual int rewrite(const TMask& m); virtual bool remove(); virtual void ini2mask(TConfig& ini, TMask& m, bool query); virtual void mask2ini(const TMask& m, TConfig& ini); public: TVendita_dettaglio_tables() {} virtual ~TVendita_dettaglio_tables() {} }; TString& TVendita_dettaglio_tables::get_mask_name(TString& name) const { name = get_tabname(); if (name[0] == '%') name.ltrim(1); name.insert("vdtb", 0); return name; } TMask* TVendita_dettaglio_tables::set_mask(TMask* m) { if (m == NULL) { const TString& tn = get_tabname(); TString name; get_mask_name(name); m = new TMask(name); } return TTable_application::set_mask(m); } bool TVendita_dettaglio_tables::user_create() { const TString & tabname = argv(2); if (tabname == OPDTAB && user() != dongle().administrator()) return error_box(FR("L'utente %s non e' abilitato all'esecuzione di questo programma"), (const char*)user()); return TTable_application::user_create(); } void TVendita_dettaglio_tables::init_query_mode(TMask& m) { if (get_tabname() == OPDTAB) { m.show(F_USERTAB); m.enable(F_USERTAB); m.hide(F_USER); m.disable(F_USER); } } void TVendita_dettaglio_tables::init_query_insert_mode(TMask& m) { if (get_tabname() == OPDTAB) { m.show(F_USER); m.enable(F_USER); m.hide(F_USERTAB); m.disable(F_USERTAB); } } void TVendita_dettaglio_tables::init_insert_mode(TMask& m) { if (get_tabname() == OPDTAB) { m.enable_default(); const TString & name = cache().get(LF_USER, m.get(F_USERTAB), USR_USERDESC); m.set(F_USERDESC, name); } } int TVendita_dettaglio_tables::read(TMask& m) { const TString& tn = get_tabname(); const int err = TTable_application::read(m); return err; } int TVendita_dettaglio_tables::write(const TMask& m) { const TString& tn = get_tabname(); const int err = TTable_application::write(m); return err; } int TVendita_dettaglio_tables::rewrite(const TMask& m) { const TString& tn = get_tabname(); const int err = TTable_application::rewrite(m); return err; } bool TVendita_dettaglio_tables::remove() { const bool ok = TTable_application::remove(); return ok; } void TVendita_dettaglio_tables::ini2mask(TConfig& ini, TMask& m, bool query) { TTable_application::ini2mask(ini, m, query); } void TVendita_dettaglio_tables::mask2ini(const TMask& m, TConfig& ini) { TTable_application::mask2ini(m, ini); } /////////////////////////////////////////////////////////// // Main /////////////////////////////////////////////////////////// int vd0100(int argc, char* argv[]) { if (argc > 2) { TString name; name << TR("Tabella ") << argv[2]; TVendita_dettaglio_tables a; a.run(argc, argv, name); } return 0; }