diff --git a/ba/ba1100.cpp b/ba/ba1100.cpp index 5f33599c3..ebca84de9 100755 --- a/ba/ba1100.cpp +++ b/ba/ba1100.cpp @@ -656,10 +656,10 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga) strcpy (dep.FCalc,_mask->get (FLD_FORMULA)); const TRecnotype eox = _mask->get_bool(FLD_EXTEND) ? _mask->get_long(FLD_EOX) : oldeox; - _browse->dir()->get(logicnum, _lock, _nordir, _sysdirop); - _browse->dir()->set(dep.SysName, dep.EOD, dep.Flags, - dep.Des, dep.FCalc); - _browse->dir()->put(logicnum, _nordir, _sysdirop); + TDir& dir = *_browse->dir(); + dir.get(logicnum, _lock, _nordir, _sysdirop); + dir.set(dep.SysName, dep.EOD, dep.Flags, dep.Des, dep.FCalc); + dir.put(logicnum, _nordir, _sysdirop); { TSystemisamfile f(logicnum); @@ -671,13 +671,18 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga) f_name.ext("dbf"); if (!f_name.exist()) f.build(eox); - else f.extend(eox); + _browse->dir()->get(logicnum, _nolock, _nordir, _sysdirop); } if (tasto == K_F5 && logicnum > 1) { f.packfile(); f.packindex(); +// le 4 righe seguenti servono per allineare i valori di EOD ed EOX dopo una compattazione forzata + dir.get(logicnum, _lock, _nordir, _sysdirop); + dir.set(dep.SysName, dep.EOD, dep.Flags, dep.Des, dep.FCalc); + dir.set_eox(_browse->dir()->eod()); + dir.put(logicnum, _nordir, _sysdirop); } else if (tasto == K_F6)