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("");
d.get(i, _nolock, _nordir, _sysdirop);
prefix().set(pref);
d.set_len(0);
d.set_len(0);
d.eox() = 0;
d.flags() = 0L;
d.put(i, _nordir, _sysdirop);
}
prefix().set(pref);
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
d.eod() = orig_items;
if (d.eox() < d.eod())
d.eox() = d.eod();
d.put(LF_DIR, _nordir, _sysdirop);
}

View File

@ -108,6 +108,8 @@ BEGIN
MESSAGE ENABLE,FLD_LEN|DISABLE,FLD_DEC|"0",FLD_DEC
ITEM "10|Intero Lungo Zerofilled"
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
NUMBER FLD_LEN 3

View File

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