Modificato MainApp in main_app e aggiornati i vari TRelation::lfile()

git-svn-id: svn://10.65.10.50/trunk@273 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-09-21 11:18:23 +00:00
parent c71c0a1884
commit 53a4d0abbf
13 changed files with 4852 additions and 4846 deletions

View File

@ -1,196 +1,196 @@
#include <relation.h> #include <relation.h>
#include <mask.h> #include <mask.h>
#include <sheet.h> #include <sheet.h>
#include <progind.h> #include <progind.h>
#include <defmask.h> #include <defmask.h>
#include "ba1100.h" #include "ba1100.h"
bool TEdit_file::browse(int logicnum, const char* name) bool TEdit_file::browse(int logicnum, const char* name)
{ {
TRelation relation(logicnum); TRelation relation(logicnum);
TCursor cursor(&relation); TCursor cursor(&relation);
TRectype& curr = cursor.curr(); TRectype& curr = cursor.curr();
TRectype svrec(cursor.curr()); TRectype svrec(cursor.curr());
TToken_string head(256); TToken_string head(256);
TToken_string trac(256); TToken_string trac(256);
const char* n; const char* n;
trac.add(""); trac.add("");
head.add("@1"); head.add("@1");
for(int i = 0; (n = curr.fieldname(i)) != NULL; i++) for(int i = 0; (n = curr.fieldname(i)) != NULL; i++)
{ {
trac.add(n); trac.add(n);
head.add(n); head.add(n);
int len = curr.length(n); int len = curr.length(n);
if (curr.type(n) == _datefld) len = 10; if (curr.type(n) == _datefld) len = 10;
if (len > strlen(n)) head << '@' << len; if (len > (int)strlen(n)) head << '@' << len;
} }
KEY ch; KEY ch;
TCursor_sheet sheet(&cursor, trac, name, head, 6); TCursor_sheet sheet(&cursor, trac, name, head, 6);
while ((ch = sheet.run()) != K_ESC) while ((ch = sheet.run()) != K_ESC)
{ {
if (ch == K_DEL && sheet.one_checked()) if (ch == K_DEL && sheet.one_checked())
{ {
TProgind* pind = NULL; TProgind* pind = NULL;
cursor.freeze(TRUE); cursor.freeze(TRUE);
bool go = FALSE; bool go = FALSE;
bool first = FALSE; bool first = FALSE;
int j; int j;
for (j = 0, cursor = 0; j < sheet.items(); ++cursor, j++) for (j = 0, cursor = 0; j < sheet.items(); ++cursor, j++)
{ {
if (sheet.checked(j)) if (sheet.checked(j))
{ {
if (!go && !first) if (!go && !first)
go = yesno_box("Confermi la cancellazione dei %d " go = yesno_box("Confermi la cancellazione dei %d "
"record indicati?", sheet.checked()); "record indicati?", sheet.checked());
first = TRUE; first = TRUE;
if (!pind) if (!pind)
{ {
pind = new TProgind(sheet.checked(),"Attendere...", pind = new TProgind(sheet.checked(),"Attendere...",
TRUE, TRUE, 32); TRUE, TRUE, 32);
pind->addstatus(1); pind->addstatus(1);
} }
else else
{ {
if (pind->iscancelled()) break; if (pind->iscancelled()) break;
pind->addstatus(1); pind->addstatus(1);
} }
if (go) cursor.file()->remove(); if (go) cursor.file().remove();
sheet.uncheck(j); sheet.uncheck(j);
} }
} }
if (pind) delete pind; if (pind) delete pind;
cursor.freeze(FALSE); cursor.freeze(FALSE);
if (first) {sheet.select(1); continue;} if (first) {sheet.select(1); continue;}
} }
if (ch == K_ENTER || ch == K_DEL) if (ch == K_ENTER || ch == K_DEL)
cursor = sheet.selected(); cursor = sheet.selected();
switch(ch) switch(ch)
{ {
case K_ENTER: // edit fields case K_ENTER: // edit fields
svrec = curr; svrec = curr;
if (edit_record(curr, FALSE) == K_ENTER) if (edit_record(curr, FALSE) == K_ENTER)
{ {
TString s(svrec.key(1)); TString s(svrec.key(1));
if (s != curr.key(1)) if (s != curr.key(1))
{ {
cursor.file()->write(); cursor.file().write();
if (cursor.file()->good()) if (cursor.file().good())
{ {
curr = svrec; curr = svrec;
cursor.file()->remove(); cursor.file().remove();
} }
} }
else else
cursor.file()->rewrite(); cursor.file().rewrite();
} }
break; break;
case K_DEL: // delete record case K_DEL: // delete record
if (yesno_box("Confermare la cancellazione del record")) if (yesno_box("Confermare la cancellazione del record"))
cursor.file()->remove(); cursor.file().remove();
break; break;
case K_INS: // insert new record case K_INS: // insert new record
curr.zero(); curr.zero();
if (edit_record(curr,FALSE) == K_ENTER) if (edit_record(curr,FALSE) == K_ENTER)
cursor.file()->write(); cursor.file().write();
break; break;
} }
sheet.force_update(); sheet.force_update();
} }
return K_ESC; return K_ESC;
} }
KEY TEdit_file::edit_record(TRectype& rec, bool readonly) KEY TEdit_file::edit_record(TRectype& rec, bool readonly)
{ {
for(int recs = 0; rec.fieldname(recs) != NULL; recs++); for(int recs = 0; rec.fieldname(recs) != NULL; recs++);
int rows = recs > 15 ? 20 : recs+4; int rows = recs > 15 ? 20 : recs+4;
int pages = recs/15 + (recs % 15 ? 1 : 0); int pages = recs/15 + (recs % 15 ? 1 : 0);
TMask m("Modifica record", pages, 78, rows); TMask m("Modifica record", pages, 78, rows);
int curpage = 0, currow = 1, nid = 100; int curpage = 0, currow = 1, nid = 100;
const char* cp; const char* cp;
for(int i = 0; (cp = rec.fieldname(i)) != NULL; i++) for(int i = 0; (cp = rec.fieldname(i)) != NULL; i++)
{ {
// add fields ONE by ONE // add fields ONE by ONE
TString16 s(cp); s.left_just(16); TString16 s(cp); s.left_just(16);
int len = rec.length(cp); int len = rec.length(cp);
switch (rec.type(cp)) switch (rec.type(cp))
{ {
case _alfafld: case _alfafld:
m.add_string(nid++,curpage, s, 3, currow, len, "", m.add_string(nid++,curpage, s, 3, currow, len, "",
len > 50 ? 50 : len); len > 50 ? 50 : len);
break; break;
case _intfld: case _intfld:
case _longfld: case _longfld:
case _wordfld: case _wordfld:
case _realfld: case _realfld:
m.add_number(nid++, curpage, s, 3, currow, len, "", m.add_number(nid++, curpage, s, 3, currow, len, "",
rec.ndec(cp)); rec.ndec(cp));
break; break;
case _datefld: case _datefld:
m.add_date(nid++, curpage, s, 3, currow); m.add_date(nid++, curpage, s, 3, currow);
break; break;
case _charfld: case _charfld:
case _boolfld: case _boolfld:
m.add_string(nid++,curpage, s, 3, currow, 1); m.add_string(nid++,curpage, s, 3, currow, 1);
break; break;
case _intzerofld: case _intzerofld:
case _longzerofld: case _longzerofld:
m.add_number(nid++, curpage, s, 3, currow, len, "Z", m.add_number(nid++, curpage, s, 3, currow, len, "Z",
rec.ndec(cp)); rec.ndec(cp));
break; break;
default: default:
break; break;
} }
m.field(nid-1).set(rec.get(cp)); m.field(nid-1).set(rec.get(cp));
if (((i+1) % 15) == 0 || i == recs-1) if (((i+1) % 15) == 0 || i == recs-1)
{ {
m.add_button(DLG_OK, curpage, "", -12, -1, 9, 2); m.add_button(DLG_OK, curpage, "", -12, -1, 9, 2);
m.add_button(DLG_CANCEL, curpage, "", -22, -1, 9, 2); m.add_button(DLG_CANCEL, curpage, "", -22, -1, 9, 2);
curpage++; currow = 1; curpage++; currow = 1;
} }
else currow++; else currow++;
} }
if (readonly) if (readonly)
{ {
const int max = m.fields(); const int max = m.fields();
for (int i = 0; i < max; i++) for (int i = 0; i < max; i++)
{ {
TMask_field& f = m.fld(i); TMask_field& f = m.fld(i);
if (f.class_id() != CLASS_BUTTON_FIELD) if (f.class_id() != CLASS_BUTTON_FIELD)
f.disable(); f.disable();
} }
} }
const KEY k = m.run(); const KEY k = m.run();
if (k == K_ENTER && !readonly) if (k == K_ENTER && !readonly)
{ {
nid = 100; nid = 100;
for(i = 0; (cp = rec.fieldname(i)) != NULL; i++) for(i = 0; (cp = rec.fieldname(i)) != NULL; i++)
rec.put(cp, m.get(nid++)); rec.put(cp, m.get(nid++));
} }
return k; return k;
} }

View File

@ -1,152 +1,152 @@
#include <relapp.h> #include <relapp.h>
#include <stdtypes.h> #include <stdtypes.h>
#include <lffiles.h> #include <tabutil.h>
#include <tabutil.h> #include <execp.h>
#include <execp.h> #include <utility.h>
#include <utility.h>
#include "ba3.h" #include "ba3.h"
#include "ba3100.h" #include "ba3100.h"
#include "batbreg.h" #include "batbreg.h"
#define FPC "FPC" #define FPC "FPC"
#define REG_JOURNAL 5 #define REG_JOURNAL 5
class BA3100_application : public TRelation_application class BA3100_application : public TRelation_application
{ {
TMask* _msk; TMask* _msk;
TRelation* _rel; TRelation* _rel;
TString _tabname; TString _tabname;
long _oldditta; long _oldditta;
int _oldanno; int _oldanno;
bool _exist_journal; bool _exist_journal;
bool user_create() ; bool user_create() ;
bool user_destroy() ; bool user_destroy() ;
virtual bool protected_record(TRectype& rec); virtual bool protected_record(const TRectype& rec);
virtual TMask* get_mask( int mode) { return _msk;} virtual TMask* get_mask( int mode) { return _msk;}
virtual bool changing_mask( int mode) { return FALSE;} virtual bool changing_mask( int mode) { return FALSE;}
virtual TRelation* get_relation() const { return _rel;} virtual TRelation* get_relation() const { return _rel;}
virtual void init_query_mode(TMask& m); virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m); virtual void init_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m); virtual void init_modify_mode(TMask& m);
public: public:
BA3100_application(const char* tabname) : _tabname(tabname) , _oldditta(-1), _oldanno(-1), _exist_journal(FALSE) {} BA3100_application(const char* tabname) : _tabname(tabname) , _oldditta(-1), _oldanno(-1), _exist_journal(FALSE) {}
virtual ~BA3100_application() {} virtual ~BA3100_application() {}
bool exist_journal() {return _exist_journal;} bool exist_journal() {return _exist_journal;}
void print(); void print();
}; };
void BA3100_application::print() void BA3100_application::print()
{ {
#if XVT_OS == XVT_OS_WIN #if XVT_OS == XVT_OS_WIN
TExternal_app stampa(format("ba3a -1 %s", (const char *) _tabname)); TExternal_app stampa(format("ba3a -1 %s", (const char *) _tabname));
#else #else
TExternal_app stampa(format("ba3 -1 %s", (const char *) _tabname)); TExternal_app stampa(format("ba3 -1 %s", (const char *) _tabname));
#endif #endif
stampa.run(); stampa.run();
} }
void BA3100_application::init_query_mode(TMask& m) void BA3100_application::init_query_mode(TMask& m)
{ {
m.send_key(K_SHIFT + K_CTRL + 'e', -GR_MODIFY_PROTECTED); m.send_key(K_SHIFT + K_CTRL + 'e', -GR_MODIFY_PROTECTED);
m.send_key(K_SHIFT + K_CTRL + 'e', -GR_RECORD_PROTECTED); m.send_key(K_SHIFT + K_CTRL + 'e', -GR_RECORD_PROTECTED);
} }
void BA3100_application::init_insert_mode(TMask& m) void BA3100_application::init_insert_mode(TMask& m)
{ {
if (_tabname != "REG") return; if (_tabname != "REG") return;
long ditta = get_firm(); long ditta = get_firm();
int anno = atoi(m.get(F_ANNO)); int anno = atoi(m.get(F_ANNO));
if (ditta != _oldditta || anno != _oldanno) if (ditta != _oldditta || anno != _oldanno)
{ {
_oldditta = ditta; _oldditta = ditta;
_oldanno = anno; _oldanno = anno;
TTable reg(_tabname); TTable reg(_tabname);
reg.zero(); reg.zero();
reg.put("CODTAB", m.get(F_ANNO)); reg.put("CODTAB", m.get(F_ANNO));
TRectype to(reg.curr()); TRectype to(reg.curr());
_exist_journal = FALSE; _exist_journal = FALSE;
for (reg.read(_isgteq); !_exist_journal && reg.good() && reg.curr() <= to; reg.next()) for (reg.read(_isgteq); !_exist_journal && reg.good() && reg.curr() <= to; reg.next())
_exist_journal = (reg.get_long("I0") == REG_JOURNAL); _exist_journal = (reg.get_long("I0") == REG_JOURNAL);
} }
} }
void BA3100_application::init_modify_mode(TMask& m) void BA3100_application::init_modify_mode(TMask& m)
{ {
m.send_key(K_SHIFT + K_CTRL + 'd', -GR_MODIFY_PROTECTED); m.send_key(K_SHIFT + K_CTRL + 'd', -GR_MODIFY_PROTECTED);
const bool enable = !(_rel->curr().get_bool(FPC)); const bool enable = !(_rel->curr().get_bool(FPC));
m.send_key(K_SHIFT + K_CTRL + 'd' + enable, -GR_RECORD_PROTECTED); m.send_key(K_SHIFT + K_CTRL + 'd' + enable, -GR_RECORD_PROTECTED);
} }
bool BA3100_application::protected_record(TRectype& rec) bool BA3100_application::protected_record(const TRectype& rec)
{ {
bool prot = rec.get_bool(FPC); bool prot = rec.get_bool(FPC);
if (!prot) if (!prot)
{ {
if (_tabname == "%IVD") // Impedisce la cancellazione di una classe se ha sottoclassi if (_tabname == "%IVD") // Impedisce la cancellazione di una classe se ha sottoclassi
{ {
const TRecnotype pos = _rel->lfile()->recno(); const TRecnotype pos = _rel->lfile().recno();
const TString cod(rec.get("CODTAB")); const TString cod(rec.get("CODTAB"));
const int err = _rel->lfile()->next(); const int err = _rel->lfile().next();
if (err == NOERR) if (err == NOERR)
{ {
TString next(_rel->lfile()->get("CODTAB")); next.cut(cod.len()); TString next(_rel->lfile().get("CODTAB")); next.cut(cod.len());
prot = cod == next; prot = cod == next;
} }
_rel->lfile()->readat(pos); _rel->lfile().readat(pos);
} }
} }
return prot; return prot;
} }
HIDDEN bool tiporeg_handler(TMask_field& f, KEY k) HIDDEN bool tiporeg_handler(TMask_field& f, KEY k)
{ {
if ((k == K_TAB || k == K_ENTER) && if ((k == K_TAB || k == K_ENTER) &&
((BA3100_application*) MainApp())->exist_journal() && ((BA3100_application*) MainApp())->exist_journal() &&
atoi(f.get()) == REG_JOURNAL) atoi(f.get()) == REG_JOURNAL)
return error_box("Non e' possibile avere due registri giornale nello stesso anno"); return error_box("Non e' possibile avere due registri giornale nello stesso anno");
return TRUE; return TRUE;
} }
bool BA3100_application::user_create() bool BA3100_application::user_create()
{ {
_tabname.upper(); _tabname.upper();
TString m(16); m << "BATB" << _tabname; TString m(16); m << "BATB" << _tabname;
_msk = new TMask(m) ; _msk = new TMask(m) ;
for (int i = 0; i < _msk->fields(); i++) for (int i = 0; i < _msk->fields(); i++)
if (_msk->fld(i).in_group(GR_SEARCH)) if (_msk->fld(i).in_group(GR_SEARCH))
{ {
set_search_field(_msk->fld(i).dlg()); set_search_field(_msk->fld(i).dlg());
break; break;
} }
_rel = new TRelation(_tabname); _rel = new TRelation(_tabname);
set_title(_msk->get_caption()); set_title(_msk->get_caption());
if (_tabname == "REG") _msk->set_handler(F_TIPO, tiporeg_handler); if (_tabname == "REG") _msk->set_handler(F_TIPO, tiporeg_handler);
return TRUE; return TRUE;
} }
bool BA3100_application::user_destroy() bool BA3100_application::user_destroy()
{ {
delete _msk; delete _msk;
delete _rel; delete _rel;
return TRUE; return TRUE;
} }
int ba3100(int argc, char* argv[]) int ba3100(int argc, char* argv[])
{ {
BA3100_application a(argv[2]) ; BA3100_application a(argv[2]) ;
a.run(argc, argv, "Tabella"); a.run(argc, argv, "Tabella");
return 0; return 0;
} }

View File

@ -1,337 +1,334 @@
// ba3200 Stampa tabelle // ba3200 Stampa tabelle
// //
// legge un file con estensione .rpt che descrive la stampa. // legge un file con estensione .rpt che descrive la stampa.
// Vedi file leggimi.txt per il formato del file // Vedi file leggimi.txt per il formato del file
// //
#include <mask.h> #include <mask.h>
#include <printapp.h> #include <printapp.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include "ba3.h" #include "ba3.h"
#include "ba3200.h" #include "ba3200.h"
#define FOOTER_LEN 4 // se non ridefinito nel .rpt #define FOOTER_LEN 4 // se non ridefinito nel .rpt
class BA3200_application : public TPrintapp class BA3200_application : public TPrintapp
{ {
TString _tabname; TString _tabname;
TFilename _rptname; TFilename _rptname;
TRelation* _rel; TRelation* _rel;
TCursor *_cur; TCursor *_cur;
TMask* _msk; TMask* _msk;
TString _maskname; TString _maskname;
int _logicnum; int _logicnum;
TArray _string_roman; TArray _string_roman;
TArray _field_roman; TArray _field_roman;
public: public:
virtual void user_create() ; virtual void user_create() ;
virtual void user_destroy() ; virtual void user_destroy() ;
virtual bool set_print(int) ; virtual bool set_print(int) ;
virtual void set_page(int, int); virtual void set_page(int, int);
virtual bool preprocess_page (int, int); virtual bool preprocess_page (int, int);
void leggi_rpt(); void leggi_rpt();
void set_headers(); void set_headers();
void set_rows(); void set_rows();
void set_footers(); void set_footers();
void set_translations(); void set_translations();
void set_relations(); void set_relations();
BA3200_application(const char * tabname) : _tabname(tabname) {} BA3200_application(const char * tabname) : _tabname(tabname) {}
virtual ~BA3200_application() {} virtual ~BA3200_application() {}
}; };
bool BA3200_application::set_print(int) bool BA3200_application::set_print(int)
{ {
TRectype from(_rel->lfile()->curr()); from.zero(); TRectype from(_rel->lfile().curr()); from.zero();
TRectype to (from); TRectype to (from);
if (_msk->run() == K_ENTER) if (_msk->run() == K_ENTER)
{ {
const int campi_maschera = _msk->fields(); const int campi_maschera = _msk->fields();
for (int i = 0; i < campi_maschera; i++) for (int i = 0; i < campi_maschera; i++)
{ {
const TMask_field& campo_maschera = _msk->fld(i); const TMask_field& campo_maschera = _msk->fld(i);
const char* val = campo_maschera.get(); const char* val = campo_maschera.get();
if (*val) if (*val)
{ {
const TFieldref* campo_ref = campo_maschera.field(); const TFieldref* campo_ref = campo_maschera.field();
if (campo_ref != NULL && campo_ref->ok()) if (campo_ref != NULL && campo_ref->ok())
{ {
if (campo_maschera.in_group(1)) campo_ref->write(val, from); if (campo_maschera.in_group(1)) campo_ref->write(val, from);
else else
if (campo_maschera.in_group(2)) campo_ref->write(val, to); if (campo_maschera.in_group(2)) campo_ref->write(val, to);
} }
} }
} }
_cur->setregion (from, to); _cur->setregion (from, to);
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
void BA3200_application::set_page (int , int ) void BA3200_application::set_page (int , int )
{ {
_string_roman.destroy(); _string_roman.destroy();
_field_roman.destroy(); _field_roman.destroy();
leggi_rpt(); leggi_rpt();
} }
bool BA3200_application::preprocess_page(int , int) bool BA3200_application::preprocess_page(int , int)
{ {
const int items = _field_roman.items(); const int items = _field_roman.items();
if (items > 0) if (items > 0)
{ {
for (int i = 0; i < items; i++) for (int i = 0; i < items; i++)
{ {
TString& fn = (TString &) _field_roman[i]; TString& fn = (TString &) _field_roman[i];
TFieldref fld(fn, 0); TFieldref fld(fn, 0);
TString& s = (TString &) _string_roman[i]; TString& s = (TString &) _string_roman[i];
const int n = atoi(fld.read(_rel)); const int n = atoi(fld.read(_rel));
s = itor(n); s = itor(n);
} }
} }
return TRUE; return TRUE;
} }
void BA3200_application::set_headers() void BA3200_application::set_headers()
{ {
TString NomeTabella, sep, formato_intesta, testo_intesta; TString NomeTabella, sep, formato_intesta, testo_intesta;
int LungRiga, riga_intesta=0, last_riga=1; int LungRiga, riga_intesta=0, last_riga=1;
TToken_string line; TToken_string line;
reset_header (); reset_header ();
TScanner rpt(_rptname); TScanner rpt(_rptname);
rpt.paragraph("Headers"); rpt.paragraph("Headers");
// Leggo la lunghezza della riga (usata per centrare l'intestazione) // Leggo la lunghezza della riga (usata per centrare l'intestazione)
line = rpt.line(); line = rpt.line();
LungRiga = line.get_int(); LungRiga = line.get_int();
// Leggo il nome della tabella // Leggo il nome della tabella
line = rpt.line(); line = rpt.line();
NomeTabella = line.get(); NomeTabella = line.get();
// Centro il nome della tabella e aggiungo il numero di pagina // Centro il nome della tabella e aggiungo il numero di pagina
NomeTabella.center_just (LungRiga); NomeTabella.center_just (LungRiga);
NomeTabella.overwrite ("Pag. @#", NomeTabella.len()-8); NomeTabella.overwrite ("Pag. @#", NomeTabella.len()-8);
set_header (last_riga, "%s", (const char *)NomeTabella); set_header (last_riga, "%s", (const char *)NomeTabella);
last_riga++; last_riga++;
// Aggiungo una riga vuota per separare prima intestazione // Aggiungo una riga vuota per separare prima intestazione
sep.fill ('-', LungRiga); sep.fill ('-', LungRiga);
set_header (last_riga, "%s", (const char *)sep); set_header (last_riga, "%s", (const char *)sep);
line = rpt.line(); line = rpt.line();
while ( (line != "") && (line[0] != '[') ) while ( (line != "") && (line[0] != '[') )
{ {
riga_intesta = atoi (line.get()); riga_intesta = atoi (line.get());
formato_intesta = line.get(); formato_intesta = line.get();
testo_intesta = (const char *) line.get(); testo_intesta = (const char *) line.get();
if (riga_intesta) if (riga_intesta)
set_header (last_riga+riga_intesta, (const char *)formato_intesta, set_header (last_riga+riga_intesta, (const char *)formato_intesta,
(const char *)testo_intesta); (const char *)testo_intesta);
line = rpt.line(); line = rpt.line();
} }
if (riga_intesta) last_riga += riga_intesta; if (riga_intesta) last_riga += riga_intesta;
last_riga++; last_riga++;
set_header (last_riga, (const char *)sep); set_header (last_riga, (const char *)sep);
last_riga++; last_riga++;
sep.fill(' '); sep.fill(' ');
set_header (last_riga, (const char *)sep); set_header (last_riga, (const char *)sep);
} }
void BA3200_application::set_rows() void BA3200_application::set_rows()
{ {
TToken_string line; TToken_string line;
TFieldref campo; TFieldref campo;
int from, to, riga_record; int from, to, riga_record;
TString formato_campo, picture; TString formato_campo, picture;
const char * name; const char * name;
TScanner rpt(_rptname); TScanner rpt(_rptname);
rpt.paragraph("Rows"); rpt.paragraph("Rows");
line = rpt.line(); line = rpt.line();
while ( (line != "") && (line[0] != '[') ) while ( (line != "") && (line[0] != '[') )
{ {
riga_record = line.get_int(); riga_record = line.get_int();
TString s(line.get()); TString s(line.get());
campo = s; campo = s;
from = campo.from(); from = campo.from();
to = campo.to(); to = campo.to();
name = campo.name(); name = campo.name();
int logicnum = campo.file() == 0 ? _logicnum : campo.file(); int logicnum = campo.file() == 0 ? _logicnum : campo.file();
formato_campo = line.get(); formato_campo = line.get();
formato_campo.trim(); formato_campo.trim();
formato_campo.lower(); formato_campo.lower();
const int p = formato_campo.find("@m"); const int p = formato_campo.find("@m");
if (p != -1) if (p != -1)
{ {
formato_campo.cut(p); formato_campo.cut(p);
formato_campo << "#t"; formato_campo << "#t";
_string_roman.add(new TString); _string_roman.add(new TString);
_field_roman.add(s); _field_roman.add(s);
const int last = _string_roman.items() - 1; const int last = _string_roman.items() - 1;
set_row (riga_record, formato_campo, _string_roman.objptr(last)); set_row (riga_record, formato_campo, _string_roman.objptr(last));
} }
else else
{ {
if (formato_campo.find("@pn")) if (formato_campo.find("@pn"))
picture = line.get(); picture = line.get();
else else
picture = ""; picture = "";
if (to == -1) if (to == -1)
if (picture != "") if (picture != "")
set_row (riga_record, formato_campo, FLD(logicnum,name,picture) ); set_row (riga_record, formato_campo, FLD(logicnum,name,picture) );
else else
set_row (riga_record, formato_campo, FLD(logicnum,name) ); set_row (riga_record, formato_campo, FLD(logicnum,name) );
else else
set_row (riga_record, formato_campo, FLD(logicnum,name,from,to) ); set_row (riga_record, formato_campo, FLD(logicnum,name,from,to) );
} }
line = (const char *) rpt.line(); line = (const char *) rpt.line();
} }
} }
void BA3200_application::set_footers() void BA3200_application::set_footers()
{ {
TToken_string line; TToken_string line;
int footer_len, riga; int footer_len, riga;
TString formato, testo; TString formato, testo;
reset_footer(); reset_footer();
TScanner rpt(_rptname); TScanner rpt(_rptname);
rpt.paragraph("Footers"); rpt.paragraph("Footers");
line = rpt.line(); line = rpt.line();
footer_len = line.get_int(); footer_len = line.get_int();
if (footer_len) printer().footerlen (footer_len); if (footer_len) printer().footerlen (footer_len);
line = rpt.line(); line = rpt.line();
while ( (line != "") && (line[0] != '[') ) while ( (line != "") && (line[0] != '[') )
{ {
riga = line.get_int(); riga = line.get_int();
formato = line.get(); formato = line.get();
testo = line.get(); testo = line.get();
set_footer (riga, (const char *)formato, (const char*)testo); set_footer (riga, (const char *)formato, (const char*)testo);
line = rpt.line(); line = rpt.line();
} }
} }
void BA3200_application::set_translations() void BA3200_application::set_translations()
{ {
TString campo, from, to; TString campo, from, to;
TToken_string line; TToken_string line;
int logicnum; int logicnum;
TScanner rpt(_rptname); TScanner rpt(_rptname);
rpt.paragraph("Translations"); rpt.paragraph("Translations");
line = rpt.line(); line = rpt.line();
while ( (line != "") && (line[0] != '[') ) while ( (line != "") && (line[0] != '[') )
{ {
logicnum = line.get_int(); logicnum = line.get_int();
campo = line.get(); campo = line.get();
from = line.get(); from = line.get();
to = line.get(); to = line.get();
set_translation (logicnum, (char*)(const char *)campo, (char*)(const char *)from, (char*)(const char *)to); set_translation (logicnum, (char*)(const char *)campo, (char*)(const char *)from, (char*)(const char *)to);
line = rpt.line(); line = rpt.line();
} }
} }
void BA3200_application::set_relations() void BA3200_application::set_relations()
{ {
TToken_string line("", ','); TToken_string line("", ',');
TString tab(16), expr(40); TString tab(16), expr(40);
int key, linkto, alias, logicnum; int key, linkto, alias, logicnum;
TScanner rpt(_rptname); TScanner rpt(_rptname);
rpt.paragraph("Relations"); rpt.paragraph("Relations");
line = rpt.line(); line = rpt.line();
while ( (line != "") && (line[0] != '[') ) while ( (line != "") && (line[0] != '[') )
{ {
tab = line.get(); tab = line.get();
logicnum = atoi(tab); logicnum = atoi(tab);
expr = line.get(); expr = line.get();
key = line.get_int(); key = line.get_int();
if (key == 0) key = 1; if (key == 0) key = 1;
linkto = line.get_int(); linkto = line.get_int();
alias = line.get_int(); alias = line.get_int();
if (logicnum > 0) if (logicnum > 0)
_rel->add(logicnum, expr, key, linkto, alias); _rel->add(logicnum, expr, key, linkto, alias);
else else
_rel->add(tab, expr, key, linkto, alias); _rel->add(tab, expr, key, linkto, alias);
line = rpt.line(); line = rpt.line();
} }
} }
void BA3200_application::leggi_rpt() void BA3200_application::leggi_rpt()
{ {
set_rows(); set_rows();
} }
void BA3200_application::user_create() void BA3200_application::user_create()
{ {
_rptname << "batb" << _tabname << ".rpt" ; _rptname << "batb" << _tabname << ".rpt" ;
if (!fexist(_rptname)) if (!fexist(_rptname))
fatal_box("Impossibile aprire il file '%s'", (const char*)_rptname); fatal_box("Impossibile aprire il file '%s'", (const char*)_rptname);
_rel = new TRelation (_tabname);
// _tab = new TTable (_tabname); _cur = new TCursor (_rel);
_rel = new TRelation (_tabname);
_cur = new TCursor (_rel); _maskname << "bast" << _tabname;
_msk = new TMask (_maskname) ;
_maskname << "bast" << _tabname;
_msk = new TMask (_maskname) ; add_cursor (_cur);
add_file (_tabname);
add_cursor (_cur);
add_file (_tabname); _logicnum = _cur->file().num();
_logicnum = _cur->file()->num(); reset_print ();
reset_print (); printer().footerlen (FOOTER_LEN);
for (int i=1; i <= FOOTER_LEN; i++) set_footer(i, "%s", " ");
printer().footerlen (FOOTER_LEN);
for (int i=1; i <= FOOTER_LEN; i++) set_footer(i, "%s", " "); set_headers();
set_footers();
set_headers(); set_translations();
set_footers(); set_relations();
set_translations(); }
set_relations();
} void BA3200_application::user_destroy()
{
void BA3200_application::user_destroy() delete _msk;
{ delete _cur;
delete _msk; delete _rel;
delete _cur; }
delete _rel;
// delete _tab; int ba3200(int argc, char* argv[])
} {
BA3200_application a(argv[2]) ;
int ba3200(int argc, char* argv[]) a.run(argc, argv, "Stampa tabella");
{ return 0;
BA3200_application a(argv[2]) ; }
a.run(argc, argv, "Stampa tabella");
return 0;
}

View File

@ -1,289 +1,289 @@
#include <mask.h> #include <mask.h>
#include <printapp.h> #include <printapp.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include "ba3.h" #include "ba3.h"
#include "ba3300.h" #include "ba3300.h"
class BA3300_application : public TPrintapp class BA3300_application : public TPrintapp
{ {
friend bool codice_handler(TMask_field& field, KEY key); friend bool codice_handler(TMask_field& field, KEY key);
TMask* _msk; TMask* _msk;
TTable* _tab; // Tabella dei registri TTable* _tab; // Tabella dei registri
TString _cod_reg, _comulc, _ragsoc, _indulc, _civulc, _capulc, _com, _prov, _cofi, _paiv, _tipoa; TString _cod_reg, _comulc, _ragsoc, _indulc, _civulc, _capulc, _com, _prov, _cofi, _paiv, _tipoa;
long _codice_ditta, _agg, _codanagr; long _codice_ditta, _agg, _codanagr;
long _num_pag, _pag_ini, _pag_fin; long _num_pag, _pag_ini, _pag_fin;
int _cod_anno; int _cod_anno;
bool _inizia_dopo; bool _inizia_dopo;
TLocalisamfile* _nditte; TLocalisamfile* _nditte;
TLocalisamfile* _anag; TLocalisamfile* _anag;
TLocalisamfile* _unloc; TLocalisamfile* _unloc;
TLocalisamfile* _comuni; TLocalisamfile* _comuni;
public: public:
bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; } bool menu (MENU_TAG m) { return TPrintapp::menu(m) ; }
virtual void user_destroy(); virtual void user_destroy();
virtual void user_create() ; virtual void user_create() ;
bool set_print(int); bool set_print(int);
const char* decodifica_reg (); const char* decodifica_reg ();
virtual void set_page (int, int); virtual void set_page (int, int);
virtual print_action postprocess_page (int, int); virtual print_action postprocess_page (int, int);
BA3300_application(); BA3300_application();
}; };
print_action BA3300_application::postprocess_page(int, int counter) print_action BA3300_application::postprocess_page(int, int counter)
{ {
if (counter == _num_pag - 1) if (counter == _num_pag - 1)
{ {
TString16 dep; dep.format("%04d%-3s", _cod_anno, (const char*)_cod_reg); TString16 dep; dep.format("%04d%-3s", _cod_anno, (const char*)_cod_reg);
_tab->curr().put("CODTAB", (const char*)dep); _tab->curr().put("CODTAB", (const char*)dep);
_tab->read(); _tab->read();
if (_tab->bad()) _tab->curr().zero(); if (_tab->bad()) _tab->curr().zero();
_agg = _tab->curr().get_long("I2"); _agg = _tab->curr().get_long("I2");
_agg = _agg + _num_pag; _agg = _agg + _num_pag;
_tab->curr().put("I2", _agg); _tab->curr().put("I2", _agg);
_tab->rewrite(); _tab->rewrite();
return NEXT_PAGE; return NEXT_PAGE;
} }
return REPEAT_PAGE; return REPEAT_PAGE;
} }
void BA3300_application::set_page(int , int counter) void BA3300_application::set_page(int , int counter)
{ {
reset_print(); reset_print();
const TString80 descr(decodifica_reg()); const TString80 descr(decodifica_reg());
long contatore = _pag_ini + counter; long contatore = _pag_ini + counter;
if (counter == 0) if (counter == 0)
{ {
if (!_inizia_dopo) if (!_inizia_dopo)
{ {
reset_row(8); reset_row(8);
set_row(8, "@65gPag.@70g%ld", contatore); set_row(8, "@65gPag.@70g%ld", contatore);
} }
reset_row(1); reset_row(1);
reset_row(2); reset_row(2);
reset_row(3); reset_row(3);
reset_row(4); reset_row(4);
reset_row(5); reset_row(5);
reset_row(6); reset_row(6);
reset_row(7); reset_row(7);
set_row (1, "@50g%-50s", (const char*) descr); set_row (1, "@50g%-50s", (const char*) descr);
set_row (2, "@50g%-50s", (const char*)_ragsoc); set_row (2, "@50g%-50s", (const char*)_ragsoc);
set_row (3, "@50g%-35s", (const char*)_indulc); set_row (3, "@50g%-35s", (const char*)_indulc);
set_row (3, "@90g%-10s", (const char*)_civulc); set_row (3, "@90g%-10s", (const char*)_civulc);
set_row (4, "@50g%5s", (const char*)_capulc); set_row (4, "@50g%5s", (const char*)_capulc);
set_row (4, "@60g%-50s", (const char*)_com); set_row (4, "@60g%-50s", (const char*)_com);
set_row (4, "@115g%5s", (const char*)_prov); set_row (4, "@115g%5s", (const char*)_prov);
set_row (5, "@50g%16s", (const char*)_cofi); set_row (5, "@50g%16s", (const char*)_cofi);
set_row (6, "@50g%11s", (const char*)_paiv); set_row (6, "@50g%11s", (const char*)_paiv);
} }
else if (counter==_num_pag-1) else if (counter==_num_pag-1)
{ {
reset_row(1); reset_row(1);
reset_row(2); reset_row(2);
reset_row(3); reset_row(3);
reset_row(4); reset_row(4);
reset_row(5); reset_row(5);
reset_row(6); reset_row(6);
reset_row(7); reset_row(7);
reset_row(8); reset_row(8);
set_row (1, "@1gSocieta'@10g%-50s", (const char*) _ragsoc); set_row (1, "@1gSocieta'@10g%-50s", (const char*) _ragsoc);
set_row (1, "@62g%-29s", (const char*) _indulc); set_row (1, "@62g%-29s", (const char*) _indulc);
set_row (1, "@93g%-9s", (const char*) _civulc); set_row (1, "@93g%-9s", (const char*) _civulc);
set_row (1, "@103g%-5s", (const char*) _capulc); set_row (1, "@103g%-5s", (const char*) _capulc);
set_row (1, "@110g%-18s", (const char*) _com); set_row (1, "@110g%-18s", (const char*) _com);
set_row (1, "@130g%-3s", (const char*) _prov); set_row (1, "@130g%-3s", (const char*) _prov);
set_row (2, "@1g%-50s", (const char*) descr); set_row (2, "@1g%-50s", (const char*) descr);
set_row (2, "@52g%16s", (const char*) _cofi); set_row (2, "@52g%16s", (const char*) _cofi);
set_row (2, "@70g%11s", (const char*) _paiv); set_row (2, "@70g%11s", (const char*) _paiv);
set_row (4, "@50gN. ........ DI REPERTORIO"); set_row (4, "@50gN. ........ DI REPERTORIO");
set_row (5, "@50gIL PRESENTE LIBRO DELLA@75g%50s", (const char*) _ragsoc); set_row (5, "@50gIL PRESENTE LIBRO DELLA@75g%50s", (const char*) _ragsoc);
set_row (6, "@50g%-35s", (const char*) _indulc); set_row (6, "@50g%-35s", (const char*) _indulc);
set_row (6, "@88g%10s", (const char*) _civulc); set_row (6, "@88g%10s", (const char*) _civulc);
set_row (7, "@50g%5s", (const char*) _capulc); set_row (7, "@50g%5s", (const char*) _capulc);
set_row (7, "@58g%50s", (const char*) _com); set_row (7, "@58g%50s", (const char*) _com);
set_row (7, "@111g%5s", (const char*) _prov); set_row (7, "@111g%5s", (const char*) _prov);
set_row (8, "@120gPag.@125g%ld", contatore); set_row (8, "@120gPag.@125g%ld", contatore);
} }
else else
{ {
reset_row(1); reset_row(1);
reset_row(2); reset_row(2);
reset_row(3); reset_row(3);
reset_row(4); reset_row(4);
reset_row(5); reset_row(5);
reset_row(6); reset_row(6);
reset_row(7); reset_row(7);
reset_row(8); reset_row(8);
set_row (1, "@1gSocieta'@10g%-50s", (const char*) _ragsoc); set_row (1, "@1gSocieta'@10g%-50s", (const char*) _ragsoc);
set_row (1, "@62g%-29s", (const char*) _indulc); set_row (1, "@62g%-29s", (const char*) _indulc);
// set_row (1, "@93g%-9s", (const char*) _civulc); // set_row (1, "@93g%-9s", (const char*) _civulc);
// set_row (1, "@103g%-5s", (const char*) _capulc); // set_row (1, "@103g%-5s", (const char*) _capulc);
set_row (1, "@110g%-18s", (const char*) _com); set_row (1, "@110g%-18s", (const char*) _com);
set_row (1, "@130g%-3s", (const char*) _prov); set_row (1, "@130g%-3s", (const char*) _prov);
set_row (2, "@1g%-50s", (const char*) descr); set_row (2, "@1g%-50s", (const char*) descr);
set_row (2, "@52g%16s", (const char*) _cofi); set_row (2, "@52g%16s", (const char*) _cofi);
set_row (2, "@70g%11s", (const char*) _paiv); set_row (2, "@70g%11s", (const char*) _paiv);
set_row (3, "@85gPag.@90g%ld", contatore); set_row (3, "@85gPag.@90g%ld", contatore);
} }
} }
BA3300_application::BA3300_application() BA3300_application::BA3300_application()
{ {
} }
bool BA3300_application::set_print(int) bool BA3300_application::set_print(int)
{ {
KEY tasto; KEY tasto;
TString16 app; TString16 app;
_nditte->setkey(1); _nditte->setkey(1);
_codice_ditta = get_firm(); _codice_ditta = get_firm();
_nditte->curr().zero(); _nditte->curr().zero();
_nditte->curr().put(N_CODDITTA,_codice_ditta); _nditte->curr().put(N_CODDITTA,_codice_ditta);
_nditte->read(); _nditte->read();
app=_nditte->curr().get(N_CODDITTA); app=_nditte->curr().get(N_CODDITTA);
_msk->set(F_CODDITTA,app); _msk->set(F_CODDITTA,app);
_ragsoc=_nditte->curr().get(N_RAGSOC); _ragsoc=_nditte->curr().get(N_RAGSOC);
_tipoa =_nditte->curr().get(N_TIPOA); _tipoa =_nditte->curr().get(N_TIPOA);
_codanagr =atol(_nditte->curr().get(N_CODANAGR)); _codanagr =atol(_nditte->curr().get(N_CODANAGR));
_msk->set(F_RAGSOC,_ragsoc); _msk->set(F_RAGSOC,_ragsoc);
_unloc->setkey(1); _unloc->setkey(1);
_unloc->curr().zero(); _unloc->curr().zero();
_unloc->curr().put(N_CODDITTA,app); _unloc->curr().put(N_CODDITTA,app);
_unloc->curr().put(N_CODULC,"1"); _unloc->curr().put(N_CODULC,"1");
_unloc->read(); _unloc->read();
_indulc=_unloc->curr().get(N_INDULC); _indulc=_unloc->curr().get(N_INDULC);
_msk->set(F_INDIRIZZO,_indulc); _msk->set(F_INDIRIZZO,_indulc);
_civulc=_unloc->curr().get(N_CIVULC); _civulc=_unloc->curr().get(N_CIVULC);
_msk->set(F_CIV,_civulc); _msk->set(F_CIV,_civulc);
_capulc=_unloc->curr().get(N_CAPULC); _capulc=_unloc->curr().get(N_CAPULC);
_msk->set(F_CAP,_capulc); _msk->set(F_CAP,_capulc);
_comulc=_unloc->curr().get(N_COMULC); _comulc=_unloc->curr().get(N_COMULC);
_msk->set(F_CODCOM,_comulc); _msk->set(F_CODCOM,_comulc);
_comuni->setkey(1); _comuni->setkey(1);
_comuni->curr().zero(); _comuni->curr().zero();
_comuni->curr().put(N_CODCOM,_comulc); _comuni->curr().put(N_CODCOM,_comulc);
_comuni->read(); _comuni->read();
_com=_comuni->curr().get(N_COM); _com=_comuni->curr().get(N_COM);
_msk->set(F_COM,_com); _msk->set(F_COM,_com);
_prov=_comuni->curr().get(N_PROV); _prov=_comuni->curr().get(N_PROV);
_msk->set(F_PROV,_prov); _msk->set(F_PROV,_prov);
_anag->setkey(1); _anag->setkey(1);
_anag->curr().zero(); _anag->curr().zero();
_anag->curr().put(N_TIPOA,_tipoa); _anag->curr().put(N_TIPOA,_tipoa);
_anag->curr().put(N_CODANAGR,_codanagr); _anag->curr().put(N_CODANAGR,_codanagr);
_anag->read(); _anag->read();
_cofi=_anag->curr().get(N_COFI); _cofi=_anag->curr().get(N_COFI);
_msk->set(F_COFI,_cofi); _msk->set(F_COFI,_cofi);
_paiv=_anag->curr().get(N_PAIV); _paiv=_anag->curr().get(N_PAIV);
_msk->set(F_PAIV,_paiv); _msk->set(F_PAIV,_paiv);
_msk->set(F_LUNG,66); _msk->set(F_LUNG,66);
tasto = _msk->run(); tasto = _msk->run();
if (tasto == K_ENTER) if (tasto == K_ENTER)
{ {
_cod_reg = _msk->get(F_CODICE); _cod_reg = _msk->get(F_CODICE);
_cod_anno = _msk->get_int(F_ANNO); _cod_anno = _msk->get_int(F_ANNO);
_pag_ini = _msk->get_long(F_NPAGINI); _pag_ini = _msk->get_long(F_NPAGINI);
_pag_fin = _msk->get_long(F_NPAGFI); _pag_fin = _msk->get_long(F_NPAGFI);
_inizia_dopo = _msk->get_bool(F_PRIMO); _inizia_dopo = _msk->get_bool(F_PRIMO);
_num_pag = (_pag_fin - _pag_ini) + 1; _num_pag = (_pag_fin - _pag_ini) + 1;
enable_print_menu(); enable_print_menu();
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
static bool codice_handler (TMask_field& field, KEY key) static bool codice_handler (TMask_field& field, KEY key)
{ {
if (key == K_TAB) if (key == K_TAB)
{ {
const TEdit_field& e = (const TEdit_field&)field; const TEdit_field& e = (const TEdit_field&)field;
const TLocalisamfile* t = e.browse()->cursor()->file(); const TLocalisamfile& t = e.browse()->cursor()->file();
const long num = t->get_long("I2"); const long num = t.get_long("I2");
field.mask().set(F_NPAGINI, num+1); field.mask().set(F_NPAGINI, num+1);
field.mask().set(F_NPAGFI, 0L); field.mask().set(F_NPAGFI, 0L);
} }
return TRUE; return TRUE;
} }
const char* BA3300_application::decodifica_reg () const char* BA3300_application::decodifica_reg ()
{ {
TString16 dep; dep.format("%04d%-3s", _cod_anno, (const char*)_cod_reg); TString16 dep; dep.format("%04d%-3s", _cod_anno, (const char*)_cod_reg);
_tab->curr().put("CODTAB", (const char*)dep); _tab->curr().put("CODTAB", (const char*)dep);
_tab->read(); _tab->read();
if (_tab->bad()) _tab->curr().zero(); if (_tab->bad()) _tab->curr().zero();
return _tab->curr().get ("S0"); return _tab->curr().get ("S0");
} }
void BA3300_application::user_create() void BA3300_application::user_create()
{ {
enable_print_menu(); enable_print_menu();
_nditte = new TLocalisamfile (LF_NDITTE); _nditte = new TLocalisamfile (LF_NDITTE);
_unloc = new TLocalisamfile (LF_UNLOC); _unloc = new TLocalisamfile (LF_UNLOC);
_comuni = new TLocalisamfile (LF_COMUNI); _comuni = new TLocalisamfile (LF_COMUNI);
_anag = new TLocalisamfile (LF_ANAG); _anag = new TLocalisamfile (LF_ANAG);
_tab = new TTable(TAB_REG); _tab = new TTable(TAB_REG);
_msk = new TMask ("ba3300a") ; _msk = new TMask ("ba3300a") ;
_msk->set_handler(F_CODICE, codice_handler); _msk->set_handler(F_CODICE, codice_handler);
add_cursor (NULL); add_cursor (NULL);
set_auto_ff (TRUE); set_auto_ff (TRUE);
} }
void BA3300_application::user_destroy() // releasev e arrmask void BA3300_application::user_destroy() // releasev e arrmask
{ {
delete _msk; delete _msk;
delete _nditte; delete _nditte;
delete _unloc; delete _unloc;
delete _comuni; delete _comuni;
delete _anag; delete _anag;
delete _tab; delete _tab;
} }
int ba3300(int argc, char* argv[]) int ba3300(int argc, char* argv[])
{ {
BA3300_application a; BA3300_application a;
a.run(argc, argv, "Stampa fogli libro bollato"); a.run(argc, argv, "Stampa fogli libro bollato");
return 0; return 0;
} }

View File

@ -113,23 +113,24 @@ TMask* BA3500_application::get_mask(int mode)
void BA3500_application::read_tabinl(TMask& m) void BA3500_application::read_tabinl(TMask& m)
{ {
long paginilib,pagfinlib,codditta,paginiut,pagfinut,annoreg; long paginilib,pagfinlib,codditta,paginiut,pagfinut;
int mesereg; int mesereg,annoreg;
TString codvidim,codreg; TString codvidim,codreg;
bool stampa_bol = FALSE; bool stampa_bol = FALSE;
bool pagine_ann = FALSE; bool pagine_ann = FALSE;
bool ok = FALSE; bool ok = FALSE;
// TTable* tab_inl = (TTable*)_rel->lfile(TAB_INL); // TTable* tab_inl = (TTable*)_rel->lfile(TAB_INL);
TTable* tab_inl = (TTable*)_rel->lfile(-ALIAS); TTable& tab_inl = (TTable&)_rel->lfile(-ALIAS);
long numrig, anno; long numrig;
int anno;
TString codlib; TString codlib;
anno = atol(m.get(F_ANNO)); anno = m.get_int(F_ANNO);
codlib = m.get(F_CODLIB); codlib = m.get(F_CODLIB);
_rel->update(); _rel->update();
_righe_gia_presenti = new TRighe_gia_presenti(tab_inl->items()); _righe_gia_presenti = new TRighe_gia_presenti(tab_inl.items());
_righe_gia_presenti->reset(); _righe_gia_presenti->reset();
// int lognum = name2log(TAB_INL); //trasformo il nome della tab in un logicnum // int lognum = name2log(TAB_INL); //trasformo il nome della tab in un logicnum
@ -138,19 +139,19 @@ void BA3500_application::read_tabinl(TMask& m)
while (ok) while (ok)
{ {
TRecfield num (tab_inl->curr(),"CODTAB",7,12); TRecfield num (tab_inl.curr(),"CODTAB",7,12);
numrig = long(num); numrig = long(num);
annoreg = tab_inl->get_long("I0"); annoreg = tab_inl.get_int("I0");
mesereg = tab_inl->get_int ("I1"); mesereg = tab_inl.get_int ("I1");
paginilib = tab_inl->get_long("I2"); paginilib = tab_inl.get_long("I2");
pagfinlib = tab_inl->get_long("I3"); pagfinlib = tab_inl.get_long("I3");
codditta = tab_inl->get_long("I4"); codditta = tab_inl.get_long("I4");
codreg = tab_inl->get("S0"); codreg = tab_inl.get("S0");
paginiut = tab_inl->get_long("I5"); paginiut = tab_inl.get_long("I5");
pagfinut = tab_inl->get_long("I6"); pagfinut = tab_inl.get_long("I6");
codvidim = tab_inl->get("S1"); codvidim = tab_inl.get("S1");
stampa_bol = tab_inl->get_bool("B0"); stampa_bol = tab_inl.get_bool("B0");
pagine_ann = tab_inl->get_bool("B1"); pagine_ann = tab_inl.get_bool("B1");
_righe_tabinl.add_riga(annoreg,mesereg,paginilib,pagfinlib,codditta,codreg,paginiut,pagfinut,codvidim,stampa_bol,pagine_ann); _righe_tabinl.add_riga(annoreg,mesereg,paginilib,pagfinlib,codditta,codreg,paginiut,pagfinut,codvidim,stampa_bol,pagine_ann);
_righe_gia_presenti->set(numrig); _righe_gia_presenti->set(numrig);
@ -224,7 +225,7 @@ int BA3500_application::rewrite(const TMask& m)
{ {
long items; long items;
// TTable *tab_inl = (TTable*)_rel->lfile(TAB_INL); // TTable *tab_inl = (TTable*)_rel->lfile(TAB_INL);
TTable *tab_inl = (TTable*)_rel->lfile(-ALIAS); TTable& tab_inl = (TTable&)_rel->lfile(-ALIAS);
int anno = m.get_int(F_ANNO); int anno = m.get_int(F_ANNO);
TString cod_lib = m.get(F_CODLIB); TString cod_lib = m.get(F_CODLIB);
@ -242,25 +243,25 @@ int BA3500_application::rewrite(const TMask& m)
long year = atol(riga.get(0)); long year = atol(riga.get(0));
if (year != 0) if (year != 0)
{ {
tab_inl->put ("CODTAB", codtab); tab_inl.put ("CODTAB", codtab);
tab_inl->put ("I0", year); tab_inl.put ("I0", year);
tab_inl->put ("I1", riga.get()); tab_inl.put ("I1", riga.get());
tab_inl->put ("I2", riga.get()); tab_inl.put ("I2", riga.get());
tab_inl->put ("I3", riga.get()); tab_inl.put ("I3", riga.get());
tab_inl->put ("I4", riga.get()); tab_inl.put ("I4", riga.get());
tab_inl->put ("S0", riga.get()); tab_inl.put ("S0", riga.get());
tab_inl->put ("I5", riga.get()); tab_inl.put ("I5", riga.get());
tab_inl->put ("I6", riga.get()); tab_inl.put ("I6", riga.get());
tab_inl->put ("S1", riga.get()); tab_inl.put ("S1", riga.get());
tab_inl->put ("B0", riga.get()); tab_inl.put ("B0", riga.get());
tab_inl->put ("B1", riga.get()); tab_inl.put ("B1", riga.get());
if (_righe_gia_presenti->IS_IN(i)) if (_righe_gia_presenti->IS_IN(i))
{ {
tab_inl->rewrite(); tab_inl.rewrite();
_righe_gia_presenti->togli(i); _righe_gia_presenti->togli(i);
} }
else else
tab_inl->write(); tab_inl.write();
} }
} }
return _rel->rewrite(); return _rel->rewrite();
@ -270,7 +271,7 @@ int BA3500_application::write(const TMask& m)
{ {
long items; long items;
// TTable *tab_inl = (TTable*)_rel->lfile(TAB_INL); // TTable *tab_inl = (TTable*)_rel->lfile(TAB_INL);
TTable *tab_inl = (TTable*)_rel->lfile(-ALIAS); TTable& tab_inl = (TTable&)_rel->lfile(-ALIAS);
int anno = m.get_int(F_ANNO); int anno = m.get_int(F_ANNO);
TString cod_lib = m.get(F_CODLIB); TString cod_lib = m.get(F_CODLIB);
@ -281,7 +282,7 @@ int BA3500_application::write(const TMask& m)
items = cs.items(); items = cs.items();
tab_inl->zero(); tab_inl.zero();
for (int i = 0; i < items; i++) for (int i = 0; i < items; i++)
{ {
@ -290,19 +291,19 @@ int BA3500_application::write(const TMask& m)
long year = atol(riga.get(0)); long year = atol(riga.get(0));
if (year != 0) if (year != 0)
{ {
tab_inl->put ("CODTAB", codtab); tab_inl.put ("CODTAB", codtab);
tab_inl->put ("I0", year); tab_inl.put ("I0", year);
tab_inl->put ("I1", riga.get()); tab_inl.put ("I1", riga.get());
tab_inl->put ("I2", riga.get()); tab_inl.put ("I2", riga.get());
tab_inl->put ("I3", riga.get()); tab_inl.put ("I3", riga.get());
tab_inl->put ("I4", riga.get()); tab_inl.put ("I4", riga.get());
tab_inl->put ("S0", riga.get()); tab_inl.put ("S0", riga.get());
tab_inl->put ("I5", riga.get()); tab_inl.put ("I5", riga.get());
tab_inl->put ("I6", riga.get()); tab_inl.put ("I6", riga.get());
tab_inl->put ("S1", riga.get()); tab_inl.put ("S1", riga.get());
tab_inl->put ("B0", riga.get()); tab_inl.put ("B0", riga.get());
tab_inl->put ("B1", riga.get()); tab_inl.put ("B1", riga.get());
tab_inl->write(); tab_inl.write();
} }
} }
return _rel->write(); return _rel->write();
@ -322,9 +323,9 @@ bool BA3500_application::remove()
int BA3500_application::cancella(long items) int BA3500_application::cancella(long items)
{ {
TTable *tab_inl = (TTable*)_rel->lfile(-ALIAS); TTable& tab_inl = (TTable&)_rel->lfile(-ALIAS);
TRecfield an (_rel->lfile(-ALIAS)->curr(),"CODTAB",0,3); TRecfield an(tab_inl.curr(),"CODTAB",0,3);
TRecfield cl (_rel->lfile(-ALIAS)->curr(),"CODTAB",4,6); TRecfield cl(tab_inl.curr(),"CODTAB",4,6);
long anno; long anno;
TString codlib, dep; TString codlib, dep;
@ -332,15 +333,15 @@ int BA3500_application::cancella(long items)
codlib = (const char*)cl; codlib = (const char*)cl;
for (long i = 0; i < items; i++) for (long i = 0; i < items; i++)
{ {
tab_inl->zero(); tab_inl.zero();
dep = format ("%04d", anno); dep = format ("%04d", anno);
dep << format ("%-3s" , (const char*) codlib); dep << format ("%-3s" , (const char*) codlib);
dep << format ("%6d" , i); dep << format ("%6d" , i);
tab_inl->put("CODTAB", dep); tab_inl.put("CODTAB", dep);
if (tab_inl->read(_isequal, _lock) == NOERR) if (tab_inl.read(_isequal, _lock) == NOERR)
tab_inl->remove(); tab_inl.remove();
} }
return tab_inl->status(); return tab_inl.status();
} }
/********* /*********

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,424 +1,423 @@
#include <relapp.h> #include <relapp.h>
#include <mailbox.h> #include <mailbox.h>
#include <execp.h> #include <execp.h>
#include <utility.h> #include <utility.h>
#include <prefix.h> #include <prefix.h>
#include <tabutil.h> #include <tabutil.h>
#include <files.h> #include <files.h>
#if XVT_OS == XVT_OS_SCOUNIX #if XVT_OS == XVT_OS_SCOUNIX
#include <sys/stat.h> #include <sys/stat.h>
#else #else
#include <direct.h> #include <direct.h>
#endif #endif
#include "ba4.h" #include "ba4.h"
#include "ba4300.h" #include "ba4300.h"
#define FLD_UL1_CODDITTA 133 #define FLD_UL1_CODDITTA 133
#define FLD_UL1_CODDITTA_NDITTE_RAGSOC 100 #define FLD_UL1_CODDITTA_NDITTE_RAGSOC 100
#define FLD_AT1_CODDITTA 102 #define FLD_AT1_CODDITTA 102
#define FLD_AT1_CODDITTAH 198 #define FLD_AT1_CODDITTAH 198
#define FLD_AT1_PROGD_NDITTE_RAGSOC 105 #define FLD_AT1_PROGD_NDITTE_RAGSOC 105
#define FLD_SC1_CODDITTA 143 #define FLD_SC1_CODDITTA 143
#define FLD_SC1_CODANAGRSOH 147 #define FLD_SC1_CODANAGRSOH 147
#define FLD_SC1_CODDITTA_NDITTE_RAGSOC 144 #define FLD_SC1_CODDITTA_NDITTE_RAGSOC 144
#define FLD_UL1_CODULC 125 #define FLD_UL1_CODULC 125
const char* CODDITTA = "CODDITTA"; const char* CODDITTA = "CODDITTA";
const char* CODATTPREV = "CODATTPREV"; const char* CODATTPREV = "CODATTPREV";
const char* TIPOA = "TIPOA"; const char* TIPOA = "TIPOA";
const char* CODANAGR = "CODANAGR"; const char* CODANAGR = "CODANAGR";
const char* CODATT = "CODATT"; const char* CODATT = "CODATT";
const char* COMRF = "COMRF"; const char* COMRF = "COMRF";
const char* INDRF = "INDRF"; const char* INDRF = "INDRF";
const char* CIVRF = "CIVRF"; const char* CIVRF = "CIVRF";
const char* CAPRF = "CAPRF"; const char* CAPRF = "CAPRF";
const char* COMRES = "COMRES"; const char* COMRES = "COMRES";
const char* INDRES = "INDRES"; const char* INDRES = "INDRES";
const char* CIVRES = "CIVRES"; const char* CIVRES = "CIVRES";
const char* CAPRES = "CAPRES"; const char* CAPRES = "CAPRES";
const char* CODULC = "CODULC"; const char* CODULC = "CODULC";
const char* COMULC = "COMULC"; const char* COMULC = "COMULC";
const char* INDULC = "INDULC"; const char* INDULC = "INDULC";
const char* CIVULC = "CIVULC"; const char* CIVULC = "CIVULC";
const char* CAPULC = "CAPULC"; const char* CAPULC = "CAPULC";
const char* COMCCIAA = "COMCCIAA"; const char* COMCCIAA = "COMCCIAA";
const char* COMTRIB = "COMTRIB"; const char* COMTRIB = "COMTRIB";
#define TABATT "%ais" #define TABATT "%ais"
#define CODTAB "CODTAB" #define CODTAB "CODTAB"
#define S0 "S0" #define S0 "S0"
#define DESCR "DESCR" #define DESCR "DESCR"
class BA4300_application : public TRelation_application class BA4300_application : public TRelation_application
{ {
TMask* _msk; TMask* _msk;
TRelation *_rel; TRelation *_rel;
TLocalisamfile* _anag; TLocalisamfile* _anag;
TLocalisamfile* _unloc; TLocalisamfile* _unloc;
TLocalisamfile* _attiv; TLocalisamfile* _attiv;
TLocalisamfile* _tabcom; TLocalisamfile* _tabcom;
protected: protected:
bool user_create() ; bool user_create() ;
bool user_destroy() ; bool user_destroy() ;
virtual TMask* get_mask(int) { return _msk;} virtual TMask* get_mask(int) { return _msk;}
virtual bool changing_mask(int) { return FALSE;} virtual bool changing_mask(int) { return FALSE;}
virtual void init_query_mode(TMask& m) ; virtual void init_query_mode(TMask& m) ;
virtual void init_insert_mode(TMask& m) ; virtual void init_insert_mode(TMask& m) ;
virtual void init_modify_mode(TMask& m) ; virtual void init_modify_mode(TMask& m) ;
bool build_firm_data(long cod, bool flagcom); bool build_firm_data(long cod, bool flagcom);
public: public:
BA4300_application(); BA4300_application();
virtual TRelation* get_relation() const { return _rel;} virtual TRelation* get_relation() const { return _rel;}
virtual int write(const TMask& m); virtual int write(const TMask& m);
virtual ~BA4300_application() {} virtual ~BA4300_application() {}
}; };
bool ba4300_handler(TMask& m, KEY k) bool ba4300_handler(TMask& m, KEY k)
{ {
if (k != K_F5 && k != K_F6 && k != K_F7 && k != K_F8) if (k != K_F5 && k != K_F6 && k != K_F7 && k != K_F8)
return TRUE; return TRUE;
if (m.mode() == MODE_MOD || m.mode() == MODE_INS) if (m.mode() == MODE_MOD || m.mode() == MODE_INS)
{ {
BA4300_application* app = (BA4300_application*) MainApp(); BA4300_application& app = (BA4300_application&)main_app();
if (m.mode() == MODE_INS) if (m.mode() == MODE_INS)
{ {
if (!m.check_fields()) return FALSE; if (!m.check_fields()) return FALSE;
if (app->write(m) != NOERR) return TRUE; if (app.write(m) != NOERR) return TRUE;
m.stop_run(K_ESC); m.stop_run(K_ESC);
} }
TString appname; TString appname;
int fld = 0, fld1 = 0, fldbrowse = 0; int fld = 0, fld1 = 0, fldbrowse = 0;
if (k == K_F5) if (k == K_F5)
{ {
appname = "ba4 -3"; appname = "ba4 -3";
fld = FLD_UL1_CODDITTA; fld = FLD_UL1_CODDITTA;
fld1 = FLD_UL1_CODDITTA_NDITTE_RAGSOC; fld1 = FLD_UL1_CODDITTA_NDITTE_RAGSOC;
fldbrowse = FLD_UL1_CODULC; fldbrowse = FLD_UL1_CODULC;
} }
if (k == K_F6) if (k == K_F6)
{ {
appname = "ba4 -4"; appname = "ba4 -4";
fld = FLD_AT1_CODDITTA; fld = FLD_AT1_CODDITTA;
fld1 = FLD_AT1_PROGD_NDITTE_RAGSOC; fld1 = FLD_AT1_PROGD_NDITTE_RAGSOC;
fldbrowse = FLD_AT1_CODDITTAH; fldbrowse = FLD_AT1_CODDITTAH;
} }
if (k == K_F7) if (k == K_F7)
{ {
appname = "ba4 -5"; appname = "ba4 -5";
fld = FLD_SC1_CODDITTA; fld = FLD_SC1_CODDITTA;
fld1 = FLD_SC1_CODDITTA_NDITTE_RAGSOC; fld1 = FLD_SC1_CODDITTA_NDITTE_RAGSOC;
fldbrowse = FLD_SC1_CODANAGRSOH; fldbrowse = FLD_SC1_CODANAGRSOH;
} }
if (k == K_F8) { appname = "ba3 -0 reg"; fld = 0;fldbrowse = 0;} if (k == K_F8) { appname = "ba3 -0 reg"; fld = 0;fldbrowse = 0;}
if (appname.not_empty()) if (appname.not_empty())
{ {
TString body(16); TString body(16);
TLocalisamfile* d = app->get_relation()->lfile(); TLocalisamfile& d = app.get_relation()->lfile();
#if XVT_OS == XVT_OS_WIN #if XVT_OS == XVT_OS_WIN
if (k != K_F8) appname.insert("a", 3); if (k != K_F8) appname.insert("a", 3);
#endif #endif
if (fldbrowse) if (fldbrowse)
body << fldbrowse << "|"; body << fldbrowse << "|";
if (fld) if (fld)
body << fld << "=" << m.get(FLD_GD1_CODDITTA) ; body << fld << "=" << m.get(FLD_GD1_CODDITTA) ;
if (fld1) if (fld1)
body << "|" << fld1 << "=" ; body << "|" << fld1 << "=" ;
if (fldbrowse || fld) if (fldbrowse || fld)
{ {
TMessage msg(cmd2name(appname), MSG_FS, (const char*) body); TMessage msg(cmd2name(appname), MSG_FS, (const char*) body);
TMailbox mb; TMailbox mb;
mb.send(msg); mb.send(msg);
} }
d->setkey(1); d.setkey(1);
d->zero(); d.zero();
d->put("CODDITTA", m.get(FLD_GD1_CODDITTA)); d.put("CODDITTA", m.get(FLD_GD1_CODDITTA));
d->read(_isequal, _unlock) ; d.read(_isequal, _unlock) ;
TExternal_app a(appname); TExternal_app a(appname);
long oldditta = prefhndl->get_codditta(); const long oldditta = main_app().get_firm();
if (k == K_F8) prefhndl->set_codditta(atol(m.get(FLD_GD1_CODDITTA)), TRUE); if (k == K_F8) main_app().set_firm(m.get_long(FLD_GD1_CODDITTA));
a.run(); a.run();
if (k == K_F8) prefhndl->set_codditta(oldditta, TRUE); if (k == K_F8) main_app().set_firm(oldditta);
d->read(_iscurr, _lock) ; d.read(_iscurr, _lock) ;
m.set_focus(); m.set_focus();
return FALSE; return FALSE;
} }
} }
return TRUE; return TRUE;
} }
bool BA4300_application::build_firm_data(long codditta, bool flagcom) bool BA4300_application::build_firm_data(long codditta, bool flagcom)
{ {
const TString ndir(firm2dir(codditta)); const TString ndir(firm2dir(codditta));
const char* ntrrec = "trc.gen"; const char* ntrrec = "trc.gen";
const TFilename s1(format("%s/%s", (const char*) ndir, ntrrec)); const TFilename s1(format("%s/%s", (const char*) ndir, ntrrec));
const char* nd = "dir.gen"; const char* nd = "dir.gen";
const TFilename s2(format("%s/%s", (const char*) ndir, nd)); const TFilename s2(format("%s/%s", (const char*) ndir, nd));
if (fexist(s1) && fexist(s2)) if (fexist(s1) && fexist(s2))
return TRUE; return TRUE;
if (fexist(ndir)) if (fexist(ndir))
{ {
const bool ok = yesno_box("Direttorio %s esistente, lo ricostruisco", (const char*) ndir); const bool ok = yesno_box("Direttorio %s esistente, lo ricostruisco", (const char*) ndir);
if (!ok) return TRUE; if (!ok) return TRUE;
} }
else else
#if XVT_OS == XVT_OS_SCOUNIX #if XVT_OS == XVT_OS_SCOUNIX
if (mkdir(ndir, 0777) == -1) if (mkdir(ndir, 0777) == -1)
#else #else
if (mkdir(ndir) == -1) if (mkdir(ndir) == -1)
#endif #endif
return error_box("non posso creare il direttorio della ditta %ld (%s)", return error_box("Impossibile creare il direttorio della ditta %ld (%s)",
codditta, (const char*) ndir); codditta, (const char*) ndir);
if (!fexist(s1)) if (!fexist(s1))
if (!fcopy(ntrrec, s1)) if (!fcopy(ntrrec, s1))
return error_box("non posso copiare il file %s della ditta %ld", return error_box("Impossibile copiare il file %s della ditta %ld",
ntrrec, codditta); ntrrec, codditta);
if (!fexist(s2)) if (!fexist(s2))
if (!fcopy(nd, s2)) if (!fcopy(nd, s2))
return error_box("non posso copiare il file %s della ditta %ld", return error_box("Impossibile copiare il file %s della ditta %ld",
nd, codditta); nd, codditta);
set_cursor(TASK_WIN, CURSOR_WAIT); set_cursor(TASK_WIN, CURSOR_WAIT);
const long old_firm = get_firm(); const long old_firm = get_firm();
TDir dir, dir1; TDir dir, dir1;
TTrec rec; TTrec rec;
prefhndl->set(""); prefhndl->set("");
dir1.get(LF_DIR, _nolock, _nordir, _sysdirop); dir1.get(LF_DIR, _nolock, _nordir, _sysdirop);
const long maxeod0 = dir1.eod(); const long maxeod0 = dir1.eod();
prefhndl->set_codditta(codditta); prefhndl->set_codditta(codditta);
dir.get(LF_DIR, _nolock, _nordir, _sysdirop); dir.get(LF_DIR, _nolock, _nordir, _sysdirop);
if (dir.eod() == 0) if (dir.eod() == 0)
{ {
dir1.eod() = 1L; dir1.eod() = 1L;
dir1.put(LF_DIR, _nordir, _sysdirop); dir1.put(LF_DIR, _nordir, _sysdirop);
dir.get(LF_DIR, _nolock, _nordir, _sysdirop); dir.get(LF_DIR, _nolock, _nordir, _sysdirop);
} }
const long maxeod1 = dir.eod(); const long maxeod1 = dir.eod();
if (maxeod0 > maxeod1) if (maxeod0 > maxeod1)
{ {
dir.get(LF_DIR, _nolock, _nordir, _sysdirop); dir.get(LF_DIR, _nolock, _nordir, _sysdirop);
dir.eod() = maxeod0; dir.eod() = maxeod0;
dir.put(LF_DIR, _nordir, _sysdirop); dir.put(LF_DIR, _nordir, _sysdirop);
rec.zero(); rec.zero();
} }
for (int i = LF_DIR + 1; i <= maxeod0; i++) for (int i = LF_DIR + 1; i <= maxeod0; i++)
{ {
dir.get(i, _nolock, _nordir, _sysdirop); dir.get(i, _nolock, _nordir, _sysdirop);
if (dir.eod() == 0L && dir.eox() == 0L) if (dir.eod() == 0L && dir.eox() == 0L)
{ {
prefhndl->set(""); prefhndl->set("");
dir.get(i, _nolock, _nordir, _sysdirop); dir.get(i, _nolock, _nordir, _sysdirop);
rec.get(i); rec.get(i);
prefhndl->set_codditta(codditta); prefhndl->set_codditta(codditta);
const char* name = dir.name(); const char* name = dir.name();
dir.flags() = 0L; dir.flags() = 0L;
const bool valid_file = *name && dir.len() > 0; const bool valid_file = *name && dir.len() > 0;
const bool create_now = flagcom ? *name == '%' : *name != '%'; const bool create_now = flagcom ? *name == '%' : *name != '%';
if (valid_file && create_now) if (valid_file && create_now)
{ {
dir.put(i, _nordir, _sysdirop); dir.put(i, _nordir, _sysdirop);
rec.put(i); rec.put(i);
TSystemisamfile f(i); TSystemisamfile f(i);
f.build(30); // cambiare f.build(30); // cambiare
BA4300_application* app = (BA4300_application*) MainApp(); BA4300_application& app = (BA4300_application&) main_app();
for (int j = 0 ; j < 99 ; j++) for (int j = 0 ; j < 99 ; j++)
{ {
if (app->has_module(j)) if (app.has_module(j))
{ {
const TString s(format("std/f%04d%02d.txt", i, j)); const TString s(format("std/f%04d%02d.txt", i, j));
if (fexist(s)) f.load(s); if (fexist(s)) f.load(s);
} }
} }
} }
else else
{ {
if (!flagcom) if (!flagcom)
{ {
dir.len() = 0; dir.len() = 0;
rec.zero(); rec.zero();
} }
dir.put(i, _nordir, _sysdirop); dir.put(i, _nordir, _sysdirop);
rec.put(i); rec.put(i);
} }
} }
} }
set_firm(old_firm); set_firm(old_firm);
set_cursor(TASK_WIN, CURSOR_ARROW); set_cursor(TASK_WIN, CURSOR_ARROW);
return TRUE; return TRUE;
} }
BA4300_application::BA4300_application() BA4300_application::BA4300_application()
{} {}
bool BA4300_application::user_create() // initvar e arrmask bool BA4300_application::user_create() // initvar e arrmask
{ {
_msk = new TMask("ba4300a") ; _msk = new TMask("ba4300a") ;
_msk->set_handler(ba4300_handler); _msk->set_handler(ba4300_handler);
_rel = new TRelation(LF_NDITTE); _rel = new TRelation(LF_NDITTE);
_anag = new TLocalisamfile(LF_ANAG); _anag = new TLocalisamfile(LF_ANAG);
_unloc = new TLocalisamfile(LF_UNLOC); _unloc = new TLocalisamfile(LF_UNLOC);
_attiv = new TLocalisamfile(LF_ATTIV); _attiv = new TLocalisamfile(LF_ATTIV);
_tabcom = new TLocalisamfile(LF_TABCOM); _tabcom = new TLocalisamfile(LF_TABCOM);
set_search_field(FLD_GD1_CODDITTA); set_search_field(FLD_GD1_CODDITTA);
return TRUE; return TRUE;
} }
bool BA4300_application::user_destroy() // releasev e arrmask bool BA4300_application::user_destroy() // releasev e arrmask
{ {
delete _msk; delete _msk;
delete _rel; delete _rel;
delete _anag; delete _anag;
delete _unloc; delete _unloc;
delete _attiv; delete _attiv;
delete _tabcom; delete _tabcom;
return TRUE; return TRUE;
} }
int BA4300_application::write(const TMask& m) int BA4300_application::write(const TMask& m)
{ {
_rel->zero(); _rel->zero();
m.autosave(); m.autosave();
_rel->write(); _rel->write();
if (_rel->bad()) if (_rel->bad())
return _rel->status(); return _rel->status();
TRectype& ditte=_rel->curr(); TRectype& ditte=_rel->curr();
TString codditta(ditte.get(CODDITTA)) ; TString codditta(ditte.get(CODDITTA)) ;
_attiv->zero() ; _attiv->zero() ;
_attiv->put(CODDITTA, (const char*) codditta) ; _attiv->put(CODDITTA, (const char*) codditta) ;
_attiv->put(CODATT, ditte.get(CODATTPREV)) ; _attiv->put(CODATT, ditte.get(CODATTPREV)) ;
TTable* tabatt = new TTable(TABATT); TTable* tabatt = new TTable(TABATT);
tabatt->zero(); tabatt->zero();
tabatt->put(CODTAB, ditte.get(CODATTPREV)) ; tabatt->put(CODTAB, ditte.get(CODATTPREV)) ;
tabatt->read(); tabatt->read();
if (tabatt->good()) _attiv->put(DESCR, tabatt->curr().get(S0)) ; if (tabatt->good()) _attiv->put(DESCR, tabatt->curr().get(S0)) ;
delete tabatt; delete tabatt;
_attiv->write(); _attiv->write();
_anag->zero() ; _anag->zero() ;
_anag->put(TIPOA, ditte.get(TIPOA)); _anag->put(TIPOA, ditte.get(TIPOA));
_anag->put(CODANAGR, ditte.get(CODANAGR)); _anag->put(CODANAGR, ditte.get(CODANAGR));
_anag->read(); _anag->read();
if (_anag->good()) if (_anag->good())
{ {
_unloc->zero() ; _unloc->zero() ;
_unloc->put(CODDITTA, (const char*) codditta) ; _unloc->put(CODDITTA, (const char*) codditta) ;
_unloc->put(CODULC, (int) 1) ; _unloc->put(CODULC, (int) 1) ;
TString s(_anag->get(COMRF)); TString s(_anag->get(COMRF));
if (s.empty()) if (s.empty())
{ {
_unloc->put(COMULC, _anag->get(COMRES)); _unloc->put(COMULC, _anag->get(COMRES));
_unloc->put(INDULC, _anag->get(INDRES)); _unloc->put(INDULC, _anag->get(INDRES));
_unloc->put(CIVULC, _anag->get(CIVRES)); _unloc->put(CIVULC, _anag->get(CIVRES));
_unloc->put(CAPULC, _anag->get(CAPRES)); _unloc->put(CAPULC, _anag->get(CAPRES));
_unloc->put(COMCCIAA, _anag->get(COMRES)); _unloc->put(COMCCIAA, _anag->get(COMRES));
_unloc->put(COMTRIB, _anag->get(COMRES)); _unloc->put(COMTRIB, _anag->get(COMRES));
} }
else else
{ {
_unloc->put(COMULC, (const char*) s); _unloc->put(COMULC, (const char*) s);
_unloc->put(INDULC, _anag->get(INDRF)); _unloc->put(INDULC, _anag->get(INDRF));
_unloc->put(CIVULC, _anag->get(CIVRF)); _unloc->put(CIVULC, _anag->get(CIVRF));
_unloc->put(CAPULC, _anag->get(CAPRF)); _unloc->put(CAPULC, _anag->get(CAPRF));
_unloc->put(COMCCIAA, (const char*) s); _unloc->put(COMCCIAA, (const char*) s);
_unloc->put(COMTRIB, (const char*) s); _unloc->put(COMTRIB, (const char*) s);
} }
_unloc->write(); _unloc->write();
} }
build_firm_data(atol(codditta), FALSE); build_firm_data(atol(codditta), FALSE);
return NOERR; return NOERR;
} }
void BA4300_application::init_query_mode(TMask& m) void BA4300_application::init_query_mode(TMask& m)
{ {
if (filtered()) if (filtered())
{ {
m.show(FLD_GD1_CODDITTAH); m.show(FLD_GD1_CODDITTAH);
m.hide(FLD_GD1_CODDITTA); m.hide(FLD_GD1_CODDITTA);
} }
else else
{ {
m.show(FLD_GD1_CODDITTA); m.show(FLD_GD1_CODDITTA);
m.hide(FLD_GD1_CODDITTAH); m.hide(FLD_GD1_CODDITTAH);
} }
init_insert_mode(m); init_insert_mode(m);
} }
void BA4300_application::init_insert_mode(TMask& m) void BA4300_application::init_insert_mode(TMask& m)
{ {
if (!filtered()) if (!filtered())
{ {
m.enable(FLD_GD1_TIPOA); m.enable(FLD_GD1_TIPOA);
m.enable(FLD_GD1_CODANAGR); m.enable(FLD_GD1_CODANAGR);
m.enable(FLD_GD1_CODANAGR_ANAGR_RAGSOC); m.enable(FLD_GD1_CODANAGR_ANAGR_RAGSOC);
m.show(FLD_GD1_CODDITTA); m.show(FLD_GD1_CODDITTA);
m.hide(FLD_GD1_CODDITTAH); m.hide(FLD_GD1_CODDITTAH);
} }
else else
{ {
m.show(FLD_GD1_CODDITTAH); m.show(FLD_GD1_CODDITTAH);
m.hide(FLD_GD1_CODDITTA); m.hide(FLD_GD1_CODDITTA);
} }
m.disable(DLG_ATT); m.disable(DLG_ATT);
m.disable(DLG_ULC); m.disable(DLG_ULC);
m.disable(DLG_SOC); m.disable(DLG_SOC);
m.disable(DLG_REG); m.disable(DLG_REG);
} }
void BA4300_application::init_modify_mode(TMask& m) void BA4300_application::init_modify_mode(TMask& m)
{ {
m.disable(FLD_GD1_TIPOA); m.disable(FLD_GD1_TIPOA);
m.disable(FLD_GD1_CODANAGR); m.disable(FLD_GD1_CODANAGR);
m.disable(FLD_GD1_CODANAGR_ANAGR_RAGSOC); m.disable(FLD_GD1_CODANAGR_ANAGR_RAGSOC);
if (filtered()) if (filtered())
{ {
m.show(FLD_GD1_CODDITTAH); m.show(FLD_GD1_CODDITTAH);
m.hide(FLD_GD1_CODDITTA); m.hide(FLD_GD1_CODDITTA);
} }
else else
{ {
m.show(FLD_GD1_CODDITTA); m.show(FLD_GD1_CODDITTA);
m.hide(FLD_GD1_CODDITTAH); m.hide(FLD_GD1_CODDITTAH);
} }
m.enable(DLG_ATT); m.enable(DLG_ATT);
m.enable(DLG_ULC); m.enable(DLG_ULC);
m.enable(DLG_SOC); m.enable(DLG_SOC);
m.enable(DLG_REG); m.enable(DLG_REG);
} }
int ba4300(int argc, char* argv[]) int ba4300(int argc, char* argv[])
{ {
BA4300_application a ;
BA4300_application a ; a.run(argc, argv, "Anagrafica Ditte");
a.run(argc, argv, "Anagrafica Ditta"); return 0;
return 0; }
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,286 +1,285 @@
#include <mask.h> #include <mask.h>
#include <printapp.h> #include <printapp.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <sort.h> #include <sort.h>
#include <lffiles.h> #include <lffiles.h>
#include <comuni.h> #include <comuni.h>
#include "ba6.h" #include "ba6.h"
#include "ba6200.h" #include "ba6200.h"
const MAXSTR = 128; const MAXSTR = 128;
static char __tmp [MAXSTR]; static char __tmp [MAXSTR];
static TFixed_string tmp (__tmp, MAXSTR); static TFixed_string tmp (__tmp, MAXSTR);
class BA6200_application : public TPrintapp class BA6200_application : public TPrintapp
{ {
TRelation* _rel; TRelation* _rel;
TMask* _msk; TMask* _msk;
TLocalisamfile* _comuni; TLocalisamfile* _comuni;
TParagraph_string * _descr_comune; TParagraph_string * _descr_comune;
int _cur1, _cur2; int _cur1, _cur2;
TString _provcom_msk, _com, _dencom, _provcom, _capcom; TString _provcom_msk, _com, _dencom, _provcom, _capcom;
TString _codistat; TString _codistat;
int _uffiidd1, _uffiidd2, _uffiidd3, _uffiva1, _uffiva2, _uffiva3; int _uffiidd1, _uffiidd2, _uffiidd3, _uffiva1, _uffiva2, _uffiva3;
int _uffreg, _uffconc, _uffcserv, _uffesprov, _uffescom, _terrmon; int _uffreg, _uffconc, _uffcserv, _uffesprov, _uffescom, _terrmon;
real _alqici; real _alqici;
TDate _data_stampa; TDate _data_stampa;
protected: protected:
virtual void user_create() ; virtual void user_create() ;
virtual void user_destroy(); virtual void user_destroy();
virtual bool set_print(int m); virtual bool set_print(int m);
virtual bool preprocess_page (int,int); virtual bool preprocess_page (int,int);
public: public:
void crea_intestazione(); void crea_intestazione();
void setta_righe_descr(TParagraph_string*); void setta_righe_descr(TParagraph_string*);
BA6200_application(); BA6200_application();
}; };
bool BA6200_application::preprocess_page(int file, int counter) bool BA6200_application::preprocess_page(int file, int counter)
{ {
reset_print(); reset_print();
if (counter) if (counter)
return TRUE; return TRUE;
if (file == LF_COMUNI) if (file == LF_COMUNI)
{ {
_provcom = current_cursor()->curr(LF_COMUNI).get(COM_PROVCOM); _provcom = current_cursor()->curr(LF_COMUNI).get(COM_PROVCOM);
if ((_provcom == _provcom_msk) || (_provcom_msk == "")) if ((_provcom == _provcom_msk) || (_provcom_msk == ""))
{ {
_com = current_cursor()->curr(LF_COMUNI).get(COM_COM); _com = current_cursor()->curr(LF_COMUNI).get(COM_COM);
_dencom = current_cursor()->curr(LF_COMUNI).get(COM_DENCOM); _dencom = current_cursor()->curr(LF_COMUNI).get(COM_DENCOM);
*_descr_comune = (const char*) _dencom; *_descr_comune = (const char*) _dencom;
_capcom = current_cursor()->curr(LF_COMUNI).get(COM_CAPCOM); _capcom = current_cursor()->curr(LF_COMUNI).get(COM_CAPCOM);
_codistat = current_cursor()->curr(LF_COMUNI).get(COM_CODISTAT); _codistat = current_cursor()->curr(LF_COMUNI).get(COM_CODISTAT);
_uffiidd1 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIIDD1); _uffiidd1 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIIDD1);
_uffiidd2 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIIDD2); _uffiidd2 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIIDD2);
_uffiidd3 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIIDD3); _uffiidd3 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIIDD3);
_uffiva1 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIVA1); _uffiva1 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIVA1);
_uffiva2 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIVA2); _uffiva2 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIVA2);
_uffiva3 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIVA3); _uffiva3 = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFIVA3);
_uffreg = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFREG); _uffreg = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFREG);
_uffconc = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFCONC); _uffconc = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFCONC);
_uffcserv = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFCSERV); _uffcserv = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFCSERV);
_uffesprov = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFESPROV); _uffesprov = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFESPROV);
_uffescom = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFESCOM); _uffescom = current_cursor()->curr(LF_COMUNI).get_int(COM_UFFESCOM);
_alqici = current_cursor()->curr(LF_COMUNI).get_real(COM_ALIQICI); _alqici = current_cursor()->curr(LF_COMUNI).get_real(COM_ALIQICI);
_terrmon = current_cursor()->curr(LF_COMUNI).get_int(COM_TERRMON); _terrmon = current_cursor()->curr(LF_COMUNI).get_int(COM_TERRMON);
setta_righe_descr(_descr_comune); setta_righe_descr(_descr_comune);
set_row (1,"@0g%4s", (const char*) _com); set_row (1,"@0g%4s", (const char*) _com);
set_row (1,"@33g%5s", (const char*) _provcom); set_row (1,"@33g%5s", (const char*) _provcom);
set_row (1,"@39g%5s", (const char*) _capcom); set_row (1,"@39g%5s", (const char*) _capcom);
set_row (1,"@46g%6s", (const char*) _codistat); set_row (1,"@46g%6s", (const char*) _codistat);
set_row (1,"@54g%r", &_alqici); set_row (1,"@54g%r", &_alqici);
if (_terrmon != 0) if (_terrmon != 0)
set_row (1,"@63g%d", _terrmon); set_row (1,"@63g%d", _terrmon);
if (_uffiidd1 != 0) if (_uffiidd1 != 0)
set_row (1,"@72g%03d", _uffiidd1); set_row (1,"@72g%03d", _uffiidd1);
if (_uffiidd2 != 0) if (_uffiidd2 != 0)
set_row (1,"@76g%03d", _uffiidd2); set_row (1,"@76g%03d", _uffiidd2);
if (_uffiidd3 != 0) if (_uffiidd3 != 0)
set_row (1,"@80g%03d", _uffiidd3); set_row (1,"@80g%03d", _uffiidd3);
if (_uffiva1 != 0) if (_uffiva1 != 0)
set_row (1,"@85g%03d", _uffiva1); set_row (1,"@85g%03d", _uffiva1);
if (_uffiva2 != 0) if (_uffiva2 != 0)
set_row (1,"@89g%03d", _uffiva2); set_row (1,"@89g%03d", _uffiva2);
if (_uffiva3 != 0) if (_uffiva3 != 0)
set_row (1,"@93g%03d", _uffiva3); set_row (1,"@93g%03d", _uffiva3);
if (_uffreg != 0) if (_uffreg != 0)
set_row (1,"@98g%03d", _uffreg); set_row (1,"@98g%03d", _uffreg);
if (_uffconc != 0) if (_uffconc != 0)
set_row (1,"@104g%03d", _uffconc); set_row (1,"@104g%03d", _uffconc);
if (_uffcserv != 0) if (_uffcserv != 0)
set_row (1,"@110g%03d", _uffcserv); set_row (1,"@110g%03d", _uffcserv);
if (_uffesprov != 0) if (_uffesprov != 0)
set_row (1,"@115g%03d", _uffesprov); set_row (1,"@115g%03d", _uffesprov);
if (_uffescom != 0) if (_uffescom != 0)
set_row (1,"@119g%03d", _uffescom); set_row (1,"@119g%03d", _uffescom);
return TRUE; return TRUE;
} }
else else
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
void BA6200_application::setta_righe_descr(TParagraph_string* str) void BA6200_application::setta_righe_descr(TParagraph_string* str)
{ {
const char* r; const char* r;
int i = 1; int i = 1;
while ((r = str->get()) != NULL) while ((r = str->get()) != NULL)
{ {
set_row (i,"@7g%s", r); set_row (i,"@7g%s", r);
i++; i++;
} }
} }
BA6200_application::BA6200_application() BA6200_application::BA6200_application()
{ {
} }
bool BA6200_application::set_print(int) bool BA6200_application::set_print(int)
{ {
KEY tasto; KEY tasto;
TLocalisamfile* fl; TString statoini,statofine,codiceini,codicefine,denomini,denomfine;
TString statoini,statofine,codiceini,codicefine,denomini,denomfine;
tasto = _msk->run();
tasto = _msk->run();
if (tasto == K_ENTER)
if (tasto == K_ENTER) {
{ _data_stampa = _msk->get (F_DATA);
_data_stampa = _msk->get (F_DATA); int scelta = _msk->get_int (F_SCELTA);
int scelta = _msk->get_int (F_SCELTA); _provcom_msk = _msk->get (F_PROVCOM);
_provcom_msk = _msk->get (F_PROVCOM);
if (scelta == 1)
if (scelta == 1) {
{ statoini = _msk->get(F_STATOINI);
statoini = _msk->get(F_STATOINI); codiceini = _msk->get(F_CODICEINI);
codiceini = _msk->get(F_CODICEINI); statofine = _msk->get(F_STATOFINE);
statofine = _msk->get(F_STATOFINE); codicefine = _msk->get(F_CODICEFINE);
codicefine = _msk->get(F_CODICEFINE);
reset_files(); //resetta l'albero di stampa
reset_files(); //resetta l'albero di stampa add_file(LF_COMUNI);
add_file(LF_COMUNI);
select_cursor(_cur1);
select_cursor(_cur1); TLocalisamfile& fl = current_cursor()->file(LF_COMUNI);
fl = current_cursor()->file(LF_COMUNI); TRectype da (fl.curr());
TRectype da (fl->curr()); TRectype a (fl.curr());
TRectype a (fl->curr());
da.zero();
da.zero(); a.zero();
a.zero();
da.put(COM_STATO,statoini);
da.put(COM_STATO,statoini); da.put(COM_COM ,codiceini);
da.put(COM_COM ,codiceini);
a.put(COM_STATO,statofine);
a.put(COM_STATO,statofine); a.put(COM_COM ,codicefine);
a.put(COM_COM ,codicefine);
current_cursor()->setregion(da, a);
current_cursor()->setregion(da, a); }
} else
else if (scelta == 2)
if (scelta == 2) {
{ denomini = _msk->get(F_NOMEINI);
denomini = _msk->get(F_NOMEINI); denomfine = _msk->get(F_NOMEFINE);
denomfine = _msk->get(F_NOMEFINE);
select_cursor(_cur2);
select_cursor(_cur2);
reset_files();
reset_files(); add_file(LF_COMUNI);
add_file(LF_COMUNI);
TLocalisamfile& fl = current_cursor()->file(LF_COMUNI);
fl = current_cursor()->file(LF_COMUNI); TRectype da (fl.curr());
TRectype da (fl->curr()); TRectype a (fl.curr());
TRectype a (fl->curr());
da.zero();
da.zero(); a.zero();
a.zero();
da.put(COM_DENCOM, denomini);
da.put(COM_DENCOM, denomini);
a.put (COM_DENCOM, denomfine);
a.put (COM_DENCOM, denomfine);
current_cursor()->setregion(da, a);
current_cursor()->setregion(da, a); }
}
//set_print_zero();
//set_print_zero(); crea_intestazione();
crea_intestazione();
return TRUE;
return TRUE; }
} else
else return FALSE;
return FALSE; }
}
void BA6200_application::crea_intestazione()
void BA6200_application::crea_intestazione() {
{ TString sep(132);
TString sep(132); TString data_stampa;
TString data_stampa;
reset_header();
reset_header();
sep.fill('-');
sep.fill('-'); set_header (1, (const char *) sep);
set_header (1, (const char *) sep); sep = "";
sep = ""; sep << "Pag. @#";
sep << "Pag. @#"; sep.right_just(132);
sep.right_just(132); set_header (2,(const char*) sep);
set_header (2,(const char*) sep);
set_header (2,"@0gARCHIVIO COMUNI@91gSTUDIO@104gDATA");
set_header (2,"@0gARCHIVIO COMUNI@91gSTUDIO@104gDATA"); data_stampa = _data_stampa.string();
data_stampa = _data_stampa.string(); set_header (2,"@109g%10s", (const char*) data_stampa);
set_header (2,"@109g%10s", (const char*) data_stampa);
sep = "";
sep = ""; sep.fill('-');
sep.fill('-'); set_header (3, (const char *) sep);
set_header (3, (const char *) sep);
set_header(5,"@0gCodice@7gDenominazione@33gProv.@40gCap@45gCd.Istat@54gAl.ICI@61gMont.@67gUff.@74gII.DD.@87gI.V.A.@97gRegi.@103gConc.@109gServ.@115gEsatt.");
set_header(5,"@0gCodice@7gDenominazione@33gProv.@40gCap@45gCd.Istat@54gAl.ICI@61gMont.@67gUff.@74gII.DD.@87gI.V.A.@97gRegi.@103gConc.@109gServ.@115gEsatt."); set_header (6,"@0g------@7g-------------------------@33g-----@39g-----");
set_header (6,"@0g------@7g-------------------------@33g-----@39g-----"); set_header (6,"@45g--------@54g------@61g-----@72g-----------");
set_header (6,"@45g--------@54g------@61g-----@72g-----------"); set_header (6,"@85g------------@97g-----@103g-----@109g-----@115g-------");
set_header (6,"@85g------------@97g-----@103g-----@109g-----@115g-------"); }
}
void BA6200_application::user_create()
void BA6200_application::user_create() {
{ _rel = new TRelation (LF_COMUNI);
_rel = new TRelation (LF_COMUNI);
_cur1 = add_cursor(new TCursor(_rel,"",1));
_cur1 = add_cursor(new TCursor(_rel,"",1));
_cur2 = add_cursor(new TCursor(_rel,"",2));
_cur2 = add_cursor(new TCursor(_rel,"",2));
_comuni = new TLocalisamfile (LF_COMUNI);
_comuni = new TLocalisamfile (LF_COMUNI);
_descr_comune = new TParagraph_string ("",25);
_descr_comune = new TParagraph_string ("",25);
_msk = new TMask("ba6200a");
_msk = new TMask("ba6200a"); }
}
void BA6200_application::user_destroy()
void BA6200_application::user_destroy() {
{ delete _msk;
delete _msk; delete _rel;
delete _rel; delete _comuni;
delete _comuni; delete _descr_comune;
delete _descr_comune; }
}
int ba6200(int argc, char* argv[])
int ba6200(int argc, char* argv[]) {
{
BA6200_application a;
BA6200_application a;
a.run(argc, argv, "Stampa Comuni");
a.run(argc, argv, "Stampa Comuni");
return 0;
return 0; }
}

View File

@ -1,119 +1,124 @@
#include "ba3200.h" #include "ba3200.h"
PAGE "Stampa Tabella IV direttiva CEE" -1 -1 69 8 PAGE "Stampa Tabella IV direttiva CEE" -1 -1 68 9
STRING F_INIZIO1 1 GROUPBOX DLG_NULL 66 3
BEGIN BEGIN
PROMPT 2 1 "Da sezione " PROMPT 1 1 "@bDa codice"
FLAGS "U" END
HELP "Inserire il codice d'inizio "
FIELD CODTAB[1,1] STRING F_INIZIO1 1
USE %IVD BEGIN
INPUT CODTAB[1,1] F_INIZIO1 PROMPT 2 2 "Sezione "
INPUT CODTAB[2,2] F_INIZIO2 FLAGS "U"
INPUT CODTAB[3,6] F_INIZIO3 HELP "Codice da cui iniziare la stampa"
INPUT CODTAB[7,8] F_INIZIO4 FIELD CODTAB[1,1]
DISPLAY "Sezione" CODTAB[1,1] USE %IVD
DISPLAY "Lettera" CODTAB[2,2] INPUT CODTAB[1,1] F_INIZIO1
DISPLAY "Classe " CODTAB[3,6] INPUT CODTAB[2,2] F_INIZIO2
DISPLAY "Numero" CODTAB[7,8] INPUT CODTAB[3,6] F_INIZIO3
DISPLAY "Descrizione@50" S0 INPUT CODTAB[7,8] F_INIZIO4
OUTPUT F_INIZIO1 CODTAB[1,1] DISPLAY "Sezione" CODTAB[1,1]
OUTPUT F_INIZIO2 CODTAB[2,2] DISPLAY "Lettera" CODTAB[2,2]
OUTPUT F_INIZIO3 CODTAB[3,6] DISPLAY "Classe " CODTAB[3,6]
OUTPUT F_INIZIO4 CODTAB[7,8] DISPLAY "Numero" CODTAB[7,8]
GROUP 1 DISPLAY "Descrizione@50" S0
END OUTPUT F_INIZIO1 CODTAB[1,1]
OUTPUT F_INIZIO2 CODTAB[2,2]
STRING F_INIZIO2 1 OUTPUT F_INIZIO3 CODTAB[3,6]
BEGIN OUTPUT F_INIZIO4 CODTAB[7,8]
PROMPT 17 1 "Da lettera " GROUP 1
FLAGS "U" END
HELP "Inserire il codice d'inizio "
FIELD CODTAB[2,2] STRING F_INIZIO2 1
COPY ALL F_INIZIO1 BEGIN
GROUP 1 PROMPT 17 2 "Lettera "
END FLAGS "U"
FIELD CODTAB[2,2]
NUMBER F_INIZIO3 8 4 COPY ALL F_INIZIO1
BEGIN GROUP 1
PROMPT 32 1 "Da classe " END
FLAGS "UM"
HELP "Inserire il codice d'inizio " NUMBER F_INIZIO3 8 4
FIELD CODTAB[3,6] BEGIN
COPY ALL F_INIZIO1 PROMPT 31 2 "Classe "
GROUP 1 FLAGS "UM"
END FIELD CODTAB[3,6]
COPY ALL F_INIZIO1
NUMBER F_INIZIO4 2 GROUP 1
BEGIN END
PROMPT 53 1 "Da numero "
FLAGS "RZ" NUMBER F_INIZIO4 2
HELP "Inserire il codice d'inizio " BEGIN
FIELD CODTAB[7,8] PROMPT 52 2 "Numero "
COPY ALL F_INIZIO1 FLAGS "RZ"
GROUP 1 FIELD CODTAB[7,8]
END COPY ALL F_INIZIO1
GROUP 1
STRING F_FINE1 1 END
BEGIN
PROMPT 2 3 "A sezione " GROUPBOX DLG_NULL 66 3
HELP "Inserire il codice di fine " BEGIN
FIELD CODTAB[1,1] PROMPT 1 4 "@bA Codice"
FLAGS "U" END
COPY USE F_INIZIO1
INPUT CODTAB[1,1] F_FINE1 STRING F_FINE1 1
INPUT CODTAB[2,2] F_FINE2 BEGIN
INPUT CODTAB[3,6] F_FINE3 PROMPT 2 5 "Sezione "
INPUT CODTAB[7,8] F_FINE4 HELP "Codice finale da stampare"
COPY DISPLAY F_INIZIO1 FIELD CODTAB[1,1]
OUTPUT F_FINE1 CODTAB[1,1] FLAGS "U"
OUTPUT F_FINE2 CODTAB[2,2] COPY USE F_INIZIO1
OUTPUT F_FINE3 CODTAB[3,6] INPUT CODTAB[1,1] F_FINE1
OUTPUT F_FINE4 CODTAB[7,8] INPUT CODTAB[2,2] F_FINE2
GROUP 2 INPUT CODTAB[3,6] F_FINE3
END INPUT CODTAB[7,8] F_FINE4
COPY DISPLAY F_INIZIO1
STRING F_FINE2 1 OUTPUT F_FINE1 CODTAB[1,1]
BEGIN OUTPUT F_FINE2 CODTAB[2,2]
PROMPT 17 3 "A lettera " OUTPUT F_FINE3 CODTAB[3,6]
FLAGS "U" OUTPUT F_FINE4 CODTAB[7,8]
COPY ALL F_FINE1 GROUP 2
HELP "Inserire il codice di fine " END
FIELD CODTAB[2,2]
GROUP 2 STRING F_FINE2 1
END BEGIN
PROMPT 17 5 "Lettera "
NUMBER F_FINE3 8 4 FLAGS "U"
BEGIN COPY ALL F_FINE1
PROMPT 32 3 "A classe " FIELD CODTAB[2,2]
FLAGS "UM" GROUP 2
HELP "Inserire il codice di fine " END
FIELD CODTAB[3,6]
COPY ALL F_FINE1 NUMBER F_FINE3 8 4
GROUP 2 BEGIN
END PROMPT 31 5 "Classe "
FLAGS "UM"
NUMBER F_FINE4 2 FIELD CODTAB[3,6]
BEGIN COPY ALL F_FINE1
PROMPT 53 3 "A numero " GROUP 2
FLAGS "RZ" END
HELP "Inserire il codice di fine "
FIELD CODTAB[7,8] NUMBER F_FINE4 2
COPY ALL F_FINE1 BEGIN
GROUP 2 PROMPT 52 5 "Numero "
END FLAGS "RZ"
FIELD CODTAB[7,8]
BUTTON DLG_OK 8 2 COPY ALL F_FINE1
BEGIN GROUP 2
PROMPT -12 -1 "" END
END
BUTTON DLG_PRINT 10 2
BUTTON DLG_QUIT 8 2 BEGIN
BEGIN PROMPT -12 -1 "~Stampa"
PROMPT -22 -1 "" MESSAGE EXIT,K_ENTER
END END
ENDPAGE BUTTON DLG_QUIT 10 2
ENDMASK BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,130 +1,132 @@
0|Menu Principale| 0|Menu Principale|
0|Anagrafiche|1 0|Anagrafiche|1
0|Contabilita'|4 0|Contabilita'|4
0|Manutenzione|ba1 0|Terreni e fabbricati|tefa -t
1|Gestione Anagrafiche|1 0|Modello 740|.\740 -t
1|Persone fisiche|ba4 -1 F 0|Manutenzione|ba1
1|Persone giuridiche|ba4 -1 G 1|Gestione Anagrafiche|1
1|Ditte|ba4 -2 1|Persone fisiche|ba4 -1 F
1|Unita' Locali|ba4 -3 1|Persone giuridiche|ba4 -1 G
1|Attivita'|ba4 -4 1|Ditte|ba4 -2
1|Soci|ba4 -5 1|Unita' Locali|ba4 -3
1|Ricerca Soci|ba5 1|Attivita'|ba4 -4
1|Tabelle ministeriali|11 1|Soci|ba4 -5
1|Tabelle|2 1|Ricerca Soci|ba5
1|Stampa anagrafiche|ba6 -0 1|Tabelle ministeriali|11
1|Stampa tabelle|3 1|Tabelle|2
1|Stampa tabelle ministeriali|12 1|Stampa anagrafiche|ba6 -0
1|Stampa numerazione registri|ba3 -2 1|Stampa tabelle|3
2|Tabelle|1 1|Stampa tabelle ministeriali|12
2|Codici IVA|ba3 -0 %iva 1|Stampa numerazione registri|ba3 -2
2|Codici Attivita'|ba3 -0 %ais 2|Tabelle|1
2|Cond. di pagamento|ba3 -0 %cpg 2|Codici IVA|ba3 -0 %iva
2|Libri sociali|ba3 -0 %itl 2|Codici Attivita'|ba3 -0 %ais
2|Banche|ba3 -0 %ban 2|Cond. di pagamento|ba3 -0 %cpg
2|Codici statistici|ba3 -0 %stt 2|Libri sociali|ba3 -0 %itl
2|Cariche sociali|ba3 -0 %crs 2|Banche|ba3 -0 %ban
2|Vecchi cod.Attivita'|ba3 -0 %ois 2|Codici statistici|ba3 -0 %stt
2|Stati esteri|ba3 -0 %sta 2|Cariche sociali|ba3 -0 %crs
2|Valute|ba3 -0 %val 2|Vecchi cod.Attivita'|ba3 -0 %ois
2|Lingue|ba3 -0 %lng 2|Stati esteri|ba3 -0 %sta
3|Stampa tabelle|3 2|Valute|ba3 -0 %val
3|Codici IVA|ba3 -1 %iva 2|Lingue|ba3 -0 %lng
3|Codici Attivita'|ba3 -1 %ais 3|Stampa tabelle|3
3|Cond. di pagamento|ba3 -1 %cpg 3|Codici IVA|ba3 -1 %iva
3|Libri sociali|ba3 -1 %itl 3|Codici Attivita'|ba3 -1 %ais
3|Banche|ba3 -1 %ban 3|Cond. di pagamento|ba3 -1 %cpg
3|Codici statistici|ba3 -1 %stt 3|Libri sociali|ba3 -1 %itl
3|Cariche sociali|ba3 -1 %crs 3|Banche|ba3 -1 %ban
3|Vecchi cod.Attivita'|ba3 -1 %ois 3|Codici statistici|ba3 -1 %stt
3|Stati esteri|ba3 -1 %sta 3|Cariche sociali|ba3 -1 %crs
3|Valute|ba3 -1 %val 3|Vecchi cod.Attivita'|ba3 -1 %ois
3|Lingue|ba3 -1 %lng 3|Stati esteri|ba3 -1 %sta
4|Contabilita'|2 3|Valute|ba3 -1 %val
4|Persone fisiche|ba4 -1 F 3|Lingue|ba3 -1 %lng
4|Persone giuridiche|ba4 -1 G 4|Contabilita'|2
4|Ditte|ba4 -2 4|Persone fisiche|ba4 -1 F
4|Tabelle studio|5 4|Persone giuridiche|ba4 -1 G
4|Stampa tabelle studio|6 4|Ditte|ba4 -2
4|Scelta contabilita'|13|F 4|Tabelle studio|5
4|IVA|10 4|Stampa tabelle studio|6
4|Parametri di studio|cg5 -0 4|Scelta contabilita'|13|F
4|Gestione Libro Unico|14 4|IVA|10
5|Tabelle studio| 4|Parametri di studio|cg5 -0
5|Tipi documento|ba3 -0 %tpd 4|Gestione Libro Unico|14
5|Cond. di pagamento|ba3 -0 %cpg 5|Tabelle studio|1
5|Descrizioni aggiuntive|ba3 -0 %dpn 5|Tipi documento|ba3 -0 %tpd
5|Codici IVA|ba3 -0 %iva 5|Cond. di pagamento|ba3 -0 %cpg
5|Codici Attivita'|ba3 -0 %ais 5|Descrizioni aggiuntive|ba3 -0 %dpn
5|Uffici IVA|ba3 -0 %uiv 5|Codici IVA|ba3 -0 %iva
5|Libri sociali|ba3 -0 %itl 5|Codici Attivita'|ba3 -0 %ais
5|Banche|ba3 -0 %ban 5|Uffici IVA|ba3 -0 %uiv
5|IV direttiva CEE|ba3 -0 %ivd 5|Libri sociali|ba3 -0 %itl
5|Valute|ba3 -0 %val 5|Banche|ba3 -0 %ban
5|Lingue|ba3 -0 %lng 5|IV direttiva CEE|ba3 -0 %ivd
6|Stampa tabelle studio| 5|Valute|ba3 -0 %val
6|Cond. di pagamento|ba3 -1 %cpg 5|Lingue|ba3 -0 %lng
6|Descrizioni aggiuntive|ba3 -1 %dpn 6|Stampa tabelle studio|3
6|Codici IVA|ba3 -1 %iva 6|Cond. di pagamento|ba3 -1 %cpg
6|Codici Attivita'|ba3 -1 %ais 6|Descrizioni aggiuntive|ba3 -1 %dpn
6|Uffici IVA|ba3 -1 %uiv 6|Codici IVA|ba3 -1 %iva
6|Libri sociali|ba3 -1 %itl 6|Codici Attivita'|ba3 -1 %ais
6|Banche|ba3 -1 %ban 6|Uffici IVA|ba3 -1 %uiv
6|IV direttiva CEE|ba3 -1 %ivd 6|Libri sociali|ba3 -1 %itl
6|Valute|ba3 -1 %val 6|Banche|ba3 -1 %ban
6|Lingue|ba3 -1 %lng 6|IV direttiva CEE|ba3 -1 %ivd
7|Tabelle ditta| 6|Valute|ba3 -1 %val
7|Parametri ditta|cg5 -1 6|Lingue|ba3 -1 %lng
7|Registri|ba3 -0 reg 7|Tabelle ditta|2
7|Piano dei conti|cg0 -0 7|Parametri ditta|cg5 -1
7|Causali|cg0 -4 7|Registri|ba3 -0 reg
7|Clienti/Fornitori|cg0 -1 7|Piano dei conti|cg0 -0
7|Banche|ba3 -0 %ban 7|Causali|cg0 -4
7|Esercizi|ba3 -0 esc 7|Clienti/Fornitori|cg0 -1
8|Stampa tabelle ditta|3 7|Banche|ba3 -0 %ban
8|Registri|ba3 -1 reg 7|Esercizi|ba3 -0 esc
8|Piano dei conti|cg1 -0 8|Stampa tabelle ditta|3
8|Causali|cg1 -6 8|Registri|ba3 -1 reg
8|Clienti/Fornitori|cg1 -1 8|Piano dei conti|cg1 -0
8|Banche|ba3 -1 %ban 8|Causali|cg1 -6
9|Prima nota|2 8|Clienti/Fornitori|cg1 -1
9|Prima nota|cg2 -0 8|Banche|ba3 -1 %ban
9|Ricalcolo saldi|cg4 -0 9|Prima nota|2
9|IVA|10 9|Prima nota|cg2 -0
9|Lista movimenti|cg3 -0 9|Ricalcolo saldi|cg4 -0
9|Mastrini|cg3 -1 9|IVA|10
9|Riepiloghi|cg3 -4 9|Lista movimenti|cg3 -0
9|Bilancio|cg1 -4 9|Mastrini|cg3 -1
9|Bilancio IV direttiva CEE|cg1 -5 9|Riepiloghi|cg3 -4
9|Giornale|cg3 -3 9|Bilancio|cg1 -4
10|IVA|2 9|Bilancio IV direttiva CEE|cg1 -5
10|Liquidazione|cg4 -2 9|Giornale|cg3 -3
10|Deleghe|ba3 -0 %del 10|IVA|2
10|Stampa deleghe|cg1 -3 10|Liquidazione|cg4 -2
10|Riepilogo progressivi|cg0 -3 10|Deleghe|ba3 -0 %del
10|Stampa registri|cg4 -3 10|Stampa deleghe|cg1 -3
10|Progressivi allegati|cg0 -2 10|Riepilogo progressivi|cg0 -3
10|Stampa allegati|cg3 -2 10|Stampa registri|cg4 -3
11|Tabelle ministeriali| 10|Progressivi allegati|cg0 -2
11|Comuni|ba4 -0 10|Stampa allegati|cg3 -2
11|Uffici concessioni|ba3 -0 %ucc 11|Tabelle ministeriali|1
11|Uffici imposte dirette|ba3 -0 %uid 11|Comuni|ba4 -0
11|Uffici IVA|ba3 -0 %uiv 11|Uffici concessioni|ba3 -0 %ucc
11|Uffici registro|ba3 -0 %ure 11|Uffici imposte dirette|ba3 -0 %uid
11|Centri servizio|ba3 -0 %ucs 11|Uffici IVA|ba3 -0 %uiv
12|Stampa tabelle ministeriali| 11|Uffici registro|ba3 -0 %ure
12|Comuni|ba6 -1 11|Centri servizio|ba3 -0 %ucs
12|Uffici concessioni|ba3 -1 %ucc 12|Stampa tabelle ministeriali|3
12|Uffici imposte dirette|ba3 -1 %uid 12|Comuni|ba6 -1
12|Uffici IVA|ba3 -1 %uiv 12|Uffici concessioni|ba3 -1 %ucc
12|Uffici registro|ba3 -1 %ure 12|Uffici imposte dirette|ba3 -1 %uid
12|Centri servizio|ba3 -1 %ucs 12|Uffici IVA|ba3 -1 %uiv
13|Scelta Contabilita'| 12|Uffici registro|ba3 -1 %ure
13|Tabelle ditta|7 12|Centri servizio|ba3 -1 %ucs
13|Stampa tabelle ditta|8 13|Scelta Contabilita'|
13|Prima nota|9 13|Tabelle ditta|7
14|Gestione Libro Unico 13|Stampa tabelle ditta|8
14|Tabella Libro Unico|ba3 -4 13|Prima nota|9
14|Tabella Vidimazioni|ba3 -0 %vid 14|Gestione Libro Unico|1
14|Stampa Indici Libro Unico|ba3 -5 14|Tabella Libro Unico|ba3 -4
14|Tabella Vidimazioni|ba3 -0 %vid
14|Stampa Indici Libro Unico|ba3 -5