77 lines
1.5 KiB
C++
Executable File
77 lines
1.5 KiB
C++
Executable File
#include <stdtypes.h>
|
|
#include <tabutil.h>
|
|
#include <execp.h>
|
|
#include <utility.h>
|
|
#include <tabapp.h>
|
|
|
|
void Tab_application::print()
|
|
{
|
|
#if XVT_OS == XVT_OS_WIN
|
|
TExternal_app stampa(format("ba3a -1 %s", (const char *) _tabname));
|
|
#else
|
|
TExternal_app stampa(format("ba3 -1 %s", (const char *) _tabname));
|
|
#endif
|
|
stampa.run();
|
|
}
|
|
|
|
void Tab_application::init_query_mode(TMask& m)
|
|
{
|
|
m.send_key(K_SHIFT + K_CTRL + 'e', -GR_MODIFY_PROTECTED);
|
|
m.send_key(K_SHIFT + K_CTRL + 'e', -GR_RECORD_PROTECTED);
|
|
}
|
|
|
|
void Tab_application::init_modify_mode(TMask& m)
|
|
{
|
|
m.send_key(K_SHIFT + K_CTRL + 'd', -GR_MODIFY_PROTECTED);
|
|
const bool enable = !(_rel->curr().get_bool(FPC));
|
|
|
|
m.send_key(K_SHIFT + K_CTRL + 'd' + enable, -GR_RECORD_PROTECTED);
|
|
}
|
|
|
|
bool Tab_application::protected_record(TRectype& rec)
|
|
{
|
|
return rec.get_bool(FPC);
|
|
}
|
|
|
|
bool Tab_application::user_create()
|
|
{
|
|
if (argc() < 3)
|
|
return FALSE;
|
|
|
|
_tabname = argv(2);
|
|
|
|
if (_tabname.empty())
|
|
return FALSE;
|
|
|
|
_tabname.upper();
|
|
TString16 m, t(_tabname);
|
|
|
|
if (t[0] == '%') t.ltrim(1);
|
|
|
|
m << "BATB" << t;
|
|
_msk = new TMask(m) ;
|
|
|
|
for (int i = 0; i < _msk->fields(); i++)
|
|
if (_msk->fld(i).in_group(GR_SEARCH))
|
|
{
|
|
set_search_field(_msk->fld(i).dlg());
|
|
break;
|
|
}
|
|
|
|
_rel = new TRelation(_tabname);
|
|
set_title(_msk->get_caption());
|
|
|
|
TFilename rpt("batb"); rpt << t << ".rpt";
|
|
if (fexist(rpt)) enable_menu_item(M_FILE_PRINT);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
bool Tab_application::user_destroy()
|
|
{
|
|
if (_msk) delete _msk;
|
|
if (_rel) delete _rel;
|
|
return TRUE;
|
|
}
|
|
|