2003-04-17 08:54:31 +00:00
|
|
|
#include <applicat.h>
|
1994-08-12 10:52:49 +00:00
|
|
|
#include <expr.h>
|
1996-05-08 11:02:26 +00:00
|
|
|
#include <msksheet.h>
|
2008-05-15 15:01:55 +00:00
|
|
|
#include <statbar.h>
|
2008-04-04 16:03:36 +00:00
|
|
|
#include <urldefid.h>
|
1996-05-08 11:02:26 +00:00
|
|
|
#include <utility.h>
|
1994-08-12 10:52:49 +00:00
|
|
|
|
|
|
|
#include "ba1100.h"
|
|
|
|
|
1998-03-30 14:08:53 +00:00
|
|
|
TMask* TRec_sheet::_mask = NULL;
|
1994-08-12 10:52:49 +00:00
|
|
|
|
2008-06-13 08:41:37 +00:00
|
|
|
void TDir_sheet::add()
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
_dir.get(LF_DIR, _lock, _nordir, _sysdirop);
|
|
|
|
const int nitems = (int)_dir.eod() + 1;
|
1994-08-12 10:52:49 +00:00
|
|
|
|
2008-12-10 16:55:06 +00:00
|
|
|
if (_dir.eox() < nitems)
|
|
|
|
_dir.set_eox(nitems + 10);
|
|
|
|
_dir.set_eod(nitems);
|
|
|
|
_dir.put(LF_DIR, _nordir, _sysdirop);
|
1995-06-12 11:09:01 +00:00
|
|
|
|
2008-12-10 16:55:06 +00:00
|
|
|
TDir d;
|
1995-06-12 11:09:01 +00:00
|
|
|
d.zero();
|
|
|
|
d.put(nitems, _nordir, _sysdirop);
|
1994-08-12 10:52:49 +00:00
|
|
|
_items = nitems;
|
|
|
|
}
|
|
|
|
|
2015-02-24 08:25:45 +00:00
|
|
|
TDir_sheet::TDir_sheet(const char* title, bool superprassi)
|
|
|
|
: TSheet(0, 0, 0, 0, title,
|
|
|
|
HR("N.@3R|Nome@20|EOD@7R|EOX@7R|Lung.@7R|Descrizione@43|Formula@33|Flags@7R"),
|
|
|
|
superprassi ? 0xC : 0x8)
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
2009-06-17 10:17:04 +00:00
|
|
|
add_button(DLG_PRINT, TR("Tracciati"), K_F3, TOOL_PRINT);
|
2008-12-23 09:11:50 +00:00
|
|
|
add_button(DLG_NULL, "", 0); // Separatore
|
2008-05-15 15:01:55 +00:00
|
|
|
|
|
|
|
if (superprassi)
|
|
|
|
{
|
|
|
|
add_button(DLG_OTHERFILE, TR("File Esterni"), K_F5, 113);
|
|
|
|
add_button(DLG_CONVERT, TR("Conversione"), K_F7, 156);
|
|
|
|
if (is_power_station())
|
2009-06-17 10:17:04 +00:00
|
|
|
add_button(DLG_ADDFILE, TR("Nuovo file"), K_F8, TOOL_NEWREC);
|
2008-12-23 09:11:50 +00:00
|
|
|
add_button(DLG_NULL, "", 0); // Separatore
|
2008-05-15 15:01:55 +00:00
|
|
|
}
|
|
|
|
|
2009-06-17 10:17:04 +00:00
|
|
|
add_button(DLG_INFO, TR("Info"), K_F2, TOOL_INFO);
|
|
|
|
add_button(DLG_HELP, TR("Help"), K_F1, TOOL_HELP);
|
2008-05-15 15:01:55 +00:00
|
|
|
xvt_toolbar_set_last_tool(toolbar(), DLG_QUIT);
|
|
|
|
|
1994-08-12 10:52:49 +00:00
|
|
|
rebuild();
|
|
|
|
}
|
|
|
|
|
2015-02-24 08:25:45 +00:00
|
|
|
void TDir_sheet::get_row(long nrow, TToken_string& l)
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
2015-02-24 08:25:45 +00:00
|
|
|
const int logicnum = int(nrow+1);
|
|
|
|
_dir.get (logicnum,_nolock,_nordir,_sysdirop);
|
|
|
|
l.format("%d", logicnum); // Numero logico del file
|
2008-12-10 16:55:06 +00:00
|
|
|
l.add(_dir.name());
|
|
|
|
l.add(_dir.eod());
|
|
|
|
l.add(_dir.eox());
|
|
|
|
l.add((long)_dir.len());
|
|
|
|
l.add(_dir.des());
|
|
|
|
l.add(_dir.expr());
|
|
|
|
l.add(_dir.flags());
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
1995-02-02 18:08:03 +00:00
|
|
|
TRec_sheet::TRec_sheet(int logicnum, const char * tab)
|
2008-06-13 08:41:37 +00:00
|
|
|
: _descr(NULL), _tab(tab)
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
1997-07-22 12:58:54 +00:00
|
|
|
_external = FALSE;
|
1994-08-16 16:35:22 +00:00
|
|
|
_mask = new TMask("ba1100d");
|
1994-08-12 10:52:49 +00:00
|
|
|
|
2008-12-10 16:55:06 +00:00
|
|
|
_dir.get(logicnum, _lock, _nordir, _sysdirop);
|
|
|
|
_rec.get(logicnum);
|
|
|
|
if (_dir.len() == 0)
|
|
|
|
_rec.zero();
|
|
|
|
_rec_old = _rec;
|
1995-02-02 18:08:03 +00:00
|
|
|
_tab.lower();
|
|
|
|
if (fexist(DESCDIR))
|
|
|
|
{
|
|
|
|
if (logicnum >= LF_TABGEN && logicnum <= LF_TAB && _tab.not_empty())
|
|
|
|
_descfname.format("%s/d%s.des", DESCDIR, (const char *) _tab);
|
|
|
|
else
|
2008-12-10 16:55:06 +00:00
|
|
|
_descfname.format("%s/d%d.des", DESCDIR, _dir.num());
|
1995-02-02 18:08:03 +00:00
|
|
|
FILE * fd = NULL;
|
|
|
|
|
|
|
|
if (!fexist(_descfname) && (fd = fopen(_descfname, "w")) == NULL)
|
2002-10-24 10:47:49 +00:00
|
|
|
error_box(TR("Impossibile creare il file delle descrizioni"));
|
1995-02-02 18:08:03 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
if (fd != NULL)
|
|
|
|
fclose(fd);
|
|
|
|
_descr = new TConfig(_descfname, DESCPAR);
|
|
|
|
}
|
|
|
|
}
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
2008-12-10 16:55:06 +00:00
|
|
|
TRec_sheet::TRec_sheet(TExternisamfile* file) : _descr(NULL)
|
1997-07-22 12:58:54 +00:00
|
|
|
{
|
|
|
|
_external = TRUE;
|
|
|
|
_mask = new TMask("ba1100d");
|
1998-03-30 14:08:53 +00:00
|
|
|
|
|
|
|
const FileDes& d = prefix().get_filedes(file->num());
|
|
|
|
const RecDes& r = prefix().get_recdes(file->num());
|
2008-12-10 16:55:06 +00:00
|
|
|
_dir.filedesc() = d;
|
|
|
|
_rec.rec() = r;
|
|
|
|
if (_dir.len() == 0)
|
|
|
|
_rec.zero();
|
|
|
|
_rec_old = _rec;
|
1997-07-22 12:58:54 +00:00
|
|
|
}
|
|
|
|
|
1994-08-16 16:35:22 +00:00
|
|
|
TRec_sheet::~TRec_sheet()
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
1997-07-22 12:58:54 +00:00
|
|
|
if (!_external)
|
2008-12-10 16:55:06 +00:00
|
|
|
_dir.get(_dir.num(), _unlock, _nordir, _sysdirop);
|
1994-08-16 16:35:22 +00:00
|
|
|
delete _mask;
|
|
|
|
_mask = NULL;
|
1995-02-02 18:08:03 +00:00
|
|
|
if (_descr)
|
|
|
|
delete _descr;
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool TRec_sheet::check_key_expr(int key, const char * key_expr)
|
|
|
|
{
|
1994-08-16 16:35:22 +00:00
|
|
|
TExpression expr("", _strexpr);
|
|
|
|
return expr.set(key_expr, _strexpr);
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
HIDDEN bool len_handler(TMask_field& f, KEY key)
|
|
|
|
{
|
1994-08-16 16:35:22 +00:00
|
|
|
const int len = atoi(f.get());
|
2007-04-03 11:06:56 +00:00
|
|
|
if (len < 0)
|
|
|
|
return false;
|
1994-08-16 16:35:22 +00:00
|
|
|
|
|
|
|
const int typef = atoi(f.mask().get(FLD_TIPO));
|
|
|
|
switch (typef)
|
|
|
|
{
|
1994-10-12 12:58:08 +00:00
|
|
|
case _alfafld:
|
|
|
|
return len <= 254;
|
|
|
|
case _intfld:
|
|
|
|
return len <= 5;
|
|
|
|
case _longfld:
|
|
|
|
return len <= 10;
|
|
|
|
case _realfld:
|
|
|
|
return len <= 18;
|
|
|
|
case _wordfld:
|
|
|
|
return len <= 5;
|
|
|
|
case _intzerofld:
|
|
|
|
return len <= 5;
|
|
|
|
case _longzerofld:
|
|
|
|
return len <= 10;
|
|
|
|
default:
|
2009-09-15 11:10:06 +00:00
|
|
|
break;
|
1994-10-12 12:58:08 +00:00
|
|
|
}
|
2009-09-15 11:10:06 +00:00
|
|
|
return true;
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
1996-08-08 15:40:13 +00:00
|
|
|
bool TRec_sheet::fld_notify(TSheet_field& f, int r, KEY k)
|
|
|
|
{
|
|
|
|
if (k == K_CTRL + K_INS)
|
|
|
|
{
|
|
|
|
TToken_string & row = f.row(r);
|
2007-04-03 11:06:56 +00:00
|
|
|
row.add(1, f.cid2index(FLD_TIPO));
|
1996-08-08 15:40:13 +00:00
|
|
|
}
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
1995-08-09 09:49:19 +00:00
|
|
|
bool TRec_sheet::key_notify(TSheet_field& f, int r, KEY k)
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
1995-07-17 16:53:26 +00:00
|
|
|
if (k == K_INS)
|
|
|
|
{
|
1995-07-20 13:38:46 +00:00
|
|
|
const int items = f.items();
|
2008-12-23 09:11:50 +00:00
|
|
|
if (items >= 8)
|
|
|
|
return false;
|
1995-07-17 16:53:26 +00:00
|
|
|
}
|
1996-08-08 15:40:13 +00:00
|
|
|
else
|
1997-06-09 09:34:13 +00:00
|
|
|
if (k == K_CTRL + K_INS)
|
1996-08-08 15:40:13 +00:00
|
|
|
f.enable_cell(r, 1, r > 0);
|
2008-12-23 09:11:50 +00:00
|
|
|
return true;
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
1996-05-23 14:58:33 +00:00
|
|
|
void TRec_sheet::save_desc()
|
1994-08-12 10:52:49 +00:00
|
|
|
{
|
1995-02-02 18:08:03 +00:00
|
|
|
if (_descr)
|
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
TSheet_field& f1 = _mask->sfield(F_FIELDS);
|
1995-02-02 18:08:03 +00:00
|
|
|
const int nfields = f1.items();
|
1994-08-12 10:52:49 +00:00
|
|
|
|
1995-02-02 18:08:03 +00:00
|
|
|
for (int i = 0; i < nfields; i++)
|
2008-12-10 16:55:06 +00:00
|
|
|
_descr->set(_rec.rec().Fd[i].Name, f1.row(i).items() > 4 ?
|
|
|
|
f1.row(i).get(-2) : "");
|
1995-02-02 18:08:03 +00:00
|
|
|
delete _descr;
|
|
|
|
_descr = new TConfig(_descfname, DESCPAR);
|
|
|
|
}
|
1996-05-23 14:58:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void TRec_sheet::save()
|
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
if ((_rec == _rec_old && !_descr) ||
|
2002-10-24 10:47:49 +00:00
|
|
|
!yesnocancel_box(TR("Salvare le modifiche"))) return;
|
1999-05-24 13:34:11 +00:00
|
|
|
|
|
|
|
if (prefix().name()[0]) // Non fare conversioni sui dati standard
|
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
TSystemisamfile f(_rec.num());
|
|
|
|
f.update(_rec, true);
|
1999-05-24 13:34:11 +00:00
|
|
|
}
|
|
|
|
|
1996-05-23 14:58:33 +00:00
|
|
|
save_desc();
|
2008-12-10 16:55:06 +00:00
|
|
|
_rec_old = _rec;
|
1998-01-20 15:04:34 +00:00
|
|
|
// modifica del 16-1-98, Augusto :
|
|
|
|
// Il bottone "salva" salva anche il trr e dir in recdesc
|
|
|
|
|
|
|
|
TFilename nf;
|
2009-09-15 11:10:06 +00:00
|
|
|
nf << "recdesc/f" << _dir.num();
|
1998-01-20 15:04:34 +00:00
|
|
|
nf.ext("trr");
|
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
_rec.set_des(_descr,_tab.upper());
|
1998-01-20 15:04:34 +00:00
|
|
|
ofstream out(nf);
|
2008-12-10 16:55:06 +00:00
|
|
|
out << _rec;
|
|
|
|
_rec.set_des();
|
1998-01-20 15:04:34 +00:00
|
|
|
}
|
1999-05-24 13:34:11 +00:00
|
|
|
|
1998-01-20 15:04:34 +00:00
|
|
|
nf.ext("dir");
|
|
|
|
ofstream out(nf);
|
2008-12-10 16:55:06 +00:00
|
|
|
out << _dir;
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void TRec_sheet::edit()
|
|
|
|
{
|
1996-05-23 14:58:33 +00:00
|
|
|
bool import_dirty = FALSE;
|
2008-12-10 16:55:06 +00:00
|
|
|
TSheet_field& f1 = _mask->sfield(F_FIELDS);
|
|
|
|
TSheet_field& f2 = _mask->sfield(F_KEYS);
|
1997-07-22 12:58:54 +00:00
|
|
|
|
|
|
|
if (!_external)
|
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
_mask->set (F_NUM, _dir.num());
|
|
|
|
_mask->set (F_DES, _dir.des());
|
1997-07-22 12:58:54 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
_mask->disable(-1);
|
1994-08-16 16:35:22 +00:00
|
|
|
f1.sheet_mask().field(FLD_LEN).set_handler(len_handler);
|
1996-08-08 15:40:13 +00:00
|
|
|
f1.set_notify(fld_notify);
|
1995-08-03 14:16:58 +00:00
|
|
|
f1.set_append(FALSE);
|
1995-02-02 18:08:03 +00:00
|
|
|
f1.enable_column(FLD_DES - 101, _descr != NULL);
|
2004-03-13 00:12:59 +00:00
|
|
|
|
2008-12-10 16:55:06 +00:00
|
|
|
int nfields = _rec.fields();
|
|
|
|
|
2004-03-13 00:12:59 +00:00
|
|
|
int i;
|
|
|
|
for (i = 0; i < nfields; i++)
|
1995-02-02 18:08:03 +00:00
|
|
|
{
|
2008-12-10 16:55:06 +00:00
|
|
|
f1.row(i) = _rec.fielddef(i);
|
1995-02-02 18:08:03 +00:00
|
|
|
if (_descr)
|
2008-12-10 16:55:06 +00:00
|
|
|
f1.row(i).add(_descr->get(_rec.rec().Fd[i].Name));
|
1995-02-02 18:08:03 +00:00
|
|
|
else
|
1996-01-29 13:48:59 +00:00
|
|
|
f1.row(i).add("");
|
|
|
|
const TFieldtypes type = (TFieldtypes) f1.row(i).get_int(1);
|
|
|
|
switch (type)
|
|
|
|
{
|
|
|
|
case _datefld :
|
|
|
|
case _wordfld :
|
|
|
|
case _charfld :
|
|
|
|
case _boolfld :
|
|
|
|
case _memofld:
|
|
|
|
f1.disable_cell(i, 2);
|
|
|
|
case _alfafld :
|
|
|
|
case _intfld :
|
|
|
|
case _longfld :
|
|
|
|
case _intzerofld :
|
|
|
|
case _longzerofld:
|
|
|
|
f1.disable_cell(i, 3);
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
1994-08-16 16:35:22 +00:00
|
|
|
f2.set_notify(key_notify);
|
1995-08-03 14:16:58 +00:00
|
|
|
f2.set_append(FALSE);
|
2008-12-10 16:55:06 +00:00
|
|
|
int nkeys = _rec.keys();
|
|
|
|
for (i = 0; i < nkeys; i++) f2.row(i) = _rec.keydef(i);
|
1995-07-17 16:53:26 +00:00
|
|
|
f2.disable_cell(0, 1);
|
2009-09-15 11:10:06 +00:00
|
|
|
while (true)
|
1994-08-16 16:35:22 +00:00
|
|
|
{
|
1996-05-23 14:58:33 +00:00
|
|
|
f1.force_update(0); // Non togliere, serve per fare l'update della descrizione quando si fa l'import!!
|
1994-08-16 16:35:22 +00:00
|
|
|
switch (_mask->run())
|
|
|
|
{
|
1994-08-19 10:41:33 +00:00
|
|
|
case K_SAVE:
|
|
|
|
{
|
1995-06-12 11:09:01 +00:00
|
|
|
nfields = f1.items();
|
|
|
|
int nf = 0;
|
1994-08-19 10:41:33 +00:00
|
|
|
for (i = 0; i < nfields; i++)
|
1994-08-16 16:35:22 +00:00
|
|
|
{
|
1995-02-02 18:08:03 +00:00
|
|
|
TToken_string s(f1.row(i));
|
|
|
|
|
1996-01-29 13:48:59 +00:00
|
|
|
if (s.items() > 4)
|
|
|
|
s.destroy(-2);
|
1995-06-12 11:09:01 +00:00
|
|
|
if (s.items() > 0)
|
2008-12-10 16:55:06 +00:00
|
|
|
_rec.update_fielddef(nf++, s);
|
1994-08-16 16:35:22 +00:00
|
|
|
}
|
2008-12-10 16:55:06 +00:00
|
|
|
_rec.set_fields(nf);
|
|
|
|
_rec.rehash();
|
1994-08-19 10:41:33 +00:00
|
|
|
nkeys = f2.items();
|
2008-12-10 16:55:06 +00:00
|
|
|
_rec.set_keys(nkeys);
|
1994-08-19 10:41:33 +00:00
|
|
|
for (i = 0; i < nkeys; i++)
|
|
|
|
{
|
|
|
|
TToken_string& s = f2.row(i);
|
2008-12-10 16:55:06 +00:00
|
|
|
_rec.update_keydef(i, s);
|
1998-02-09 12:06:44 +00:00
|
|
|
}
|
2008-12-10 16:55:06 +00:00
|
|
|
_dir.set_len(_rec.len());
|
1994-08-19 10:41:33 +00:00
|
|
|
save();
|
1996-05-23 14:58:33 +00:00
|
|
|
return;
|
1994-08-19 10:41:33 +00:00
|
|
|
}
|
2008-12-23 09:11:50 +00:00
|
|
|
case K_ESC:
|
|
|
|
if (_descr && (_mask->dirty() || import_dirty))
|
1994-08-16 16:35:22 +00:00
|
|
|
{
|
2008-12-23 09:11:50 +00:00
|
|
|
// Se viene premuto Annulla NON deve salvare le descrizioni! Altrimenti che annulla e'?
|
|
|
|
// Salva il vecchio file di descrizione con un altro nome...
|
|
|
|
if (!import_dirty)
|
|
|
|
fcopy(_descfname,"des.xxx");
|
|
|
|
// libera _descr (scrivendo il file)
|
|
|
|
delete _descr;
|
|
|
|
_descr = NULL;
|
|
|
|
// Ripristina il vecchio file e rimuove il file temporaneo
|
|
|
|
fcopy("des.xxx",_descfname);
|
|
|
|
}
|
|
|
|
remove("des.xxx");
|
|
|
|
return;
|
|
|
|
case K_ENTER:
|
|
|
|
main_app().print();
|
|
|
|
break;
|
|
|
|
case K_F6:
|
|
|
|
{
|
|
|
|
TMask m("ba1100f");
|
|
|
|
TFilename nf;
|
|
|
|
nf << 'f' << _dir.num();
|
|
|
|
nf.ext("trr");
|
|
|
|
m.set(F_NOMEF, nf);
|
|
|
|
if (m.run() == K_ENTER)
|
1997-06-09 09:34:13 +00:00
|
|
|
{
|
2008-12-23 09:11:50 +00:00
|
|
|
nf = m.get(F_NOMEF);
|
|
|
|
if (nf.not_empty())
|
2008-11-11 16:19:47 +00:00
|
|
|
{
|
2008-12-23 09:11:50 +00:00
|
|
|
save_desc();
|
|
|
|
{
|
|
|
|
_rec.set_des(_descr,_tab.upper());
|
|
|
|
ofstream out(nf);
|
|
|
|
out << _rec;
|
|
|
|
_rec.set_des();
|
|
|
|
}
|
|
|
|
nf.ext("dir");
|
2008-11-11 16:19:47 +00:00
|
|
|
ofstream out(nf);
|
2008-12-23 09:11:50 +00:00
|
|
|
out << _dir;
|
2008-11-11 16:19:47 +00:00
|
|
|
}
|
1997-06-09 09:34:13 +00:00
|
|
|
}
|
1994-08-16 16:35:22 +00:00
|
|
|
}
|
2008-12-23 09:11:50 +00:00
|
|
|
break;
|
|
|
|
case K_F7:
|
1994-08-16 16:35:22 +00:00
|
|
|
{
|
2008-12-23 09:11:50 +00:00
|
|
|
TMask m("ba1100f");
|
|
|
|
TFilename nout(_dir.name());
|
|
|
|
|
|
|
|
nout.strip("$%");
|
|
|
|
nout.ext("trr");
|
|
|
|
m.set(F_NOMEF, nout);
|
|
|
|
if (m.run() == K_ENTER)
|
2008-11-11 16:19:47 +00:00
|
|
|
{
|
2008-12-23 09:11:50 +00:00
|
|
|
const TFilename nf(m.get(F_NOMEF));
|
|
|
|
if (nf.not_empty())
|
|
|
|
{
|
|
|
|
import_dirty = TRUE;
|
|
|
|
_rec.set_des(_descr,_tab.upper());
|
|
|
|
ifstream in(nf);
|
|
|
|
in >> _rec;
|
|
|
|
nfields = _rec.fields();
|
|
|
|
fcopy(_descfname,"des.xxx"); // salva il vecchio file di descrizioni
|
|
|
|
f1.destroy(-1);
|
|
|
|
|
|
|
|
for (int i = 0; i < nfields; i++)
|
|
|
|
{
|
|
|
|
f1.row(i) = _rec.fielddef(i);
|
|
|
|
if (_descr)
|
|
|
|
f1.row(i).add(_descr->get(_rec.rec().Fd[i].Name));
|
|
|
|
else
|
|
|
|
f1.row(i).add("");
|
|
|
|
const TFieldtypes type = (TFieldtypes) f1.row(i).get_int(1);
|
|
|
|
switch (type)
|
|
|
|
{
|
|
|
|
case _datefld :
|
|
|
|
case _wordfld :
|
|
|
|
case _charfld :
|
|
|
|
case _boolfld :
|
|
|
|
case _memofld:
|
|
|
|
f1.disable_cell(i, 2);
|
|
|
|
case _alfafld :
|
|
|
|
case _intfld :
|
|
|
|
case _longfld :
|
|
|
|
case _intzerofld :
|
|
|
|
case _longzerofld:
|
|
|
|
f1.disable_cell(i, 3);
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
2008-11-11 16:19:47 +00:00
|
|
|
}
|
2008-12-23 09:11:50 +00:00
|
|
|
nkeys = _rec.keys();
|
|
|
|
f2.reset();
|
|
|
|
for (int i = 0; i < nkeys; i++)
|
|
|
|
f2.row(i) = _rec.keydef(i);
|
|
|
|
f2.disable_cell(0, 1);
|
1996-02-05 14:50:57 +00:00
|
|
|
}
|
1996-05-23 14:58:33 +00:00
|
|
|
}
|
1994-08-16 16:35:22 +00:00
|
|
|
}
|
2008-12-23 09:11:50 +00:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return; // K_QUIT
|
1994-08-16 16:35:22 +00:00
|
|
|
}
|
|
|
|
}
|
1994-08-12 10:52:49 +00:00
|
|
|
}
|