Correzioni su get_realpp delle tabelle di modulo ed esportazione in Excel degli Spreadsheet
git-svn-id: svn://10.65.10.50/branches/R_10_00@22684 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
49adc1b3f4
commit
3e64641a51
@ -621,7 +621,7 @@ bool TApplication::set_firm(long newfirm)
|
|||||||
if (interactive)
|
if (interactive)
|
||||||
{
|
{
|
||||||
if (newfirm <= 0)
|
if (newfirm <= 0)
|
||||||
return newfirm > 0;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -339,23 +339,9 @@ HIDDEN XI_BITMAP* get_background_bitmap(bool reload)
|
|||||||
XVT_IMAGE img = (XVT_IMAGE)bmp->xin_bitmap->x;
|
XVT_IMAGE img = (XVT_IMAGE)bmp->xin_bitmap->x;
|
||||||
short w, h; xvt_image_get_dimensions(img, &w, &h);
|
short w, h; xvt_image_get_dimensions(img, &w, &h);
|
||||||
|
|
||||||
unsigned long r=0, g=0, b=0, k=0;
|
unsigned long r=0, g=0, b=0;
|
||||||
|
const short k = min(w,h);
|
||||||
/*
|
for (short xy = 0; xy < k; xy++)
|
||||||
for (short y = 0; y < h; y++)
|
|
||||||
{
|
|
||||||
for (short x = 0; x < w; x++)
|
|
||||||
{
|
|
||||||
const COLOR col = xvt_image_get_pixel(img, x, y);
|
|
||||||
r += XVT_COLOR_GET_RED(col);
|
|
||||||
g += XVT_COLOR_GET_GREEN(col);
|
|
||||||
b += XVT_COLOR_GET_BLUE(col);
|
|
||||||
k++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
k = min(w,h);
|
|
||||||
for (short xy = 0; xy < short(k); xy++)
|
|
||||||
{
|
{
|
||||||
const COLOR col = xvt_image_get_pixel(img, xy, xy);
|
const COLOR col = xvt_image_get_pixel(img, xy, xy);
|
||||||
r += XVT_COLOR_GET_RED(col);
|
r += XVT_COLOR_GET_RED(col);
|
||||||
|
@ -795,6 +795,32 @@ const char* TBaseisamfile::name() const
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* TBaseisamfile::module() const
|
||||||
|
{
|
||||||
|
TFilename app;
|
||||||
|
curr().get_relapp(app);
|
||||||
|
if (app.full())
|
||||||
|
return app.left(2);
|
||||||
|
|
||||||
|
switch (num())
|
||||||
|
{
|
||||||
|
case LF_CLIFO:
|
||||||
|
case LF_CAUSALI:
|
||||||
|
case LF_RCAUSALI:
|
||||||
|
case LF_MOV:
|
||||||
|
case LF_RMOV:
|
||||||
|
case LF_RMOVIVA:
|
||||||
|
return "cg";
|
||||||
|
case LF_ANAMAG:
|
||||||
|
case LF_DOC:
|
||||||
|
case LF_RIGHEDOC:
|
||||||
|
return "ve";
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "ba";
|
||||||
|
}
|
||||||
|
|
||||||
const char* TBaseisamfile::filename() const
|
const char* TBaseisamfile::filename() const
|
||||||
{
|
{
|
||||||
const int n = _isam_handle > 0 ? _isam_handle : num();
|
const int n = _isam_handle > 0 ? _isam_handle : num();
|
||||||
@ -856,7 +882,6 @@ int TBaseisamfile::prev(word lockop)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int TBaseisamfile::reread(word lockop)
|
int TBaseisamfile::reread(word lockop)
|
||||||
|
|
||||||
{
|
{
|
||||||
return TBaseisamfile::reread(curr(), lockop);
|
return TBaseisamfile::reread(curr(), lockop);
|
||||||
}
|
}
|
||||||
@ -3839,7 +3864,9 @@ int TRectype::rewrite(TBaseisamfile& f) const
|
|||||||
int TRectype::write_rewrite(TBaseisamfile& f) const
|
int TRectype::write_rewrite(TBaseisamfile& f) const
|
||||||
{
|
{
|
||||||
int err = write(f);
|
int err = write(f);
|
||||||
if (err != NOERR)
|
if (err == NOERR)
|
||||||
|
f._read((TRectype&)*this, _iscurr, _unlock); // Sblocca record 19-09-2012 (andrebbe nella _write)
|
||||||
|
else
|
||||||
err = rewrite(f);
|
err = rewrite(f);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -3848,7 +3875,11 @@ int TRectype::rewrite_write(TBaseisamfile& f) const
|
|||||||
{
|
{
|
||||||
int err = rewrite(f);
|
int err = rewrite(f);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
|
{
|
||||||
err = write(f);
|
err = write(f);
|
||||||
|
if (err == NOERR)
|
||||||
|
f._read((TRectype&)*this, _iscurr, _unlock); // Sblocca record 19-09-2012 (andrebbe nella _write)
|
||||||
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,6 +400,8 @@ public:
|
|||||||
virtual int remove(const TRectype& rec);
|
virtual int remove(const TRectype& rec);
|
||||||
// @cmember Ritorna il numero logico del file sotto forma di stringa
|
// @cmember Ritorna il numero logico del file sotto forma di stringa
|
||||||
virtual const char* name() const;
|
virtual const char* name() const;
|
||||||
|
// @cmember Ritorna il modulo al quale appartiene la tabella
|
||||||
|
virtual const char* module() const;
|
||||||
|
|
||||||
// @cmember Ritorna il numero del record corrente
|
// @cmember Ritorna il numero del record corrente
|
||||||
virtual TRecnotype recno() const
|
virtual TRecnotype recno() const
|
||||||
@ -650,7 +652,7 @@ public:
|
|||||||
// @base public | TBaseisamfile
|
// @base public | TBaseisamfile
|
||||||
class TLocalisamfile : public TBaseisamfile
|
class TLocalisamfile : public TBaseisamfile
|
||||||
|
|
||||||
// @author:(INTERNAL) Sandro
|
// @author:(INTERNAL) Alex
|
||||||
{
|
{
|
||||||
// @access Protected Member
|
// @access Protected Member
|
||||||
protected:
|
protected:
|
||||||
|
@ -1266,7 +1266,7 @@ void TMask::read_page(
|
|||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
const int pf = fields();
|
const int pf = fields();
|
||||||
TString e;
|
TString e;
|
||||||
e << "Campo non riconosciuto alla posizione " << pf;
|
e << "Campo non riconosciuto alla posizione " << pf << ": " << scanner.key();
|
||||||
if (pf > 0)
|
if (pf > 0)
|
||||||
e << "\nL'ultimo riconosciuto e' " << fld(pf-1).dlg() << ": " << fld(pf-1).prompt();
|
e << "\nL'ultimo riconosciuto e' " << fld(pf-1).dlg() << ": " << fld(pf-1).prompt();
|
||||||
error_box(e);
|
error_box(e);
|
||||||
|
@ -257,13 +257,12 @@ protected:
|
|||||||
// <p _needs_update>)
|
// <p _needs_update>)
|
||||||
void on_idle();
|
void on_idle();
|
||||||
|
|
||||||
// @cmember Cerca la colonna col
|
|
||||||
XI_OBJ* find_column(int col) const;
|
|
||||||
|
|
||||||
// @cmember Cerca le proprieta' della riga r e volendo le crea pure
|
// @cmember Cerca le proprieta' della riga r e volendo le crea pure
|
||||||
TRow_property* get_property(int r, bool create = false);
|
TRow_property* get_property(int r, bool create = false);
|
||||||
|
|
||||||
TSheet_field& owner() const { return (TSheet_field&)*_fld; }
|
TSheet_field& owner() const { return (TSheet_field&)*_fld; }
|
||||||
|
// @cmember Cerca la colonna col
|
||||||
|
XI_OBJ* find_column(int col) const;
|
||||||
|
|
||||||
// @access Public Member
|
// @access Public Member
|
||||||
public:
|
public:
|
||||||
@ -3633,10 +3632,14 @@ static TString& clean_white_space(TString& str)
|
|||||||
class TSheet_recordset : public TRecordset
|
class TSheet_recordset : public TRecordset
|
||||||
{
|
{
|
||||||
const TSpreadsheet* _sheet;
|
const TSpreadsheet* _sheet;
|
||||||
|
int _cols;
|
||||||
TRecnotype _curr;
|
TRecnotype _curr;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool get_attr(int column, TAttributes& attr, bool header) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual unsigned int columns() const { return _sheet->columns(); }
|
virtual unsigned int columns() const { return _cols; }
|
||||||
virtual const TRecordset_column_info& column_info(unsigned int i) const;
|
virtual const TRecordset_column_info& column_info(unsigned int i) const;
|
||||||
virtual TRecnotype items() const { return _sheet->items(); }
|
virtual TRecnotype items() const { return _sheet->items(); }
|
||||||
virtual bool move_to(TRecnotype pos);
|
virtual bool move_to(TRecnotype pos);
|
||||||
@ -3646,7 +3649,8 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
virtual const TString& query_text() const { return EMPTY_STRING; }
|
virtual const TString& query_text() const { return EMPTY_STRING; }
|
||||||
TSheet_recordset(const TSpreadsheet* s) : _sheet(s), _curr(-1) {}
|
TSheet_recordset(const TSpreadsheet* s) : _sheet(s), _curr(-1)
|
||||||
|
{ xi_get_member_list(((TSpreadsheet*)s)->xi_object(), &_cols); _cols--; }
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TSheet_recordset::move_to(TRecnotype pos)
|
bool TSheet_recordset::move_to(TRecnotype pos)
|
||||||
@ -3661,16 +3665,17 @@ const TRecordset_column_info& TSheet_recordset::column_info(unsigned int i) cons
|
|||||||
{
|
{
|
||||||
static TRecordset_column_info _info;
|
static TRecordset_column_info _info;
|
||||||
|
|
||||||
_info._pos = i;
|
int num;
|
||||||
|
XI_OBJ** columns = xi_get_member_list(((TSpreadsheet*)_sheet)->xi_object(), &num);
|
||||||
if (i >= 0 && i < columns())
|
XI_OBJ* column = int(i+1) < num ? columns[i+1] : NULL;
|
||||||
|
if (column)
|
||||||
{
|
{
|
||||||
int columns = 0;
|
_info._pos = (column->cid % 100) - 1;
|
||||||
XI_OBJ** pcols = xi_get_member_list(((TSpreadsheet*)_sheet)->xi_object(), &columns);
|
|
||||||
xi_get_text(pcols[i+1], _info._name.get_buffer(), _info._name.size());
|
xi_get_text(column, _info._name.get_buffer(), _info._name.size());
|
||||||
_info._name.trim();
|
_info._name.trim();
|
||||||
|
|
||||||
const TMask_field& fld = _sheet->sheet_mask().field(short(101+i));
|
const TMask_field& fld = _sheet->sheet_mask().field(column->cid);
|
||||||
switch (fld.class_id())
|
switch (fld.class_id())
|
||||||
{
|
{
|
||||||
case CLASS_BOOLEAN_FIELD : _info._type = _boolfld; break;
|
case CLASS_BOOLEAN_FIELD : _info._type = _boolfld; break;
|
||||||
@ -3683,6 +3688,7 @@ const TRecordset_column_info& TSheet_recordset::column_info(unsigned int i) cons
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_info._pos = -1;
|
||||||
_info._name.cut(0);
|
_info._name.cut(0);
|
||||||
_info._type = _nullfld;
|
_info._type = _nullfld;
|
||||||
_info._width = 0;
|
_info._width = 0;
|
||||||
@ -3691,15 +3697,42 @@ const TRecordset_column_info& TSheet_recordset::column_info(unsigned int i) cons
|
|||||||
return _info;
|
return _info;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TVariant& TSheet_recordset::get(unsigned int column) const
|
const TVariant& TSheet_recordset::get(unsigned int i) const
|
||||||
{
|
{
|
||||||
TVariant& var = get_tmp_var();
|
if (_curr >= 0 && _curr < items() && i < columns())
|
||||||
if (_curr >= 0 && _curr < items() && column < columns())
|
{
|
||||||
|
const TRecordset_column_info& ci = column_info(i);
|
||||||
|
if (ci._pos >= 0)
|
||||||
{
|
{
|
||||||
TToken_string& row = ((TSpreadsheet*)_sheet)->row(_curr);
|
TToken_string& row = ((TSpreadsheet*)_sheet)->row(_curr);
|
||||||
var = row.get(column);
|
TVariant& tmp = get_tmp_var();
|
||||||
|
tmp = row.get(ci._pos);
|
||||||
|
tmp.convert_to(ci._type);
|
||||||
|
return tmp;
|
||||||
}
|
}
|
||||||
return var;
|
}
|
||||||
|
return NULL_VARIANT;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TSheet_recordset::get_attr(int i, TAttributes& attr, bool header) const
|
||||||
|
{
|
||||||
|
const TRecordset_column_info& ci = column_info(i);
|
||||||
|
bool is_valid = false;
|
||||||
|
if (ci._pos >= 0)
|
||||||
|
{
|
||||||
|
COLOR back, fore;
|
||||||
|
if (header)
|
||||||
|
{
|
||||||
|
back = BTN_BACK_COLOR;
|
||||||
|
fore = PROMPT_COLOR;
|
||||||
|
// is_valid = true; // Per ora non funziona
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
is_valid = ((TSpreadsheet*)_sheet)->get_back_and_fore_color(back, fore, _curr, ci._pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return is_valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -1140,7 +1140,7 @@ bool TRelation_application::save(bool check_dirty)
|
|||||||
mask2mail(*_mask);
|
mask2mail(*_mask);
|
||||||
break;
|
break;
|
||||||
case _isreinsert:
|
case _isreinsert:
|
||||||
warning_box(TR("Esiste gia' un elemento con la stessa chiave"));
|
warning_box(TR("Esiste già un elemento con la stessa chiave"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
error_box(FR("Impossibile registrare i dati: errore %d"), err);
|
error_box(FR("Impossibile registrare i dati: errore %d"), err);
|
||||||
@ -1187,19 +1187,6 @@ int TRelation_application::write(const TMask& m)
|
|||||||
|
|
||||||
// write relation and all independent sheets
|
// write relation and all independent sheets
|
||||||
int err = r.write();
|
int err = r.write();
|
||||||
|
|
||||||
/*
|
|
||||||
const int max = m.fields();
|
|
||||||
for (int i = 0; i < max; i++)
|
|
||||||
{
|
|
||||||
if (m.fld(i).is_sheet())
|
|
||||||
{
|
|
||||||
TSheet_field& f = (TSheet_field& )m.fld(i);
|
|
||||||
if (f.record() && !f.external_record())
|
|
||||||
err|=f.record()->write(FALSE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
FOR_EACH_MASK_SHEET(m, i, s)
|
FOR_EACH_MASK_SHEET(m, i, s)
|
||||||
{
|
{
|
||||||
if (s->record() && !s->external_record())
|
if (s->record() && !s->external_record())
|
||||||
@ -1219,18 +1206,6 @@ int TRelation_application::rewrite(const TMask& m)
|
|||||||
r.rewrite();
|
r.rewrite();
|
||||||
int err=r.status();
|
int err=r.status();
|
||||||
|
|
||||||
/*
|
|
||||||
const int max = m.fields();
|
|
||||||
for (int i = 0; i < max; i++)
|
|
||||||
{
|
|
||||||
if (m.fld(i).is_sheet())
|
|
||||||
{
|
|
||||||
TSheet_field& f = (TSheet_field&)m.fld(i);
|
|
||||||
if (f.record()&& !f.external_record())
|
|
||||||
err|=f.record()->write(TRUE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
FOR_EACH_MASK_SHEET(m, i, s)
|
FOR_EACH_MASK_SHEET(m, i, s)
|
||||||
{
|
{
|
||||||
if (s->record() && !s->external_record())
|
if (s->record() && !s->external_record())
|
||||||
@ -1378,8 +1353,11 @@ void TRelation_application::main_loop()
|
|||||||
if (save_and_quit())
|
if (save_and_quit())
|
||||||
k = K_QUIT;
|
k = K_QUIT;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
edit_cancel(); // Novità 19-06-2012
|
||||||
query_mode();
|
query_mode();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case K_QUIT:
|
case K_QUIT:
|
||||||
if (!save(TRUE))
|
if (!save(TRUE))
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <tabapp.h>
|
#include <tabapp.h>
|
||||||
|
#include <tabmod.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
@ -14,7 +15,7 @@ TTable_application::~TTable_application()
|
|||||||
// @cmember Indica se la futura <mf TTable_application::get_mask> ritornera' una maschera diversa
|
// @cmember Indica se la futura <mf TTable_application::get_mask> ritornera' una maschera diversa
|
||||||
// dalla corrente.
|
// dalla corrente.
|
||||||
bool TTable_application::changing_mask(int mode)
|
bool TTable_application::changing_mask(int mode)
|
||||||
{ return FALSE; }
|
{ return false; }
|
||||||
|
|
||||||
// @cmember Richiede la maschera da usare
|
// @cmember Richiede la maschera da usare
|
||||||
TMask* TTable_application::get_mask(int mode)
|
TMask* TTable_application::get_mask(int mode)
|
||||||
@ -47,7 +48,7 @@ void TTable_application::init_query_mode(TMask& m)
|
|||||||
void TTable_application::init_modify_mode(TMask& m)
|
void TTable_application::init_modify_mode(TMask& m)
|
||||||
{
|
{
|
||||||
m.disable(-GR_MODIFY_PROTECTED);
|
m.disable(-GR_MODIFY_PROTECTED);
|
||||||
const bool enable = !(_rel->curr().get_bool(FPC));
|
const bool enable = !_rel->curr().get_bool(FPC);
|
||||||
m.enable(-GR_RECORD_PROTECTED,enable);
|
m.enable(-GR_RECORD_PROTECTED,enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,12 +60,14 @@ bool TTable_application::protected_record(TRectype& rec)
|
|||||||
TString& TTable_application::get_mask_name(TString& t) const
|
TString& TTable_application::get_mask_name(TString& t) const
|
||||||
{
|
{
|
||||||
CHECK(_rel,"Can't use a NULL relation to retrieve table module");
|
CHECK(_rel,"Can't use a NULL relation to retrieve table module");
|
||||||
TTable& tab = (TTable&) _rel->lfile();
|
|
||||||
|
|
||||||
TString16 m = _tabname;
|
TString8 m = _tabname;
|
||||||
if (m[0] == '%' || m[0] == '&') m.ltrim(1);
|
if (m[0] == '%' || m[0] == '$')
|
||||||
|
m.ltrim(1); else
|
||||||
|
if (m[0] == '&')
|
||||||
|
m = _tabname.right(3);
|
||||||
|
|
||||||
t = tab.module();
|
t = _rel->lfile().module();
|
||||||
t << "tb" << m;
|
t << "tb" << m;
|
||||||
t.lower();
|
t.lower();
|
||||||
|
|
||||||
@ -94,7 +97,7 @@ TMask* TTable_application::set_mask(TMask* m)
|
|||||||
if (name.custom_path())
|
if (name.custom_path())
|
||||||
_msk = new TMask(name);
|
_msk = new TMask(name);
|
||||||
else
|
else
|
||||||
error_box(FR("Impossibile trovare la maschera %s"), (const char*)name);
|
cantread_box(name);
|
||||||
}
|
}
|
||||||
return _msk;
|
return _msk;
|
||||||
}
|
}
|
||||||
@ -111,23 +114,25 @@ bool TTable_application::user_create()
|
|||||||
if (set_mask() == NULL)
|
if (set_mask() == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const int campi = _msk->fields();
|
FOR_EACH_MASK_FIELD(*_msk, i, f)
|
||||||
for (int i = 0; i < campi; i++)
|
|
||||||
{
|
{
|
||||||
const TMask_field& f = _msk->fld(i);
|
if (f->in_group(GR_SEARCH))
|
||||||
if (f.in_group(GR_SEARCH))
|
|
||||||
{
|
{
|
||||||
set_search_field(f.dlg());
|
set_search_field(f->dlg());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TFilename rpt; get_mask_name(rpt); rpt.ext("rpt");
|
TFilename rpt;
|
||||||
if (rpt.custom_path())
|
get_mask_name(rpt); rpt.ext("rpt");
|
||||||
|
bool can_print = rpt.custom_path();
|
||||||
|
if (!can_print)
|
||||||
{
|
{
|
||||||
enable_menu_item(M_FILE_PREVIEW);
|
get_mask_name(rpt); rpt.ext("rep");
|
||||||
enable_menu_item(M_FILE_PRINT);
|
can_print = rpt.custom_path();
|
||||||
}
|
}
|
||||||
|
enable_menu_item(M_FILE_PREVIEW, can_print);
|
||||||
|
enable_menu_item(M_FILE_PRINT, can_print);
|
||||||
|
|
||||||
TString title;
|
TString title;
|
||||||
_msk->get_caption(title);
|
_msk->get_caption(title);
|
||||||
|
@ -50,7 +50,7 @@ public:
|
|||||||
// @cmember Ritorna il nome della tabella
|
// @cmember Ritorna il nome della tabella
|
||||||
virtual const char* name() const { return _tabname;}
|
virtual const char* name() const { return _tabname;}
|
||||||
// @cmember Ritorna il modulo al quale appartiene la tabella
|
// @cmember Ritorna il modulo al quale appartiene la tabella
|
||||||
const char* module() const;
|
virtual const char* module() const;
|
||||||
// @cmember Ritorna il cliente al quale appartiene la tabella
|
// @cmember Ritorna il cliente al quale appartiene la tabella
|
||||||
long customer() const;
|
long customer() const;
|
||||||
|
|
||||||
|
@ -216,10 +216,10 @@ void TTable::load_module_description()
|
|||||||
_module = "ba";
|
_module = "ba";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* TTable::module()
|
const char* TTable::module() const
|
||||||
{
|
{
|
||||||
if (!_des_mod_loaded)
|
if (!_des_mod_loaded)
|
||||||
load_module_description();
|
((TTable*)this)->load_module_description();
|
||||||
return _module;
|
return _module;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
// @cmember Ritorna il nome della tabella
|
// @cmember Ritorna il nome della tabella
|
||||||
virtual const char* name() const { return _tabname;}
|
virtual const char* name() const { return _tabname;}
|
||||||
// @cmember Ritorna il modulo al quale appartiene la tabella
|
// @cmember Ritorna il modulo al quale appartiene la tabella
|
||||||
const char* module();
|
virtual const char* module() const;
|
||||||
// @cmember Ritorna la descrizione della tabella
|
// @cmember Ritorna la descrizione della tabella
|
||||||
virtual const char* description();
|
virtual const char* description();
|
||||||
// @controlla se la tabella e' vuota
|
// @controlla se la tabella e' vuota
|
||||||
|
Loading…
x
Reference in New Issue
Block a user