From 56e9dd6b273ce806c145389a67abe009cfd0e4e8 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 12 Jun 1995 11:09:01 +0000 Subject: [PATCH] Correzione al programma di tracciati git-svn-id: svn://10.65.10.50/trunk@1466 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba1100.cpp | 5 ++++- ba/ba1100d.uml | 2 ++ ba/ba1101.cpp | 36 ++++++++++++++++++++---------------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/ba/ba1100.cpp b/ba/ba1100.cpp index ea8bb881c..e99743500 100755 --- a/ba/ba1100.cpp +++ b/ba/ba1100.cpp @@ -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); } diff --git a/ba/ba1100d.uml b/ba/ba1100d.uml index af76a5644..2112fb652 100755 --- a/ba/ba1100d.uml +++ b/ba/ba1100d.uml @@ -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 diff --git a/ba/ba1101.cpp b/ba/ba1101.cpp index cc0234339..c15ad9647 100755 --- a/ba/ba1101.cpp +++ b/ba/ba1101.cpp @@ -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);