Correzione al programma di tracciati

git-svn-id: svn://10.65.10.50/trunk@1466 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-06-12 11:09:01 +00:00
parent 22fbb28fb3
commit 56e9dd6b27
3 changed files with 26 additions and 17 deletions

View File

@ -601,13 +601,16 @@ void TManutenzione_app::update_dir()
prefix().set(""); prefix().set("");
d.get(i, _nolock, _nordir, _sysdirop); d.get(i, _nolock, _nordir, _sysdirop);
prefix().set(pref); prefix().set(pref);
d.set_len(0); d.set_len(0);
d.eox() = 0;
d.flags() = 0L; d.flags() = 0L;
d.put(i, _nordir, _sysdirop); d.put(i, _nordir, _sysdirop);
} }
prefix().set(pref); prefix().set(pref);
d.get(LF_DIR, _nolock, _nordir, _sysdirop); d.get(LF_DIR, _nolock, _nordir, _sysdirop);
d.eod() = orig_items; d.eod() = orig_items;
if (d.eox() < d.eod())
d.eox() = d.eod();
d.put(LF_DIR, _nordir, _sysdirop); d.put(LF_DIR, _nordir, _sysdirop);
} }

View File

@ -108,6 +108,8 @@ BEGIN
MESSAGE ENABLE,FLD_LEN|DISABLE,FLD_DEC|"0",FLD_DEC MESSAGE ENABLE,FLD_LEN|DISABLE,FLD_DEC|"0",FLD_DEC
ITEM "10|Intero Lungo Zerofilled" ITEM "10|Intero Lungo Zerofilled"
MESSAGE ENABLE,FLD_LEN|DISABLE,FLD_DEC|"0",FLD_DEC MESSAGE ENABLE,FLD_LEN|DISABLE,FLD_DEC|"0",FLD_DEC
ITEM "11|Memo"
MESSAGE DISABLE,FLD_LEN|"8",FLD_LEN|DISABLE,FLD_DEC|"0",FLD_DEC
END END
NUMBER FLD_LEN 3 NUMBER FLD_LEN 3

View File

@ -26,10 +26,14 @@ void TDir_sheet::add ()
_dir->get(LF_DIR, _lock, _nordir, _sysdirop); _dir->get(LF_DIR, _lock, _nordir, _sysdirop);
const int nitems = (int)_dir->eod() + 1; const int nitems = (int)_dir->eod() + 1;
_dir->eod() = nitems; _dir->eod() = nitems;
_dir->put(LF_DIR); if (_dir->eox() < _dir->eod())
_dir->zero(); _dir->eox() += 10;
_dir->put(nitems); _dir->put(LF_DIR, _nordir, _sysdirop);
TDir d;
d.zero();
d.put(nitems, _nordir, _sysdirop);
_items = nitems; _items = nitems;
build_page(first() + 1); build_page(first() + 1);
@ -132,6 +136,7 @@ TRec_sheet::TRec_sheet(int logicnum, const char * tab)
TRec_sheet::~TRec_sheet() TRec_sheet::~TRec_sheet()
{ {
_dir->get(_dir->num(), _unlock, _nordir, _sysdirop);
delete _dir; delete _dir;
delete _rec; delete _rec;
delete _rec_old; delete _rec_old;
@ -198,15 +203,12 @@ bool TRec_sheet::key_notify(int r, KEY k)
{ {
const TSheet_field& f = (const TSheet_field&) _mask->field(F_KEYS); const TSheet_field& f = (const TSheet_field&) _mask->field(F_KEYS);
if (k == K_SPACE) TMask& m = f.sheet_mask();
{
TMask& m = f.sheet_mask();
m.enable(F_KDUP, r > 0); if (r == 0)
if (r == 0) m.reset(F_KDUP); m.reset(F_KDUP);
} m.enable(F_KDUP, r > 0);
else if (k == K_INS && f.items() >= 8) return FALSE;
if (k == K_INS && f.items() >= 8) return FALSE;
return TRUE; return TRUE;
} }
@ -262,15 +264,17 @@ void TRec_sheet::edit()
{ {
case K_SAVE: case K_SAVE:
{ {
nfields = f1.items(); nfields = f1.items();
_rec->set_fields(nfields); int nf = 0;
for (i = 0; i < nfields; i++) for (i = 0; i < nfields; i++)
{ {
TToken_string s(f1.row(i)); TToken_string s(f1.row(i));
s.destroy(-2); s.destroy(-2);
_rec->update_fielddef(i, s); if (s.items() > 0)
_rec->update_fielddef(nf++, s);
} }
_rec->set_fields(nf);
_rec->rehash(); _rec->rehash();
nkeys = f2.items(); nkeys = f2.items();
_rec->set_keys(nkeys); _rec->set_keys(nkeys);