Patch level : 10.0
Files correlati : ba1 Ricompilazione Demo : [ ] Commento : Corretta conversione archivi con particalre attenzione alla ricostruzione indici di panapdc e multirel che ahanno cambiato posizione dalla 3.2 alla 10.0 git-svn-id: svn://10.65.10.50/trunk@17857 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cb69e4727a
commit
ed84d58a07
207
ba/ba1100.cpp
207
ba/ba1100.cpp
@ -12,6 +12,7 @@
|
|||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
|
|
||||||
#include <user.h>
|
#include <user.h>
|
||||||
|
#include <nditte.h>
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
@ -108,16 +109,14 @@ TManutenzione_app::TManutenzione_app() : _browse(NULL), _mask(NULL), _firm(0), _
|
|||||||
{
|
{
|
||||||
if (!fexist(Dir_file)) // controlla l'esistenza dei direttori standard (dir.gen e trc.gen)
|
if (!fexist(Dir_file)) // controlla l'esistenza dei direttori standard (dir.gen e trc.gen)
|
||||||
{ // vengono creati se non esistono
|
{ // vengono creati se non esistono
|
||||||
TDir d;
|
FileDes fd; memset(&fd, 0, sizeof(fd));
|
||||||
FileDes* fd = d.filedesc();
|
strncpy(fd.SysName, "$dir.gen", sizeof(fd.SysName));
|
||||||
|
strncpy(fd.Des, "Directory", sizeof(fd.Des));
|
||||||
strcpy(fd->SysName,"$dir.gen");
|
strncpy(fd.FCalc, "0", sizeof(fd.FCalc));
|
||||||
fd->LenR =160;
|
strncpy(fd.GenPrompt,"", sizeof(fd.GenPrompt));
|
||||||
fd->EOD = fd->EOX = 1L;
|
fd.LenR =160;
|
||||||
fd->Flags = 0;
|
fd.EOD = fd.EOX = 1L;
|
||||||
strcpy(fd->Des ,"Directory");
|
fd.Flags = 0;
|
||||||
strcpy(fd->FCalc,"0");
|
|
||||||
strcpy(fd->GenPrompt,"");
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
int handle = sopen(Dir_file, O_RDWR|O_BINARY|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE);
|
int handle = sopen(Dir_file, O_RDWR|O_BINARY|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE);
|
||||||
@ -126,16 +125,17 @@ TManutenzione_app::TManutenzione_app() : _browse(NULL), _mask(NULL), _firm(0), _
|
|||||||
#endif
|
#endif
|
||||||
if (handle != -1)
|
if (handle != -1)
|
||||||
{
|
{
|
||||||
if (write( handle, fd, sizeof(FileDes)) == -1)
|
if (write( handle, &fd, sizeof(FileDes)) == -1)
|
||||||
fatal_box("Impossibile scrivere il file dir.gen per dati standard: errore %d",errno);
|
fatal_box("Impossibile scrivere il file dir.gen per dati standard: errore %d",errno);
|
||||||
close(handle);
|
close(handle);
|
||||||
}
|
}
|
||||||
else fatal_box("Impossibile creare il file dir.gen per dati standard: errore %d",errno);
|
else
|
||||||
|
fatal_box("Impossibile creare il file dir.gen per dati standard: errore %d",errno);
|
||||||
}
|
}
|
||||||
if (!fexist(Trc_file))
|
if (!fexist(Trc_file))
|
||||||
{
|
{
|
||||||
TTrec r;
|
TTrec r;
|
||||||
RecDes* rd = r.rec();
|
RecDes& rd = r.rec();
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
int handle = sopen(Trc_file, O_RDWR|O_BINARY|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE);
|
int handle = sopen(Trc_file, O_RDWR|O_BINARY|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE);
|
||||||
#else
|
#else
|
||||||
@ -143,11 +143,12 @@ TManutenzione_app::TManutenzione_app() : _browse(NULL), _mask(NULL), _firm(0), _
|
|||||||
#endif
|
#endif
|
||||||
if (handle != -1)
|
if (handle != -1)
|
||||||
{
|
{
|
||||||
if (write( handle, (char*)rd, sizeof(RecDes)) == -1)
|
if (write( handle, (void*)&rd, sizeof(RecDes)) == -1)
|
||||||
fatal_box("Impossibile scrivere il file trc.gen per dati standard: errore %d",errno);
|
fatal_box("Impossibile scrivere il file trc.gen per dati standard: errore %d",errno);
|
||||||
close(handle);
|
close(handle);
|
||||||
}
|
}
|
||||||
else fatal_box("Impossibile creare il file trc.gen per dati standard: errore %d",errno);
|
else
|
||||||
|
fatal_box("Impossibile creare il file trc.gen per dati standard: errore %d",errno);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,8 +162,8 @@ void TManutenzione_app::do_print(TPrinter & p, TRec_sheet & r)
|
|||||||
TToken_string s;
|
TToken_string s;
|
||||||
TParagraph_string d("", 25);
|
TParagraph_string d("", 25);
|
||||||
TConfig * descr = NULL;
|
TConfig * descr = NULL;
|
||||||
TTrec & rec = *r.rec();
|
const TTrec& rec = r.rec();
|
||||||
TDir & dir = *r.dir();
|
const TDir& dir = r.dir();
|
||||||
const char * descfname = r.descfname();
|
const char * descfname = r.descfname();
|
||||||
TString4 tab(r.tab());
|
TString4 tab(r.tab());
|
||||||
const bool istab = tab.not_empty();
|
const bool istab = tab.not_empty();
|
||||||
@ -205,7 +206,7 @@ void TManutenzione_app::do_print(TPrinter & p, TRec_sheet & r)
|
|||||||
row.put(table[s.get_int()], 18);
|
row.put(table[s.get_int()], 18);
|
||||||
row.put(format("%4d", s.get_int()), 38);
|
row.put(format("%4d", s.get_int()), 38);
|
||||||
row.put(format("%4d", s.get_int()), 43);
|
row.put(format("%4d", s.get_int()), 43);
|
||||||
row.put(format("%4d", rec.rec()->Fd[i].RecOff), 48);
|
row.put(format("%4d", rec.rec().Fd[i].RecOff), 48);
|
||||||
const char *wd = NULL;
|
const char *wd = NULL;
|
||||||
|
|
||||||
d = "";
|
d = "";
|
||||||
@ -389,7 +390,10 @@ void TManutenzione_app::open_log()
|
|||||||
{
|
{
|
||||||
_print_log = false;
|
_print_log = false;
|
||||||
if (_log == NULL)
|
if (_log == NULL)
|
||||||
_log = new TLog_report("Conversione");
|
{
|
||||||
|
TString s; s << TR("Conversione") << ' ' << TDate(TODAY);
|
||||||
|
_log = new TLog_report(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TManutenzione_app::write_log(const char* line, const int severity)
|
void TManutenzione_app::write_log(const char* line, const int severity)
|
||||||
@ -461,21 +465,21 @@ void TManutenzione_app::insert_riga (long riga_sel, TToken_string& riga)
|
|||||||
/* shift di uno in avanti degli elementi del direttorio partendo dall'ultimo */
|
/* shift di uno in avanti degli elementi del direttorio partendo dall'ultimo */
|
||||||
for (int i=num_files; i>=logicnum; i--)
|
for (int i=num_files; i>=logicnum; i--)
|
||||||
{
|
{
|
||||||
_browse->dir()->get (i, _nolock, _nordir, _sysdirop);
|
_browse->dir().get (i, _nolock, _nordir, _sysdirop);
|
||||||
_browse->dir()->put (i + 1, _nordir, _sysdirop);
|
_browse->dir().put (i + 1, _nordir, _sysdirop);
|
||||||
_browse->rec()->get (i);
|
_browse->rec().get (i);
|
||||||
_browse->rec()->put (i + 1);
|
_browse->rec().put (i + 1);
|
||||||
}
|
}
|
||||||
_browse->dir()->set(_mask->get(FLD_NOME), _mask->get_long(FLD_EOD),
|
_browse->dir().set(_mask->get(FLD_NOME), _mask->get_long(FLD_EOD),
|
||||||
_mask->get_long(FLD_FLAG), _mask->get (FLD_DESC),
|
_mask->get_long(FLD_FLAG), _mask->get (FLD_DESC),
|
||||||
_mask->get (FLD_FORMULA));
|
_mask->get (FLD_FORMULA));
|
||||||
_browse->dir()->put(logicnum, _nordir, _sysdirop);
|
_browse->dir().put(logicnum, _nordir, _sysdirop);
|
||||||
_browse->rec()->zero();
|
_browse->rec().zero();
|
||||||
_browse->rec()->put(logicnum);
|
_browse->rec().put(logicnum);
|
||||||
_browse->dir()->get(LF_DIR);
|
_browse->dir().get(LF_DIR);
|
||||||
_browse->dir()->eod()++;
|
_browse->dir().set_eod(_browse->dir().eod()+1);
|
||||||
_browse->set_items(_browse->dir()->eod());
|
_browse->set_items(_browse->dir().eod());
|
||||||
_browse->dir()->put(LF_DIR);
|
_browse->dir().put(LF_DIR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -676,7 +680,7 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga)
|
|||||||
strcpy (dep.FCalc,_mask->get (FLD_FORMULA));
|
strcpy (dep.FCalc,_mask->get (FLD_FORMULA));
|
||||||
const TRecnotype eox = _mask->get_bool(FLD_EXTEND) ? _mask->get_long(FLD_EOX) : oldeox;
|
const TRecnotype eox = _mask->get_bool(FLD_EXTEND) ? _mask->get_long(FLD_EOX) : oldeox;
|
||||||
|
|
||||||
TDir& dir = *_browse->dir();
|
TDir& dir = _browse->dir();
|
||||||
dir.get(logicnum, _lock, _nordir, _sysdirop);
|
dir.get(logicnum, _lock, _nordir, _sysdirop);
|
||||||
dir.set(dep.SysName, dep.EOD, dep.Flags, dep.Des, dep.FCalc);
|
dir.set(dep.SysName, dep.EOD, dep.Flags, dep.Des, dep.FCalc);
|
||||||
dir.put(logicnum, _nordir, _sysdirop);
|
dir.put(logicnum, _nordir, _sysdirop);
|
||||||
@ -692,16 +696,16 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga)
|
|||||||
|
|
||||||
if (!f_name.exist()) f.build(eox);
|
if (!f_name.exist()) f.build(eox);
|
||||||
|
|
||||||
_browse->dir()->get(logicnum, _nolock, _nordir, _sysdirop);
|
_browse->dir().get(logicnum, _nolock, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
if (tasto == K_F5 && logicnum > 1)
|
if (tasto == K_F5 && logicnum >= LF_USER)
|
||||||
{
|
{
|
||||||
f.packfile();
|
f.packfile();
|
||||||
f.packindex();
|
f.packindex();
|
||||||
// le 4 righe seguenti servono per allineare i valori di EOD ed EOX dopo una compattazione forzata
|
// le 4 righe seguenti servono per allineare i valori di EOD ed EOX dopo una compattazione forzata
|
||||||
dir.get(logicnum, _lock, _nordir, _sysdirop);
|
dir.get(logicnum, _lock, _nordir, _sysdirop);
|
||||||
dir.set(dep.SysName, dep.EOD, dep.Flags, dep.Des, dep.FCalc);
|
dir.set(dep.SysName, dep.EOD, dep.Flags, dep.Des, dep.FCalc);
|
||||||
dir.set_eox(_browse->dir()->eod());
|
dir.set_eox(_browse->dir().eod());
|
||||||
dir.put(logicnum, _nordir, _sysdirop);
|
dir.put(logicnum, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -775,18 +779,18 @@ void TManutenzione_app::delete_riga (long riga_sel)
|
|||||||
/* shift di uno in avanti degli elementi del direttorio partendo dall'ultimo */
|
/* shift di uno in avanti degli elementi del direttorio partendo dall'ultimo */
|
||||||
for (int i = logicnum + 1; i <= num_files; i++)
|
for (int i = logicnum + 1; i <= num_files; i++)
|
||||||
{
|
{
|
||||||
_browse->dir()->get (i, _nolock, _nordir, _sysdirop);
|
_browse->dir().get (i, _nolock, _nordir, _sysdirop);
|
||||||
_browse->dir()->put (i - 1, _nordir, _sysdirop);
|
_browse->dir().put (i - 1, _nordir, _sysdirop);
|
||||||
_browse->rec()->get (i);
|
_browse->rec().get (i);
|
||||||
_browse->rec()->put (i - 1);
|
_browse->rec().put (i - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
_browse->dir()->get(LF_DIR);
|
_browse->dir().get(LF_DIR);
|
||||||
r.zero();
|
r.zero();
|
||||||
r.put(_browse->dir()->eod());
|
r.put(_browse->dir().eod());
|
||||||
_browse->dir()->eod()--;
|
_browse->dir().set_eod(_browse->dir().eod()-1);
|
||||||
_browse->set_items(_browse->dir()->eod());
|
_browse->set_items(_browse->dir().eod());
|
||||||
_browse->dir()->put(LF_DIR);
|
_browse->dir().put(LF_DIR);
|
||||||
_browse->force_update();
|
_browse->force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -824,11 +828,11 @@ void TManutenzione_app::repair_file(int i)
|
|||||||
save_file(n);
|
save_file(n);
|
||||||
TExternisamfile ef(d.filename());
|
TExternisamfile ef(d.filename());
|
||||||
|
|
||||||
const RecDes* rd = ef.curr().rec_des();
|
const RecDes& rd = ef.curr().rec_des();
|
||||||
TTrec rec; rec.get(i);
|
TTrec rec; rec.get(i);
|
||||||
const int oldreclen = rec.len();
|
const int oldreclen = rec.len();
|
||||||
const int recsize = sizeof(RecDes);
|
const int recsize = sizeof(RecDes);
|
||||||
memcpy(rec.rec(), rd, recsize);
|
rec.rec() = rd;
|
||||||
rec.put(i);
|
rec.put(i);
|
||||||
|
|
||||||
const int reclen = rec.len();
|
const int reclen = rec.len();
|
||||||
@ -851,7 +855,7 @@ void TManutenzione_app::update_dir()
|
|||||||
// trattasi di files PRASSI, (ad esempio i cespiti) che da noi non vengono toccati,
|
// trattasi di files PRASSI, (ad esempio i cespiti) che da noi non vengono toccati,
|
||||||
// in modo da evitare colpe inutili. Noi aggiorniamo solo i tracciati su dir e trc,
|
// in modo da evitare colpe inutili. Noi aggiorniamo solo i tracciati su dir e trc,
|
||||||
// ma il file fisico manco lo tocchiamo!!
|
// ma il file fisico manco lo tocchiamo!!
|
||||||
TString80 s;
|
|
||||||
const TString pref(prefix().name());
|
const TString pref(prefix().name());
|
||||||
const bool is_com = prefix().is_com();
|
const bool is_com = prefix().is_com();
|
||||||
|
|
||||||
@ -860,9 +864,7 @@ void TManutenzione_app::update_dir()
|
|||||||
|
|
||||||
const int last_new_item = _dirs.last(); //quale è il numero dell'ultimo file nuovo?
|
const int last_new_item = _dirs.last(); //quale è il numero dell'ultimo file nuovo?
|
||||||
|
|
||||||
TDir d ;
|
TDir d(LF_DIR); // equivale a d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
|
|
||||||
d.get(LF_DIR);
|
|
||||||
const int last_curr_item = (int)d.eod(); //quale è il numero dell'ultimo file attualmente presente
|
const int last_curr_item = (int)d.eod(); //quale è il numero dell'ultimo file attualmente presente
|
||||||
|
|
||||||
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
|
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
|
||||||
@ -893,10 +895,11 @@ void TManutenzione_app::update_dir()
|
|||||||
const long flags = ds.flags();
|
const long flags = ds.flags();
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
const bool old_is_firm = d.is_firm();
|
const bool old_is_firm = d.is_firm();
|
||||||
|
|
||||||
|
TFilename fs = d.filename();
|
||||||
|
|
||||||
|
/* Roba incomprensibile e quindi inutile
|
||||||
d.get(i);
|
d.get(i);
|
||||||
|
|
||||||
|
|
||||||
TFilename fs(d.filename());
|
|
||||||
if (strrchr(d.name(),'.') != NULL) // No extension please!
|
if (strrchr(d.name(),'.') != NULL) // No extension please!
|
||||||
{
|
{
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
@ -905,14 +908,15 @@ void TManutenzione_app::update_dir()
|
|||||||
d.set_name(ext);
|
d.set_name(ext);
|
||||||
d.put(i, _nordir, _sysdirop);
|
d.put(i, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (!fs.exist())
|
if (!fs.exist())
|
||||||
{
|
{
|
||||||
if (d.eox() > 0L)
|
if (d.eox() > 0L)
|
||||||
{
|
{
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
d.eod() = 0L;
|
d.set_eod(0);
|
||||||
d.eox() = 0L;
|
d.set_eox(0);
|
||||||
d.put(i, _nordir, _sysdirop);
|
d.put(i, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -996,8 +1000,8 @@ void TManutenzione_app::update_dir()
|
|||||||
FOR_EACH_TOKEN(idx_names, idx_name)
|
FOR_EACH_TOKEN(idx_names, idx_name)
|
||||||
xvt_fsys_remove_file(idx_name);
|
xvt_fsys_remove_file(idx_name);
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
d.eod() = 0L;
|
d.set_eod(0);
|
||||||
d.eox() = 0L;
|
d.set_eox(0);
|
||||||
d.put(i, _nordir, _sysdirop);
|
d.put(i, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1019,7 +1023,7 @@ void TManutenzione_app::update_dir()
|
|||||||
|
|
||||||
if (to_create && !cmn_file)
|
if (to_create && !cmn_file)
|
||||||
{
|
{
|
||||||
if (flags < 10000L && flags > -1L && fexist(fs) && (fd != fs))
|
if (flags < 10000L && flags > -1L && fs.exist() && (fd != fs))
|
||||||
{
|
{
|
||||||
|
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
@ -1037,18 +1041,16 @@ void TManutenzione_app::update_dir()
|
|||||||
TTrec wrd;
|
TTrec wrd;
|
||||||
|
|
||||||
wrs.get(i);
|
wrs.get(i);
|
||||||
wrd.get(j);
|
|
||||||
|
|
||||||
wrd = wrs;
|
wrd.get(j); // A cosa ca$$o serve ...
|
||||||
|
wrd = wrs; // ... visto che poi lo sbatto via?
|
||||||
wrd.set_num(j);
|
wrd.set_num(j);
|
||||||
|
|
||||||
wrd.put(j);
|
wrd.put(j);
|
||||||
wrs.zero();
|
wrs.zero();
|
||||||
wrs.put(i);
|
wrs.put(i);
|
||||||
TDir wds;
|
TDir wds(i);
|
||||||
TDir wdd;
|
TDir wdd(j);
|
||||||
|
|
||||||
wds.get(i, _nolock, _nordir, _sysdirop);
|
|
||||||
wdd.get(j, _nolock, _nordir, _sysdirop);
|
|
||||||
|
|
||||||
wdd.set(wds.name(), wds.eod(), wds.flags(), wds.des(), wds.expr());
|
wdd.set(wds.name(), wds.eod(), wds.flags(), wds.des(), wds.expr());
|
||||||
wdd.set_eox(wds.eox());
|
wdd.set_eox(wds.eox());
|
||||||
@ -1067,7 +1069,7 @@ void TManutenzione_app::update_dir()
|
|||||||
if (found)
|
if (found)
|
||||||
continue;
|
continue;
|
||||||
path.rtrim(1);
|
path.rtrim(1);
|
||||||
if (path.not_empty() && !fexist(path))
|
if (path.full() && !path.exist())
|
||||||
ok = make_dir(path);
|
ok = make_dir(path);
|
||||||
if (ok && fcopy(fs, fd))
|
if (ok && fcopy(fs, fd))
|
||||||
{
|
{
|
||||||
@ -1081,7 +1083,7 @@ void TManutenzione_app::update_dir()
|
|||||||
fdi.ext("");
|
fdi.ext("");
|
||||||
if (j > 1) // Means that more indexes are in TToken_string ts
|
if (j > 1) // Means that more indexes are in TToken_string ts
|
||||||
{
|
{
|
||||||
TString xx=fdi.name();
|
const TFixed_string xx(fdi.name());
|
||||||
if (xx.len() < 8)
|
if (xx.len() < 8)
|
||||||
fdi << ('0' + j);
|
fdi << ('0' + j);
|
||||||
else
|
else
|
||||||
@ -1176,17 +1178,17 @@ void TManutenzione_app::update_dir()
|
|||||||
TDir d1((TDir &) _dirs[i]);
|
TDir d1((TDir &) _dirs[i]);
|
||||||
|
|
||||||
d1.set_len(0);
|
d1.set_len(0);
|
||||||
d1.eox() = 0L;
|
d1.set_eox(0);
|
||||||
d1.eod() = 0L;
|
d1.set_eod(0);
|
||||||
d1.flags() = 0L;
|
d1.set_flags(0);
|
||||||
d1.put(i, _nordir, _sysdirop); //scrive su dir.gen il nuovo file aggiunto (mettendo numero,eox,eod,flags)
|
d1.put(i, _nordir, _sysdirop); //scrive su dir.gen il nuovo file aggiunto (mettendo numero,eox,eod,flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
//allinea i valori di eox ed eod (eox non può mai essere < eod!)
|
//allinea i valori di eox ed eod (eox non può mai essere < eod!)
|
||||||
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
d.eod() = last_new_item;
|
d.set_eod(last_new_item);
|
||||||
if (d.eox() < d.eod())
|
if (d.eox() < d.eod())
|
||||||
d.eox() = d.eod();
|
d.set_eox(d.eod());
|
||||||
d.put(LF_DIR, _nordir, _sysdirop);
|
d.put(LF_DIR, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1199,8 +1201,7 @@ void TManutenzione_app::convert_dir()
|
|||||||
const bool is_com = prefix().is_com();
|
const bool is_com = prefix().is_com();
|
||||||
const int last_new_item = _dirs.last();
|
const int last_new_item = _dirs.last();
|
||||||
|
|
||||||
TDir d;
|
TDir d(LF_DIR);
|
||||||
d.get(LF_DIR);
|
|
||||||
const int last_curr_item = (int)d.eod();
|
const int last_curr_item = (int)d.eod();
|
||||||
|
|
||||||
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
|
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
|
||||||
@ -1246,14 +1247,6 @@ void TManutenzione_app::convert_dir()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
{
|
|
||||||
bool go_on = true;
|
|
||||||
//controllo solo all'aga
|
|
||||||
if (is_power_station())
|
|
||||||
go_on = yesno_box(FR("Il file %d non puo' essere aperto:\nErrore %d. Continuare ugualmente?"), i, err);
|
|
||||||
if (!go_on)
|
|
||||||
stop_run();
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
//si decide di proseguire anche se il file non può essere aperto ne tiene traccia nel log (nel caso di utonti..
|
//si decide di proseguire anche se il file non può essere aperto ne tiene traccia nel log (nel caso di utonti..
|
||||||
//..è sempre così, perchè go_on è sempre true)
|
//..è sempre così, perchè go_on è sempre true)
|
||||||
@ -1261,7 +1254,6 @@ void TManutenzione_app::convert_dir()
|
|||||||
msg.format(TR("Il file %d non può essere aperto. Errore %d"), i, err);
|
msg.format(TR("Il file %d non può essere aperto. Errore %d"), i, err);
|
||||||
write_log(msg, 2);
|
write_log(msg, 2);
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} //if (i > 2 && err != NOERR &&...
|
} //if (i > 2 && err != NOERR &&...
|
||||||
|
|
||||||
@ -1274,7 +1266,7 @@ void TManutenzione_app::convert_dir()
|
|||||||
|
|
||||||
if (to_create && has_module(module, CHK_DONGLE))
|
if (to_create && has_module(module, CHK_DONGLE))
|
||||||
{
|
{
|
||||||
TDir df; df.get(i);
|
const TDir df(i);
|
||||||
const TFilename fname(df.filename());
|
const TFilename fname(df.filename());
|
||||||
|
|
||||||
//crea il nuovo file in base al tracciato record nuovo!
|
//crea il nuovo file in base al tracciato record nuovo!
|
||||||
@ -1329,23 +1321,21 @@ void TManutenzione_app::convert_dir()
|
|||||||
} //for (int i = 2; i <= update_items...
|
} //for (int i = 2; i <= update_items...
|
||||||
|
|
||||||
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
d.flags() = _level;
|
d.set_flags(_level);
|
||||||
d.put(LF_DIR, _nordir, _sysdirop);
|
d.put(LF_DIR, _nordir, _sysdirop);
|
||||||
put_history(pref);
|
put_history(pref);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TManutenzione_app::load_des(const int maxfdir)
|
void TManutenzione_app::load_des(const int maxfdir)
|
||||||
{
|
{
|
||||||
|
TWait_cursor waiter;
|
||||||
const TString pref(prefix().name());
|
const TString pref(prefix().name());
|
||||||
|
|
||||||
_dirs.destroy();
|
_dirs.destroy();
|
||||||
_recs.destroy();
|
_recs.destroy();
|
||||||
_level = prefix().filelevel();
|
_level = prefix().filelevel();
|
||||||
|
|
||||||
TDir d;
|
TDir d(LF_DIR);
|
||||||
TTrec r;
|
|
||||||
|
|
||||||
d.get(LF_DIR,_nolock, _nordir,_sysdirop);
|
|
||||||
int items = (int)d.eod();
|
int items = (int)d.eod();
|
||||||
long flags = d.flags();
|
long flags = d.flags();
|
||||||
const bool standard = pref.empty();
|
const bool standard = pref.empty();
|
||||||
@ -1405,9 +1395,9 @@ void TManutenzione_app::load_des(const int maxfdir)
|
|||||||
tr.put(ln);
|
tr.put(ln);
|
||||||
}
|
}
|
||||||
|
|
||||||
d.eod() = (long)last_newln;
|
d.set_eod(last_newln);
|
||||||
d.eox() = (long)last_newln;
|
d.set_eox(last_newln);
|
||||||
d.flags() = _level = flags;
|
d.set_flags(_level = flags);
|
||||||
prefix().set_stdlevel(flags);
|
prefix().set_stdlevel(flags);
|
||||||
d.put(LF_DIR,_nordir,_sysdirop);
|
d.put(LF_DIR,_nordir,_sysdirop);
|
||||||
}
|
}
|
||||||
@ -1427,7 +1417,8 @@ void TManutenzione_app::load_des(const int maxfdir)
|
|||||||
{
|
{
|
||||||
p.addstatus(1);
|
p.addstatus(1);
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
r.get(i);
|
TTrec r(i);
|
||||||
|
|
||||||
if (standard)
|
if (standard)
|
||||||
{
|
{
|
||||||
TFilename desc_file;
|
TFilename desc_file;
|
||||||
@ -1521,7 +1512,6 @@ void TManutenzione_app::update()
|
|||||||
|
|
||||||
do_events();
|
do_events();
|
||||||
|
|
||||||
begin_wait();
|
|
||||||
TDir d;
|
TDir d;
|
||||||
d.get(LF_DIR,_nolock, _nordir, _sysdirop);
|
d.get(LF_DIR,_nolock, _nordir, _sysdirop);
|
||||||
const int maxfdir = d.items();
|
const int maxfdir = d.items();
|
||||||
@ -1530,11 +1520,7 @@ void TManutenzione_app::update()
|
|||||||
prefix().set_codditta(0L);
|
prefix().set_codditta(0L);
|
||||||
|
|
||||||
open_log();
|
open_log();
|
||||||
TString s;
|
write_log(TR("Conversione Dati comuni"));
|
||||||
s.format(FR("Conversione del %s"), (const char*)TDate(TODAY).string());
|
|
||||||
write_log(s);
|
|
||||||
write_log("");
|
|
||||||
write_log(TR("Dati comuni"));
|
|
||||||
write_log("");
|
write_log("");
|
||||||
|
|
||||||
update_dir();
|
update_dir();
|
||||||
@ -1543,20 +1529,18 @@ void TManutenzione_app::update()
|
|||||||
TSystemisamfile ditte(LF_NDITTE);
|
TSystemisamfile ditte(LF_NDITTE);
|
||||||
ditte.open();
|
ditte.open();
|
||||||
|
|
||||||
s = TR("Conversione archivi ditte.");
|
const int nditte = ditte.items();
|
||||||
|
if (nditte)
|
||||||
TProgind p(ditte.items() ? ditte.items() : 1, s, false, true);
|
{
|
||||||
|
TProgind p(nditte, TR("Conversione archivi ditte."), false, true);
|
||||||
p.setstatus(1);
|
|
||||||
TString mxs;
|
TString mxs;
|
||||||
|
for (int err = ditte.first(); err == NOERR; err = ditte.next())
|
||||||
for (ditte.first(); !ditte.eof(); ditte.next())
|
|
||||||
{
|
{
|
||||||
const TRecnotype rec = ditte.recno();
|
const TRecnotype rec = ditte.recno();
|
||||||
const long codditta = ditte.get_long("CODDITTA");
|
const long codditta = ditte.get_long(NDT_CODDITTA);
|
||||||
mxs = s;
|
mxs.cut(0) << TR("Conversione Ditta") << ' ' << codditta << ' ' << ditte.get(NDT_RAGSOC);
|
||||||
mxs << TR(" Ditta ") << codditta;
|
if (!p.addstatus(1))
|
||||||
p.addstatus(1);
|
break;
|
||||||
p.set_text(mxs);
|
p.set_text(mxs);
|
||||||
if (codditta > _history_firm && prefix().exist(codditta))
|
if (codditta > _history_firm && prefix().exist(codditta))
|
||||||
{
|
{
|
||||||
@ -1572,6 +1556,7 @@ void TManutenzione_app::update()
|
|||||||
ditte.readat(rec);
|
ditte.readat(rec);
|
||||||
}
|
}
|
||||||
ditte.close();
|
ditte.close();
|
||||||
|
}
|
||||||
//chiude il log di conversione
|
//chiude il log di conversione
|
||||||
close_log();
|
close_log();
|
||||||
|
|
||||||
@ -1598,8 +1583,6 @@ void TManutenzione_app::update()
|
|||||||
close_history();
|
close_history();
|
||||||
|
|
||||||
send_campo_xml(); // Spedisce situazione via ftp
|
send_campo_xml(); // Spedisce situazione via ftp
|
||||||
|
|
||||||
end_wait();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TManutenzione_app::main_loop()
|
void TManutenzione_app::main_loop()
|
||||||
|
24
ba/ba1100.h
24
ba/ba1100.h
@ -25,8 +25,8 @@ class TMask_field;
|
|||||||
|
|
||||||
class TDir_sheet : public TSheet
|
class TDir_sheet : public TSheet
|
||||||
{
|
{
|
||||||
TTrec *_rec;
|
TTrec _rec;
|
||||||
TDir *_dir;
|
TDir _dir;
|
||||||
FileDes _s_dir;
|
FileDes _s_dir;
|
||||||
long _items;
|
long _items;
|
||||||
|
|
||||||
@ -35,11 +35,13 @@ protected:
|
|||||||
virtual void get_row(long n, TToken_string& r);
|
virtual void get_row(long n, TToken_string& r);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TDir* dir() const { return _dir; }
|
const TDir& dir() const { return _dir; }
|
||||||
TTrec* rec() const { return _rec; }
|
TDir& dir() { return _dir; }
|
||||||
|
const TTrec& rec() const { return _rec; }
|
||||||
|
TTrec& rec(){ return _rec; }
|
||||||
void set_items(long items) { _items = items; }
|
void set_items(long items) { _items = items; }
|
||||||
void add();
|
void add();
|
||||||
void rebuild() { _items = _dir->items();}
|
void rebuild() { _items = _dir.items();}
|
||||||
|
|
||||||
TDir_sheet(const char* title, bool superprassi, const char* col = "N.@3R|Nome@20|EOD@7R|EOX@7R|Lung.@7R|Descrizione@43|Formula@33|Flags@7R");
|
TDir_sheet(const char* title, bool superprassi, const char* col = "N.@3R|Nome@20|EOD@7R|EOX@7R|Lung.@7R|Descrizione@43|Formula@33|Flags@7R");
|
||||||
virtual ~TDir_sheet();
|
virtual ~TDir_sheet();
|
||||||
@ -47,9 +49,9 @@ public:
|
|||||||
|
|
||||||
class TRec_sheet : public TObject
|
class TRec_sheet : public TObject
|
||||||
{
|
{
|
||||||
TTrec *_rec;
|
TTrec _rec;
|
||||||
TTrec *_rec_old;
|
TTrec _rec_old;
|
||||||
TDir *_dir;
|
TDir _dir;
|
||||||
bool _comfile;
|
bool _comfile;
|
||||||
TConfig *_descr;
|
TConfig *_descr;
|
||||||
static TMask *_mask;
|
static TMask *_mask;
|
||||||
@ -64,11 +66,11 @@ protected:
|
|||||||
void save();
|
void save();
|
||||||
void save_desc();
|
void save_desc();
|
||||||
|
|
||||||
virtual long get_items() const { return _rec->fields(); }
|
virtual long get_items() const { return _rec.fields(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TDir* dir() const { return _dir; }
|
const TDir& dir() const { return _dir; }
|
||||||
TTrec* rec() const { return _rec; }
|
const TTrec& rec() const { return _rec; }
|
||||||
const char* descfname() const { return _descfname;}
|
const char* descfname() const { return _descfname;}
|
||||||
const char* tab() const { return _tab; }
|
const char* tab() const { return _tab; }
|
||||||
void edit();
|
void edit();
|
||||||
|
152
ba/ba1101.cpp
152
ba/ba1101.cpp
@ -13,15 +13,15 @@ TMask* TRec_sheet::_mask = NULL;
|
|||||||
|
|
||||||
void TDir_sheet::add()
|
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;
|
||||||
|
|
||||||
|
if (_dir.eox() < nitems)
|
||||||
|
_dir.set_eox(nitems + 10);
|
||||||
|
_dir.set_eod(nitems);
|
||||||
|
_dir.put(LF_DIR, _nordir, _sysdirop);
|
||||||
|
|
||||||
_dir->eod() = nitems;
|
|
||||||
if (_dir->eox() < _dir->eod())
|
|
||||||
_dir->eox() += 10;
|
|
||||||
_dir->put(LF_DIR, _nordir, _sysdirop);
|
|
||||||
TDir d;
|
TDir d;
|
||||||
|
|
||||||
d.zero();
|
d.zero();
|
||||||
d.put(nitems, _nordir, _sysdirop);
|
d.put(nitems, _nordir, _sysdirop);
|
||||||
_items = nitems;
|
_items = nitems;
|
||||||
@ -46,29 +46,25 @@ TDir_sheet::TDir_sheet(const char* title, bool superprassi, const char* colonne)
|
|||||||
add_button(DLG_HELP, TR("Help"), K_F1, BMP_HELP);
|
add_button(DLG_HELP, TR("Help"), K_F1, BMP_HELP);
|
||||||
xvt_toolbar_set_last_tool(toolbar(), DLG_QUIT);
|
xvt_toolbar_set_last_tool(toolbar(), DLG_QUIT);
|
||||||
|
|
||||||
_dir = new TDir;
|
|
||||||
_rec = new TTrec;
|
|
||||||
rebuild();
|
rebuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
TDir_sheet::~TDir_sheet()
|
TDir_sheet::~TDir_sheet()
|
||||||
{
|
{
|
||||||
delete _dir;
|
|
||||||
delete _rec;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDir_sheet::get_row(long n, TToken_string& l)
|
void TDir_sheet::get_row(long n, TToken_string& l)
|
||||||
{
|
{
|
||||||
n++;
|
n++;
|
||||||
_dir->get ((int)n,_nolock,_nordir,_sysdirop);
|
_dir.get ((int)n,_nolock,_nordir,_sysdirop);
|
||||||
l.format("%d", n); // Numero progressivo del file
|
l.format("%d", n); // Numero progressivo del file
|
||||||
l.add(_dir->name());
|
l.add(_dir.name());
|
||||||
l.add(_dir->eod());
|
l.add(_dir.eod());
|
||||||
l.add(_dir->eox());
|
l.add(_dir.eox());
|
||||||
l.add((long)_dir->len());
|
l.add((long)_dir.len());
|
||||||
l.add(_dir->des());
|
l.add(_dir.des());
|
||||||
l.add(_dir->expr());
|
l.add(_dir.expr());
|
||||||
l.add(_dir->flags());
|
l.add(_dir.flags());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -76,23 +72,20 @@ TRec_sheet::TRec_sheet(int logicnum, const char * tab)
|
|||||||
: _descr(NULL), _tab(tab)
|
: _descr(NULL), _tab(tab)
|
||||||
{
|
{
|
||||||
_external = FALSE;
|
_external = FALSE;
|
||||||
_dir = new TDir;
|
|
||||||
_rec = new TTrec;
|
|
||||||
_rec_old = new TTrec;
|
|
||||||
_mask = new TMask("ba1100d");
|
_mask = new TMask("ba1100d");
|
||||||
|
|
||||||
_dir->get(logicnum, _lock, _nordir, _sysdirop);
|
_dir.get(logicnum, _lock, _nordir, _sysdirop);
|
||||||
_rec->get(logicnum);
|
_rec.get(logicnum);
|
||||||
if (_dir->len() == 0)
|
if (_dir.len() == 0)
|
||||||
_rec->zero();
|
_rec.zero();
|
||||||
*_rec_old = *_rec;
|
_rec_old = _rec;
|
||||||
_tab.lower();
|
_tab.lower();
|
||||||
if (fexist(DESCDIR))
|
if (fexist(DESCDIR))
|
||||||
{
|
{
|
||||||
if (logicnum >= LF_TABGEN && logicnum <= LF_TAB && _tab.not_empty())
|
if (logicnum >= LF_TABGEN && logicnum <= LF_TAB && _tab.not_empty())
|
||||||
_descfname.format("%s/d%s.des", DESCDIR, (const char *) _tab);
|
_descfname.format("%s/d%s.des", DESCDIR, (const char *) _tab);
|
||||||
else
|
else
|
||||||
_descfname.format("%s/d%d.des", DESCDIR, _dir->num());
|
_descfname.format("%s/d%d.des", DESCDIR, _dir.num());
|
||||||
FILE * fd = NULL;
|
FILE * fd = NULL;
|
||||||
|
|
||||||
if (!fexist(_descfname) && (fd = fopen(_descfname, "w")) == NULL)
|
if (!fexist(_descfname) && (fd = fopen(_descfname, "w")) == NULL)
|
||||||
@ -106,31 +99,24 @@ TRec_sheet::TRec_sheet(int logicnum, const char * tab)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TRec_sheet::TRec_sheet(TExternisamfile* file)
|
TRec_sheet::TRec_sheet(TExternisamfile* file) : _descr(NULL)
|
||||||
: _descr(NULL), _tab("")
|
|
||||||
{
|
{
|
||||||
_external = TRUE;
|
_external = TRUE;
|
||||||
_dir = new TDir;
|
|
||||||
_rec = new TTrec;
|
|
||||||
_rec_old = new TTrec;
|
|
||||||
_mask = new TMask("ba1100d");
|
_mask = new TMask("ba1100d");
|
||||||
|
|
||||||
const FileDes& d = prefix().get_filedes(file->num());
|
const FileDes& d = prefix().get_filedes(file->num());
|
||||||
const RecDes& r = prefix().get_recdes(file->num());
|
const RecDes& r = prefix().get_recdes(file->num());
|
||||||
memcpy(_dir->filedesc(),&d,sizeof(FileDes));
|
_dir.filedesc() = d;
|
||||||
memcpy(_rec->rec(),&r,sizeof(RecDes));
|
_rec.rec() = r;
|
||||||
if (_dir->len() == 0)
|
if (_dir.len() == 0)
|
||||||
_rec->zero();
|
_rec.zero();
|
||||||
*_rec_old = *_rec;
|
_rec_old = _rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRec_sheet::~TRec_sheet()
|
TRec_sheet::~TRec_sheet()
|
||||||
{
|
{
|
||||||
if (!_external)
|
if (!_external)
|
||||||
_dir->get(_dir->num(), _unlock, _nordir, _sysdirop);
|
_dir.get(_dir.num(), _unlock, _nordir, _sysdirop);
|
||||||
delete _dir;
|
|
||||||
delete _rec;
|
|
||||||
delete _rec_old;
|
|
||||||
delete _mask;
|
delete _mask;
|
||||||
_mask = NULL;
|
_mask = NULL;
|
||||||
if (_descr)
|
if (_descr)
|
||||||
@ -199,11 +185,11 @@ void TRec_sheet::save_desc()
|
|||||||
{
|
{
|
||||||
if (_descr)
|
if (_descr)
|
||||||
{
|
{
|
||||||
TSheet_field& f1 = (TSheet_field&) _mask->field(F_FIELDS);
|
TSheet_field& f1 = _mask->sfield(F_FIELDS);
|
||||||
const int nfields = f1.items();
|
const int nfields = f1.items();
|
||||||
|
|
||||||
for (int i = 0; i < nfields; i++)
|
for (int i = 0; i < nfields; i++)
|
||||||
_descr->set(_rec->rec()->Fd[i].Name, f1.row(i).items() > 4 ?
|
_descr->set(_rec.rec().Fd[i].Name, f1.row(i).items() > 4 ?
|
||||||
f1.row(i).get(-2) : "");
|
f1.row(i).get(-2) : "");
|
||||||
delete _descr;
|
delete _descr;
|
||||||
_descr = new TConfig(_descfname, DESCPAR);
|
_descr = new TConfig(_descfname, DESCPAR);
|
||||||
@ -211,64 +197,62 @@ void TRec_sheet::save_desc()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TRec_sheet::save()
|
void TRec_sheet::save()
|
||||||
|
|
||||||
{
|
{
|
||||||
if ((*_rec == *_rec_old && !_descr) ||
|
if ((_rec == _rec_old && !_descr) ||
|
||||||
!yesnocancel_box(TR("Salvare le modifiche"))) return;
|
!yesnocancel_box(TR("Salvare le modifiche"))) return;
|
||||||
|
|
||||||
if (prefix().name()[0]) // Non fare conversioni sui dati standard
|
if (prefix().name()[0]) // Non fare conversioni sui dati standard
|
||||||
{
|
{
|
||||||
TSystemisamfile f(_rec->num());
|
TSystemisamfile f(_rec.num());
|
||||||
f.update(*_rec, true);
|
f.update(_rec, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
save_desc();
|
save_desc();
|
||||||
*_rec_old = *_rec;
|
_rec_old = _rec;
|
||||||
// modifica del 16-1-98, Augusto :
|
// modifica del 16-1-98, Augusto :
|
||||||
// Il bottone "salva" salva anche il trr e dir in recdesc
|
// Il bottone "salva" salva anche il trr e dir in recdesc
|
||||||
|
|
||||||
TFilename nf;
|
TFilename nf;
|
||||||
nf << "recdesc\\f" << _dir->num();
|
nf << "recdesc\\f" << _dir.num();
|
||||||
nf.ext("trr");
|
nf.ext("trr");
|
||||||
{
|
{
|
||||||
_rec->set_des(_descr,_tab.upper());
|
_rec.set_des(_descr,_tab.upper());
|
||||||
ofstream out(nf);
|
ofstream out(nf);
|
||||||
out << *_rec;
|
out << _rec;
|
||||||
_rec->set_des();
|
_rec.set_des();
|
||||||
}
|
}
|
||||||
|
|
||||||
nf.ext("dir");
|
nf.ext("dir");
|
||||||
ofstream out(nf);
|
ofstream out(nf);
|
||||||
out << *_dir;
|
out << _dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRec_sheet::edit()
|
void TRec_sheet::edit()
|
||||||
{
|
{
|
||||||
bool import_dirty = FALSE;
|
bool import_dirty = FALSE;
|
||||||
TSheet_field& f1 = (TSheet_field&) _mask->field(F_FIELDS);
|
TSheet_field& f1 = _mask->sfield(F_FIELDS);
|
||||||
TSheet_field& f2 = (TSheet_field&) _mask->field(F_KEYS);
|
TSheet_field& f2 = _mask->sfield(F_KEYS);
|
||||||
|
|
||||||
if (!_external)
|
if (!_external)
|
||||||
{
|
{
|
||||||
_mask->set (F_NUM, _dir->num());
|
_mask->set (F_NUM, _dir.num());
|
||||||
_mask->set (F_DES, _dir->des());
|
_mask->set (F_DES, _dir.des());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_mask->disable(-1);
|
_mask->disable(-1);
|
||||||
f1.sheet_mask().field(FLD_LEN).set_handler(len_handler);
|
f1.sheet_mask().field(FLD_LEN).set_handler(len_handler);
|
||||||
f1.set_notify(fld_notify);
|
f1.set_notify(fld_notify);
|
||||||
f1.set_append(FALSE);
|
f1.set_append(FALSE);
|
||||||
int nfields = _rec->fields();
|
|
||||||
|
|
||||||
f1.enable_column(FLD_DES - 101, _descr != NULL);
|
f1.enable_column(FLD_DES - 101, _descr != NULL);
|
||||||
|
|
||||||
int i;
|
int nfields = _rec.fields();
|
||||||
|
|
||||||
|
int i;
|
||||||
for (i = 0; i < nfields; i++)
|
for (i = 0; i < nfields; i++)
|
||||||
{
|
{
|
||||||
f1.row(i) = _rec->fielddef(i);
|
f1.row(i) = _rec.fielddef(i);
|
||||||
if (_descr)
|
if (_descr)
|
||||||
f1.row(i).add(_descr->get(_rec->rec()->Fd[i].Name));
|
f1.row(i).add(_descr->get(_rec.rec().Fd[i].Name));
|
||||||
else
|
else
|
||||||
f1.row(i).add("");
|
f1.row(i).add("");
|
||||||
const TFieldtypes type = (TFieldtypes) f1.row(i).get_int(1);
|
const TFieldtypes type = (TFieldtypes) f1.row(i).get_int(1);
|
||||||
@ -292,8 +276,8 @@ void TRec_sheet::edit()
|
|||||||
}
|
}
|
||||||
f2.set_notify(key_notify);
|
f2.set_notify(key_notify);
|
||||||
f2.set_append(FALSE);
|
f2.set_append(FALSE);
|
||||||
int nkeys = _rec->keys();
|
int nkeys = _rec.keys();
|
||||||
for (i = 0; i < nkeys; i++) f2.row(i) = _rec->keydef(i);
|
for (i = 0; i < nkeys; i++) f2.row(i) = _rec.keydef(i);
|
||||||
f2.disable_cell(0, 1);
|
f2.disable_cell(0, 1);
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@ -311,18 +295,18 @@ void TRec_sheet::edit()
|
|||||||
if (s.items() > 4)
|
if (s.items() > 4)
|
||||||
s.destroy(-2);
|
s.destroy(-2);
|
||||||
if (s.items() > 0)
|
if (s.items() > 0)
|
||||||
_rec->update_fielddef(nf++, s);
|
_rec.update_fielddef(nf++, s);
|
||||||
}
|
}
|
||||||
_rec->set_fields(nf);
|
_rec.set_fields(nf);
|
||||||
_rec->rehash();
|
_rec.rehash();
|
||||||
nkeys = f2.items();
|
nkeys = f2.items();
|
||||||
_rec->set_keys(nkeys);
|
_rec.set_keys(nkeys);
|
||||||
for (i = 0; i < nkeys; i++)
|
for (i = 0; i < nkeys; i++)
|
||||||
{
|
{
|
||||||
TToken_string& s = f2.row(i);
|
TToken_string& s = f2.row(i);
|
||||||
_rec->update_keydef(i, s);
|
_rec.update_keydef(i, s);
|
||||||
}
|
}
|
||||||
_dir->set_len(_rec->len());
|
_dir.set_len(_rec.len());
|
||||||
save();
|
save();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -348,7 +332,7 @@ void TRec_sheet::edit()
|
|||||||
{
|
{
|
||||||
TMask m("ba1100f");
|
TMask m("ba1100f");
|
||||||
TFilename nf;
|
TFilename nf;
|
||||||
nf << 'f' << _dir->num();
|
nf << 'f' << _dir.num();
|
||||||
nf.ext("trr");
|
nf.ext("trr");
|
||||||
m.set(F_NOMEF, nf);
|
m.set(F_NOMEF, nf);
|
||||||
if (m.run() == K_ENTER)
|
if (m.run() == K_ENTER)
|
||||||
@ -358,14 +342,14 @@ void TRec_sheet::edit()
|
|||||||
{
|
{
|
||||||
save_desc();
|
save_desc();
|
||||||
{
|
{
|
||||||
_rec->set_des(_descr,_tab.upper());
|
_rec.set_des(_descr,_tab.upper());
|
||||||
ofstream out(nf);
|
ofstream out(nf);
|
||||||
out << *_rec;
|
out << _rec;
|
||||||
_rec->set_des();
|
_rec.set_des();
|
||||||
}
|
}
|
||||||
nf.ext("dir");
|
nf.ext("dir");
|
||||||
ofstream out(nf);
|
ofstream out(nf);
|
||||||
out << *_dir;
|
out << _dir;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -373,7 +357,7 @@ void TRec_sheet::edit()
|
|||||||
case K_F7:
|
case K_F7:
|
||||||
{
|
{
|
||||||
TMask m("ba1100f");
|
TMask m("ba1100f");
|
||||||
TFilename nout(_dir->name());
|
TFilename nout(_dir.name());
|
||||||
|
|
||||||
nout.strip("$%");
|
nout.strip("$%");
|
||||||
nout.ext("trr");
|
nout.ext("trr");
|
||||||
@ -384,18 +368,18 @@ void TRec_sheet::edit()
|
|||||||
if (nf.not_empty())
|
if (nf.not_empty())
|
||||||
{
|
{
|
||||||
import_dirty = TRUE;
|
import_dirty = TRUE;
|
||||||
_rec->set_des(_descr,_tab.upper());
|
_rec.set_des(_descr,_tab.upper());
|
||||||
ifstream in(nf);
|
ifstream in(nf);
|
||||||
in >> *_rec;
|
in >> _rec;
|
||||||
nfields = _rec->fields();
|
nfields = _rec.fields();
|
||||||
fcopy(_descfname,"des.xxx"); // salva il vecchio file di descrizioni
|
fcopy(_descfname,"des.xxx"); // salva il vecchio file di descrizioni
|
||||||
f1.destroy(-1);
|
f1.destroy(-1);
|
||||||
|
|
||||||
for (int i = 0; i < nfields; i++)
|
for (int i = 0; i < nfields; i++)
|
||||||
{
|
{
|
||||||
f1.row(i) = _rec->fielddef(i);
|
f1.row(i) = _rec.fielddef(i);
|
||||||
if (_descr)
|
if (_descr)
|
||||||
f1.row(i).add(_descr->get(_rec->rec()->Fd[i].Name));
|
f1.row(i).add(_descr->get(_rec.rec().Fd[i].Name));
|
||||||
else
|
else
|
||||||
f1.row(i).add("");
|
f1.row(i).add("");
|
||||||
const TFieldtypes type = (TFieldtypes) f1.row(i).get_int(1);
|
const TFieldtypes type = (TFieldtypes) f1.row(i).get_int(1);
|
||||||
@ -417,10 +401,10 @@ void TRec_sheet::edit()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nkeys = _rec->keys();
|
nkeys = _rec.keys();
|
||||||
f2.reset();
|
f2.reset();
|
||||||
for (int i = 0; i < nkeys; i++)
|
for (int i = 0; i < nkeys; i++)
|
||||||
f2.row(i) = _rec->keydef(i);
|
f2.row(i) = _rec.keydef(i);
|
||||||
f2.disable_cell(0, 1);
|
f2.disable_cell(0, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,6 +196,7 @@ bool save_campo_xml()
|
|||||||
// Aggiorna il file xml coi dati di installazione e lo spedisce qua
|
// Aggiorna il file xml coi dati di installazione e lo spedisce qua
|
||||||
bool send_campo_xml()
|
bool send_campo_xml()
|
||||||
{
|
{
|
||||||
|
TWait_cursor waiter;
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
if (save_campo_xml())
|
if (save_campo_xml())
|
||||||
{
|
{
|
||||||
|
@ -171,7 +171,7 @@ void TPackFiles_application::main_loop()
|
|||||||
d.get(i,_nolock, _nordir,_sysdirop);
|
d.get(i,_nolock, _nordir,_sysdirop);
|
||||||
bool is_com = d.is_com();
|
bool is_com = d.is_com();
|
||||||
d.get(i,_nolock, is_com ? _comdir : _nordir);
|
d.get(i,_nolock, is_com ? _comdir : _nordir);
|
||||||
d.eod() = 0L;
|
d.set_eod(0);
|
||||||
d.put(i, is_com ? _comdir : _nordir);
|
d.put(i, is_com ? _comdir : _nordir);
|
||||||
if (f.pack() == NOERR)
|
if (f.pack() == NOERR)
|
||||||
if (f.load(d_name) == NOERR) // Reload
|
if (f.load(d_name) == NOERR) // Reload
|
||||||
|
10
ba/bacnv.cpp
10
ba/bacnv.cpp
@ -518,13 +518,11 @@ void TConversione_archivi::patch_com()
|
|||||||
|
|
||||||
void TConversione_archivi::zero_770()
|
void TConversione_archivi::zero_770()
|
||||||
{
|
{
|
||||||
|
TDir d;
|
||||||
for (int i = LF_BASE ; i <= LF_DETH; i++)
|
for (int i = LF_BASE ; i <= LF_DETH; i++)
|
||||||
{
|
{
|
||||||
TDir d;
|
|
||||||
|
|
||||||
d.get(i, _lock, _nordir, _sysdirop);
|
d.get(i, _lock, _nordir, _sysdirop);
|
||||||
d.eod() = 0L;
|
d.reset_eox();
|
||||||
d.eox() = 0L;
|
|
||||||
d.put(i, _nordir, _sysdirop);
|
d.put(i, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -727,13 +725,13 @@ void TConversione_archivi::convert_profili()
|
|||||||
TFilename lf;
|
TFilename lf;
|
||||||
|
|
||||||
d.get(LF_FORM, _nolock, _comdir, _sysdirop);
|
d.get(LF_FORM, _nolock, _comdir, _sysdirop);
|
||||||
d.eod() = 0;
|
d.set_eod(0);
|
||||||
d.put(LF_FORM, _comdir, _sysdirop);
|
d.put(LF_FORM, _comdir, _sysdirop);
|
||||||
form.pack();
|
form.pack();
|
||||||
lf.format("%sstd/lf0054.txt", __ptprf);
|
lf.format("%sstd/lf0054.txt", __ptprf);
|
||||||
if (fexist(lf)) form.load(lf);
|
if (fexist(lf)) form.load(lf);
|
||||||
d.get(LF_RFORM, _nolock, _comdir, _sysdirop);
|
d.get(LF_RFORM, _nolock, _comdir, _sysdirop);
|
||||||
d.eod() = 0;
|
d.set_eod(0);
|
||||||
d.put(LF_RFORM, _comdir, _sysdirop);
|
d.put(LF_RFORM, _comdir, _sysdirop);
|
||||||
rform.pack();
|
rform.pack();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user