ba1301 Tolta cgettime da programma di test isam
ba3100 Corretta gestione bottone di configurazione stampa registri bacnvid Aggiunti controlli sui files senza tracciato batbreg Aggiunto acceleratore alt-s sul bottone di configurazione stampante git-svn-id: svn://10.65.10.50/trunk@1546 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bca2780adb
commit
55394b9fac
@ -329,12 +329,12 @@ void TTestProc::do_test_2()
|
|||||||
void TTestProc::DumpReport(int err, long i, long x, int key)
|
void TTestProc::DumpReport(int err, long i, long x, int key)
|
||||||
{
|
{
|
||||||
static rnum=0;
|
static rnum=0;
|
||||||
char ora[10];
|
char ora[12] = "08-08-1883";
|
||||||
TString RandomFile,ReportFile;
|
TString RandomFile,ReportFile;
|
||||||
FILE * fp;
|
FILE * fp;
|
||||||
|
|
||||||
get_win()->WriteW(33,15,(const char*)TString(35).format("File nr. %d Test nr. %ld",_nfile,_ntest));
|
get_win()->WriteW(33,15,(const char*)TString(35).format("File nr. %d Test nr. %ld",_nfile,_ntest));
|
||||||
cgettime(ora);
|
|
||||||
if (!fexist("test")) // create directory
|
if (!fexist("test")) // create directory
|
||||||
#if XVT_OS==XVT_OS_SCOUNIX
|
#if XVT_OS==XVT_OS_SCOUNIX
|
||||||
mkdir("test",0777);
|
mkdir("test",0777);
|
||||||
|
@ -120,9 +120,11 @@ HIDDEN bool printer_handler(TMask_field& f, KEY k)
|
|||||||
TPrinter& p = printer();
|
TPrinter& p = printer();
|
||||||
p.set_printtype(normprinter); // Force configuration update
|
p.set_printtype(normprinter); // Force configuration update
|
||||||
p.read_configuration(config);
|
p.read_configuration(config);
|
||||||
p.set();
|
if (p.set())
|
||||||
m.enable(F_CONFIG);
|
{
|
||||||
m.set(F_CONFIG, "X");
|
m.enable(F_CONFIG);
|
||||||
|
m.set(F_CONFIG, "X");
|
||||||
|
}
|
||||||
p.read_configuration();
|
p.read_configuration();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -142,12 +144,12 @@ HIDDEN bool impdel_handler(TMask_field& f, KEY k)
|
|||||||
|
|
||||||
if (tipo_del == 1 || tipo_del == 7)
|
if (tipo_del == 1 || tipo_del == 7)
|
||||||
{
|
{
|
||||||
|
const double lim[2] = { 50000.0, 200000.0};
|
||||||
const int t = tipo_del == 1 ? 0 : 1;
|
const int t = tipo_del == 1 ? 0 : 1;
|
||||||
const real imp(m.get(F_IMPORTO));
|
const real imp(m.get(F_IMPORTO));
|
||||||
const double lim[2] = { 50000.0, 200000.0};
|
|
||||||
|
|
||||||
if (imp < lim[t])
|
if (imp < lim[t])
|
||||||
return yesno_box("Importo inferiore a Lit. %s. Vuoi registrare lo stesso ?", real(lim[t]).string("."));
|
return yesno_box("Importo inferiore a Lit. %s. Registrare ugualmente?", real(lim[t]).string("."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
763
ba/bacnvid.cpp
763
ba/bacnvid.cpp
@ -1,388 +1,375 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <isam.h>
|
#include <isam.h>
|
||||||
#include <date.h>
|
#include <date.h>
|
||||||
#include <prefix.h>
|
#include <prefix.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
#define DAYBIAS 36525L
|
#define DAYBIAS 36525L
|
||||||
#define DAYYEAR 365
|
#define DAYYEAR 365
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
int CGetFieldBuff(char *, RecDes *, char *, char *);
|
int CGetFieldBuff(char *, RecDes *, char *, char *);
|
||||||
int findfld(RecDes *, const char *);
|
int findfld(RecDes *, const char *);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
byte m1[12] = {31,28,31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
byte m1[12] = {31,28,31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||||
int m2[12] = {31,59,90,120,151,181,212,243,273,304,334,365};
|
int m2[12] = {31,59,90,120,151,181,212,243,273,304,334,365};
|
||||||
|
|
||||||
enum what {_date,_isam};
|
enum what {_date,_isam};
|
||||||
|
|
||||||
HIDDEN int CGetField(const char *fieldname,RecDes* recd,RecType recin,long* d)
|
HIDDEN int CGetField(const char *fieldname,RecDes* recd,RecType recin,long* d)
|
||||||
|
|
||||||
{
|
{
|
||||||
int p, i;
|
int p, i;
|
||||||
unsigned int off;
|
unsigned int off;
|
||||||
byte len;
|
byte len;
|
||||||
char *s1, s[10];
|
char *s1, s[10];
|
||||||
|
|
||||||
if ((p = findfld(recd, fieldname)) != -1)
|
if ((p = findfld(recd, fieldname)) != -1)
|
||||||
{
|
{
|
||||||
off = recd->Fd[p].RecOff;
|
off = recd->Fd[p].RecOff;
|
||||||
len = recd->Fd[p].Len;
|
len = recd->Fd[p].Len;
|
||||||
if (recd->Fd[p].TypeF != _datefld)
|
if (recd->Fd[p].TypeF != _datefld)
|
||||||
{
|
{
|
||||||
while ((recin[off] == ' ') && (len))
|
while ((recin[off] == ' ') && (len))
|
||||||
{
|
{
|
||||||
off++;
|
off++;
|
||||||
len--;
|
len--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (len)
|
if (len)
|
||||||
{
|
{
|
||||||
s1 = recin + off;
|
s1 = recin + off;
|
||||||
for (i = 0; i < len; i++) s[i] = s1[i];
|
for (i = 0; i < len; i++) s[i] = s1[i];
|
||||||
s[len] = '\0';
|
s[len] = '\0';
|
||||||
while ((len) && (s[len - 1] == ' ')) s[--len] = '\0';
|
while ((len) && (s[len - 1] == ' ')) s[--len] = '\0';
|
||||||
}
|
}
|
||||||
else strcpy(s, "");
|
else strcpy(s, "");
|
||||||
if (recd->Fd[p].TypeF == _datefld)
|
if (recd->Fd[p].TypeF == _datefld)
|
||||||
{
|
{
|
||||||
if (strlen(s)) *d=atol(s);
|
if (strlen(s)) *d=atol(s);
|
||||||
else *d=0;
|
else *d=0;
|
||||||
}
|
}
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fatal_box("Non esiste il campo %s", fieldname);
|
fatal_box("Non esiste il campo %s", fieldname);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class TIsam_date_converter : public TApplication
|
class TIsam_date_converter : public TApplication
|
||||||
{
|
{
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool create () ;
|
virtual bool create () ;
|
||||||
virtual bool destroy();
|
virtual bool destroy();
|
||||||
void update();
|
void update();
|
||||||
void Iupdate_dir();
|
void Iupdate_dir();
|
||||||
void convert_dir(const what conversion);
|
void convert_dir(const what conversion);
|
||||||
int Iconvert_file(int logicnum);
|
int Iconvert_file(int logicnum);
|
||||||
void Dconvert_file(int logicnum);
|
void Dconvert_file(int logicnum);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TIsam_date_converter() {}
|
TIsam_date_converter() {}
|
||||||
~TIsam_date_converter() {}
|
~TIsam_date_converter() {}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TIsam_date_converter::create() // initvar e arrmask
|
bool TIsam_date_converter::create() // initvar e arrmask
|
||||||
|
|
||||||
{
|
{
|
||||||
TApplication::create();
|
TApplication::create();
|
||||||
|
|
||||||
update();
|
update();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TIsam_date_converter::destroy() // releasev e arrmask
|
bool TIsam_date_converter::destroy() // releasev e arrmask
|
||||||
|
|
||||||
{
|
{
|
||||||
return TApplication::destroy() ;
|
return TApplication::destroy() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TIsam_date_converter::update()
|
void TIsam_date_converter::update()
|
||||||
|
|
||||||
{
|
{
|
||||||
long firm = get_firm();
|
long firm = get_firm();
|
||||||
TString pref;
|
TString pref;
|
||||||
if (firm == 0) pref = prefix().name();
|
if (firm == 0) pref = prefix().name();
|
||||||
|
|
||||||
do_events();
|
do_events();
|
||||||
begin_wait();
|
begin_wait();
|
||||||
// Converte i files in formato DBIII, FOXPRO...
|
// Converte i files in formato DBIII, FOXPRO...
|
||||||
prefix().set("");
|
prefix().set("");
|
||||||
Iupdate_dir();
|
Iupdate_dir();
|
||||||
prefix().set("com");
|
prefix().set("com");
|
||||||
Iupdate_dir();
|
Iupdate_dir();
|
||||||
convert_dir(_isam);
|
convert_dir(_isam);
|
||||||
|
|
||||||
TLocalisamfile ditte(LF_NDITTE);
|
TLocalisamfile ditte(LF_NDITTE);
|
||||||
|
|
||||||
set_autoload_new_files(FALSE);
|
set_autoload_new_files(FALSE);
|
||||||
for (ditte.first(); !ditte.eof(); ditte.next())
|
for (ditte.first(); !ditte.eof(); ditte.next())
|
||||||
{
|
{
|
||||||
const long codditta = ditte.get_long("CODDITTA");
|
const long codditta = ditte.get_long("CODDITTA");
|
||||||
const TRecnotype rec = ditte.recno();
|
const TRecnotype rec = ditte.recno();
|
||||||
|
|
||||||
if (prefix().exist(codditta))
|
if (prefix().exist(codditta))
|
||||||
{
|
{
|
||||||
set_firm(codditta);
|
set_firm(codditta);
|
||||||
Iupdate_dir();
|
Iupdate_dir();
|
||||||
convert_dir(_isam);
|
convert_dir(_isam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Converte le date in ANSI.
|
// Converte le date in ANSI.
|
||||||
prefix().set("com");
|
prefix().set("com");
|
||||||
convert_dir(_date);
|
convert_dir(_date);
|
||||||
for (ditte.first(); !ditte.eof(); ditte.next())
|
for (ditte.first(); !ditte.eof(); ditte.next())
|
||||||
{
|
{
|
||||||
const long codditta = ditte.get_long("CODDITTA");
|
const long codditta = ditte.get_long("CODDITTA");
|
||||||
const TRecnotype rec = ditte.recno();
|
const TRecnotype rec = ditte.recno();
|
||||||
|
|
||||||
if (prefix().exist(codditta))
|
if (prefix().exist(codditta))
|
||||||
{
|
{
|
||||||
set_firm(codditta);
|
set_firm(codditta);
|
||||||
convert_dir(_date);
|
convert_dir(_date);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firm > 0) set_firm(firm);
|
if (firm > 0) set_firm(firm);
|
||||||
else prefix().set(pref);
|
else prefix().set(pref);
|
||||||
set_autoload_new_files(TRUE);
|
set_autoload_new_files(TRUE);
|
||||||
end_wait();
|
end_wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TIsam_date_converter::Iupdate_dir()
|
void TIsam_date_converter::Iupdate_dir()
|
||||||
|
|
||||||
{
|
{
|
||||||
TDir d;
|
TDir d;
|
||||||
|
|
||||||
d.get(LF_DIR);
|
d.get(LF_DIR);
|
||||||
const int items = (int)d.eod();
|
const int items = (int)d.eod();
|
||||||
TString80 s("Aggiornamento direttorio ");
|
TString80 s("Aggiornamento direttorio ");
|
||||||
TString pref(prefix().name());
|
TString pref(prefix().name());
|
||||||
|
|
||||||
if (pref.empty()) s << "standard";
|
if (pref.empty()) s << "standard";
|
||||||
else
|
else
|
||||||
if (pref == "com") s << "comune";
|
if (pref == "com") s << "comune";
|
||||||
else s << " della ditta " << atol (pref);
|
else s << " della ditta " << atol (pref);
|
||||||
|
|
||||||
TProgind p((long)(items ? items : 1), s, TRUE, TRUE, 70);
|
TProgind p((long)(items ? items : 1), s, TRUE, TRUE, 70);
|
||||||
|
|
||||||
p.setstatus(1L);
|
p.setstatus(1L);
|
||||||
for (int i = 2; i <= items; i++)
|
for (int i = 2; i <= items; i++)
|
||||||
{
|
{
|
||||||
p.addstatus(1L);
|
p.addstatus(1L);
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
|
|
||||||
TFilename s(d.name());
|
TFilename s(d.name());
|
||||||
|
|
||||||
s.ext("");
|
s.ext("");
|
||||||
strcpy((char *) d.name(), s);
|
strcpy((char *) d.name(), s);
|
||||||
d.put(i, _nordir, _sysdirop);
|
d.put(i, _nordir, _sysdirop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TIsam_date_converter::convert_dir(const what conversion)
|
void TIsam_date_converter::convert_dir(const what conversion)
|
||||||
|
|
||||||
{
|
{
|
||||||
const TString pref(prefix().name());
|
const TString pref(prefix().name());
|
||||||
const bool is_com = prefix().is_com();
|
const bool is_com = prefix().is_com();
|
||||||
TDir d;
|
TDir d;
|
||||||
|
|
||||||
d.get(LF_DIR);
|
d.get(LF_DIR);
|
||||||
const int items = (int)d.eod();
|
const int items = (int)d.eod();
|
||||||
TString80 s("Aggiornamento archivi ");
|
TString80 s("Aggiornamento archivi ");
|
||||||
|
|
||||||
if (pref == "com") s << "comuni";
|
if (pref == "com") s << "comuni";
|
||||||
else s << " della ditta " << atol (pref);
|
else s << " della ditta " << atol (pref);
|
||||||
|
|
||||||
TProgind p((long)(items ? items : 1), s, TRUE, TRUE, 70);
|
TProgind p((long)(items ? items : 1), s, TRUE, TRUE, 70);
|
||||||
|
|
||||||
p.setstatus(1L);
|
p.setstatus(1L);
|
||||||
|
|
||||||
for (int i = 2; i <= items; i++)
|
for (int i = 2; i <= items; i++)
|
||||||
{
|
{
|
||||||
p.setstatus((long)(i+1));
|
p.setstatus((long)(i+1));
|
||||||
d.get(i, _nolock, _nordir, _sysdirop);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
|
|
||||||
const bool to_convert = (is_com ? d.is_com() : d.is_firm());
|
const bool to_convert = (is_com ? d.is_com() : d.is_firm());
|
||||||
|
|
||||||
if (to_convert)
|
if (to_convert)
|
||||||
{
|
{
|
||||||
if (conversion == _isam)
|
if (conversion == _isam)
|
||||||
Iconvert_file(i);
|
Iconvert_file(i);
|
||||||
else
|
else
|
||||||
Dconvert_file(i);
|
Dconvert_file(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int TIsam_date_converter::Iconvert_file(int logicnum)
|
int TIsam_date_converter::Iconvert_file(int logicnum)
|
||||||
|
|
||||||
{
|
{
|
||||||
TDir dir;
|
TDir dir;
|
||||||
TTrec r;
|
TTrec r;
|
||||||
int err = NOERR;
|
int err = NOERR;
|
||||||
|
|
||||||
r.get(logicnum);
|
r.get(logicnum);
|
||||||
RecDes *rd=r.rec();
|
RecDes *rd=r.rec();
|
||||||
const int nflds = r.fields();
|
const int nflds = r.fields();
|
||||||
|
const int nkeys = r.keys();
|
||||||
dir.get(logicnum);
|
|
||||||
if (dir.len() == 0) return 0;
|
dir.get(logicnum);
|
||||||
const char * fp = dir.name();
|
if (dir.len() == 0 || nflds < 1 || nkeys < 1) return 0;
|
||||||
TFilename old(fp);
|
const char * fp = dir.name();
|
||||||
const TRecnotype nitems = dir.eod();
|
TFilename old(fp);
|
||||||
TFile f(dir.len());
|
const TRecnotype nitems = dir.eod();
|
||||||
|
TFile f(dir.len());
|
||||||
old.ext("dta");
|
|
||||||
if (fexist(old))
|
old.ext("dta");
|
||||||
{
|
if (fexist(old))
|
||||||
f.open(old);
|
{
|
||||||
{
|
f.open(old);
|
||||||
TSystemisamfile newfile(logicnum);
|
{
|
||||||
|
TSystemisamfile newfile(logicnum);
|
||||||
if (newfile.build(10) != NOERR)
|
if (newfile.build(10) != NOERR)
|
||||||
fatal_box("Non riesco a creare il file %s : errore n. %d", fp, newfile.status());
|
fatal_box("Non riesco a creare il file %s : errore n. %d", fp, newfile.status());
|
||||||
}
|
}
|
||||||
|
|
||||||
char * _field= new char [r.len()];
|
TString s(80);
|
||||||
TString s(80);
|
s.format("Aggiornamento archivio %s", fp);
|
||||||
TToken_string ts(128); // Build token_string with the names of date fields
|
|
||||||
for (int j=0; j<r.fields(); j++)
|
TProgind p((long)(nitems ? nitems : 1), s, FALSE, TRUE, 70);
|
||||||
if (rd->Fd[j].TypeF == _datefld)
|
TLocalisamfile newfile(logicnum);
|
||||||
ts.add(rd->Fd[j].Name);
|
TRecnotype i;
|
||||||
|
for (i = 1; newfile.good() && i <= dir.eod(); i++)
|
||||||
s.format("Aggiornamento archivio %s", fp);
|
{
|
||||||
TProgind p((long)(nitems ? nitems : 1), s, TRUE, TRUE, 70);
|
f.read(newfile.curr().string(),i);
|
||||||
TLocalisamfile newfile(logicnum);
|
|
||||||
TRecnotype i;
|
if (newfile.curr().string()[0] == '\0')
|
||||||
for (i = 1; newfile.good() && i <= dir.eod(); i++)
|
newfile.curr().recall();
|
||||||
{
|
else
|
||||||
f.read(newfile.curr().string(),i);
|
newfile.curr().discard();
|
||||||
ts.restart();
|
if ((i % 50) == 0) p.setstatus((long)(i + 1));
|
||||||
if (newfile.curr().string()[0] == NULL)
|
if (!newfile.curr().isdeleted())
|
||||||
{
|
newfile.write();
|
||||||
for (int j=0; j<ts.items(); j++)
|
}
|
||||||
{
|
p.setstatus((long)nitems);
|
||||||
CGetFieldBuff((char*)ts.get(),rd,newfile.curr().string(),_field);
|
f.close();
|
||||||
newfile.curr().put(ts.get(j),_field);
|
if (newfile.good())
|
||||||
}
|
{
|
||||||
newfile.curr().recall();
|
old.ext("dta");
|
||||||
}
|
::remove(old);
|
||||||
else
|
old.ext("ndx");
|
||||||
newfile.curr().discard();
|
::remove(old);
|
||||||
if ((i % 50) == 0) p.setstatus((long)(i + 1));
|
}
|
||||||
if (!newfile.curr().isdeleted())
|
else
|
||||||
newfile.write();
|
error_box("Errore nella conversione dell' archivio %s : n.ro %d",
|
||||||
}
|
fp, newfile.status());
|
||||||
p.setstatus((long)nitems);
|
}
|
||||||
f.close();
|
else
|
||||||
if (_field != NULL)
|
{
|
||||||
delete _field;
|
// Crea il file se non esiste il relativo .DTA.
|
||||||
if (newfile.good())
|
const TString pref(prefix().name());
|
||||||
{
|
const bool is_com = prefix().is_com();
|
||||||
old.ext("dta");
|
|
||||||
::remove(old);
|
prefix().set("");
|
||||||
old.ext("ndx");
|
dir.get(logicnum);
|
||||||
::remove(old);
|
const int module = abs((int)dir.flags());
|
||||||
}
|
prefix().set(pref);
|
||||||
else
|
dir.get(logicnum, _nolock, _nordir, _sysdirop);
|
||||||
error_box("Errore nella conversione dell' archivio %s : n.ro %d",
|
bool to_create = (is_com ? dir.is_com() : dir.is_firm());
|
||||||
fp, newfile.status());
|
if (to_create && has_module(module, CHK_DONGLE))
|
||||||
}
|
{
|
||||||
else
|
dir.get(logicnum);
|
||||||
{
|
TFilename s(dir.name());
|
||||||
// Crea il file se non esiste il relativo .DTA.
|
s.ext("dbf");
|
||||||
const TString pref(prefix().name());
|
if (!fexist(s)) // Crea il file solo se non esiste il .DBF
|
||||||
const bool is_com = prefix().is_com();
|
{
|
||||||
|
TSystemisamfile f(logicnum);
|
||||||
prefix().set("");
|
f.build(10L);
|
||||||
dir.get(logicnum);
|
}
|
||||||
const int module = abs((int)dir.flags());
|
}
|
||||||
prefix().set(pref);
|
}
|
||||||
dir.get(logicnum, _nolock, _nordir, _sysdirop);
|
return err;
|
||||||
bool to_create = (is_com ? dir.is_com() : dir.is_firm());
|
}
|
||||||
if (to_create && has_module(module, CHK_DONGLE))
|
|
||||||
{
|
void TIsam_date_converter::Dconvert_file(int logicnum)
|
||||||
dir.get(logicnum);
|
|
||||||
TFilename s(dir.name());
|
{
|
||||||
s.ext("dbf");
|
TDir dir;
|
||||||
if (!fexist(s)) // Crea il file solo se non esiste il .DBF
|
TTrec r;
|
||||||
{
|
int err = NOERR;
|
||||||
TSystemisamfile f(logicnum);
|
|
||||||
f.build(10L);
|
r.get(logicnum);
|
||||||
}
|
RecDes *rd=r.rec();
|
||||||
}
|
const int nflds = r.fields();
|
||||||
}
|
const int nkeys = r.keys();
|
||||||
return err;
|
|
||||||
}
|
dir.get(logicnum);
|
||||||
|
if (dir.len() == 0 || nflds < 1 || nkeys < 1) return;
|
||||||
void TIsam_date_converter::Dconvert_file(int logicnum)
|
const TRecnotype nitems = dir.eod();
|
||||||
|
const char* file_name = dir.name();
|
||||||
{
|
|
||||||
TDir dir;
|
TToken_string ts(128); // Build token_string with the names of date fields and logical fields
|
||||||
TTrec r;
|
TToken_string tslog(128);
|
||||||
int err = NOERR;
|
for (int j=0; j<r.fields(); j++)
|
||||||
|
if (rd->Fd[j].TypeF == _datefld)
|
||||||
r.get(logicnum);
|
ts.add(rd->Fd[j].Name);
|
||||||
RecDes *rd=r.rec();
|
else
|
||||||
const int nflds = r.fields();
|
if (rd->Fd[j].TypeF == _boolfld)
|
||||||
|
tslog.add(rd->Fd[j].Name);
|
||||||
dir.get(logicnum);
|
|
||||||
if (dir.len() == 0) return;
|
if (ts.items() > 0 || tslog.items() > 0)
|
||||||
const TRecnotype nitems = dir.eod();
|
{
|
||||||
const char* file_name = dir.name();
|
TString s(80);
|
||||||
|
s.format("Aggiornamento archivio %s", file_name);
|
||||||
TToken_string ts(128); // Build token_string with the names of date fields and logical fields
|
TProgind p((long)(nitems ? nitems : 1), s, TRUE, TRUE, 70);
|
||||||
TToken_string tslog(128);
|
TLocalisamfile ifile(logicnum);
|
||||||
for (int j=0; j<r.fields(); j++)
|
ifile.readat(1);
|
||||||
if (rd->Fd[j].TypeF == _datefld)
|
for (TRecnotype i = 1; ifile.good() && i <= ifile.items(); i++)
|
||||||
ts.add(rd->Fd[j].Name);
|
{
|
||||||
else
|
ts.restart();
|
||||||
if (rd->Fd[j].TypeF == _boolfld)
|
tslog.restart();
|
||||||
tslog.add(rd->Fd[j].Name);
|
for (int j=1; j <= ts.items(); j++)
|
||||||
|
{
|
||||||
if (ts.items() > 0 || tslog.items() > 0)
|
const char* field_name=ts.get();
|
||||||
{
|
long wd;
|
||||||
TString s(80);
|
CGetField(field_name,rd,ifile.curr().string(),&wd);
|
||||||
s.format("Aggiornamento archivio %s", file_name);
|
TDate d(wd);
|
||||||
TProgind p((long)(nitems ? nitems : 1), s, TRUE, TRUE, 70);
|
ifile.curr().put(field_name,d);
|
||||||
TLocalisamfile ifile(logicnum);
|
}
|
||||||
ifile.readat(1);
|
for (j=1; j<= tslog.items(); j++)
|
||||||
for (TRecnotype i = 1; ifile.good() && i <= ifile.items(); i++)
|
{
|
||||||
{
|
const char* field_name=tslog.get();
|
||||||
ts.restart();
|
TString value;
|
||||||
tslog.restart();
|
value=ifile.curr().get_str(field_name);
|
||||||
for (int j=1; j <= ts.items(); j++)
|
ifile.curr().put(field_name,value == "X");
|
||||||
{
|
}
|
||||||
const char* field_name=ts.get();
|
ifile.rewriteat(i);
|
||||||
long wd;
|
if (i < ifile.items())
|
||||||
CGetField(field_name,rd,ifile.curr().string(),&wd);
|
{
|
||||||
TDate d(wd);
|
ifile.readat(i+1);
|
||||||
ifile.curr().put(field_name,d);
|
if ((i %50) == 0) p.setstatus(i+1);
|
||||||
}
|
}
|
||||||
for (j=1; j<= tslog.items(); j++)
|
}
|
||||||
{
|
p.setstatus(nitems);
|
||||||
const char* field_name=tslog.get();
|
}
|
||||||
TString value;
|
}
|
||||||
value=ifile.curr().get_str(field_name);
|
|
||||||
ifile.curr().put(field_name,value == "X");
|
int main(int argc, char** argv)
|
||||||
}
|
{
|
||||||
ifile.rewriteat(i);
|
TIsam_date_converter a;
|
||||||
if (i < ifile.items())
|
|
||||||
{
|
a.run(argc, argv, "Conversione a CodeBase");
|
||||||
ifile.readat(i+1);
|
return 0;
|
||||||
if ((i %50) == 0) p.setstatus(i+1);
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
p.setstatus(nitems);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
TIsam_date_converter a;
|
|
||||||
|
|
||||||
a.run(argc, argv, "Conversione a CodeBase");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -230,16 +230,16 @@ BEGIN
|
|||||||
VALIDATE NOT_EMPTY_CHECK_FIELD
|
VALIDATE NOT_EMPTY_CHECK_FIELD
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON F_PRINTER 32 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 17 "Configurazione stampante"
|
|
||||||
END
|
|
||||||
|
|
||||||
BOOLEAN F_CONFIG
|
BOOLEAN F_CONFIG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 40 17 "Stampante configurata"
|
PROMPT 1 17 "Stampante configurata"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BUTTON F_PRINTER 30 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 17 "Configurazione ~stampante"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Registri pag.2" -1 -1 78 18
|
PAGE "Registri pag.2" -1 -1 78 18
|
||||||
|
Loading…
x
Reference in New Issue
Block a user