046e2c06cb
Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 848 git-svn-id: svn://10.65.10.50/trunk@14993 c028cbd2-c16b-5b4b-a496-9718f37d4682
166 lines
3.5 KiB
C++
Executable File
166 lines
3.5 KiB
C++
Executable File
#include <dongle.h>
|
|
#include <recarray.h>
|
|
#include <tabapp.h>
|
|
#include <user.h>
|
|
|
|
#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;
|
|
}
|
|
|