diff --git a/ba/ba1.h b/ba/ba1.h index c6c574628..4b83e64ec 100755 --- a/ba/ba1.h +++ b/ba/ba1.h @@ -1,15 +1,8 @@ #ifndef __BA1_H #define __BA1_H -#ifdef MAIN -#define extern -#endif - -#ifdef MAIN -#undef extern -#endif +int ba1100(int argc, char** argv); +int ba1200(int argc, char** argv); #endif // __BA1_H -int ba1100(int argc, char* argv[]); -int ba1200(int argc, char* argv[]); diff --git a/ba/ba1100.cpp b/ba/ba1100.cpp index c5435ac0c..059a8a82f 100755 --- a/ba/ba1100.cpp +++ b/ba/ba1100.cpp @@ -16,23 +16,23 @@ class BA1100_application : public TApplication { -TDir_sheet * _browse; -TMask * _mask; -long _firm; -TRec_sheet* _rec; + TDir_sheet * _browse; + TMask * _mask; + long _firm; + TRec_sheet* _rec; protected: -virtual bool menu (MENU_TAG); -virtual bool create () ; -virtual bool destroy(); -void insert_riga(long, TToken_string&); -void edit_riga(long, TToken_string&); -void delete_riga(); -virtual bool extended_firm() const { return TRUE; } -void update(); -void update_dir(); -void convert_dir(); -virtual void print(); + virtual bool menu (MENU_TAG); + virtual bool create () ; + virtual bool destroy(); + void insert_riga(long, TToken_string&); + void edit_riga(long, TToken_string&); + void delete_riga(); + virtual bool extended_firm() const { return TRUE; } + void update(); + void update_dir(); + void convert_dir(); + virtual void print(); public: BA1100_application() : _browse(NULL), _rec(NULL) {} @@ -44,9 +44,9 @@ void BA1100_application::print() { if (_rec == NULL) return; const char* table[] = {"", "Alfanumerico", "Intero", "Intero Lungo", - "Reale", "Data", "Intero", "Carattere", - "Booleano", "Intero Zerofilled", - "Intero Lungo Zerofilled"}; + "Reale", "Data", "Intero", "Carattere", + "Booleano", "Intero Zerofilled", + "Intero Lungo Zerofilled"}; TPrinter& p = printer(); TPrintrow row; TToken_string s; @@ -56,7 +56,7 @@ void BA1100_application::print() p.footerlen(4); row.reset(); row.put(format("Lista tracciato %s (%s)", _rec->dir()->des(), - _rec->dir()->name()), 2); + _rec->dir()->name()), 2); row.put("Pag. @#", 66); p.setheaderline(2, row); row.reset(); @@ -100,28 +100,28 @@ void BA1100_application::print() bool BA1100_application::create() // initvar e arrmask { - _firm = get_firm(); - _mask = new TMask ("ba1100a"); - set_firm(); - set_printer(new TPrinter()); - _browse = new TDir_sheet ("Manutenzione file di sistema") ; - _browse->add_button(DLG_INSFILE, "Inserisce", K_F4); - _browse->add_button(DLG_CONVERT, "Converte", K_F7); - _browse->add_button(DLG_ADDFILE, "Aggiunge", K_F8); - dispatch_e_menu(BAR_ITEM(1)); - return TRUE ; + _firm = get_firm(); + _mask = new TMask ("ba1100a"); + set_firm(); + set_printer(new TPrinter()); + _browse = new TDir_sheet ("Manutenzione file di sistema") ; + _browse->add_button(DLG_INSFILE, "Inserisce", K_F4); + _browse->add_button(DLG_CONVERT, "Converte", K_F7); + _browse->add_button(DLG_ADDFILE, "Aggiunge", K_F8); + dispatch_e_menu(BAR_ITEM(1)); + return TRUE ; } bool BA1100_application::destroy() // releasev e arrmask { - TPrinter* p = &printer(); - - delete p; - if (_firm) set_firm(_firm); - if (_browse != NULL) delete _browse; - delete _mask; - return TRUE ; + TPrinter* p = &printer(); + + delete p; + if (_firm) set_firm(_firm); + if (_browse != NULL) delete _browse; + delete _mask; + return TRUE ; } @@ -137,10 +137,10 @@ void BA1100_application::insert_riga (long riga_sel, TToken_string& riga) _mask->hide(FLD_EXTEND); _mask->hide(FLD_EOX); _mask->set (FLD_NUM, riga.get(0)); - + if (_mask->run() == K_ENTER) { -/* shift di uno in avanti degli elementi del direttorio partendo dall'ultimo */ + /* shift di uno in avanti degli elementi del direttorio partendo dall'ultimo */ for (int i=num_files; i>=logicnum; i--) { _browse->dir()->get (i, _nolock, _nordir, _sysdirop); @@ -149,8 +149,8 @@ void BA1100_application::insert_riga (long riga_sel, TToken_string& riga) _browse->rec()->put (i + 1); } _browse->dir()->set(_mask->get(FLD_NOME), _mask->get_long(FLD_EOD), - _mask->get_long(FLD_FLAG), _mask->get (FLD_DESC), - _mask->get (FLD_FORMULA)); + _mask->get_long(FLD_FLAG), _mask->get (FLD_DESC), + _mask->get (FLD_FORMULA)); _browse->dir()->put(logicnum, _nordir, _sysdirop); _browse->rec()->zero(); _browse->rec()->put(logicnum); @@ -164,53 +164,53 @@ void BA1100_application::insert_riga (long riga_sel, TToken_string& riga) void BA1100_application::edit_riga (long riga_sel, TToken_string& riga) { -KEY tasto; -FileDes dep; -TDir d; -const int logicnum = int(riga_sel) + 1; + KEY tasto; + FileDes dep; + TDir d; + const int logicnum = int(riga_sel) + 1; -_mask->enable(DLG_PACK); -_mask->enable(DLG_RECORD); -_mask->enable(DLG_LOAD); -_mask->enable(DLG_DUMP); -_mask->set (FLD_NUM, riga.get(0)); -_mask->set (FLD_NOME, riga.get()); -_mask->set (FLD_EOD, riga.get()); -_mask->set (FLD_EOX, riga.get()); -_mask->set (F_LEN, riga.get()); -_mask->set (FLD_DESC, riga.get()); -_mask->set (FLD_FORMULA, riga.get()); -_mask->set (FLD_FLAG, riga.get()); -_mask->reset (FLD_EXTEND); + _mask->enable(DLG_PACK); + _mask->enable(DLG_RECORD); + _mask->enable(DLG_LOAD); + _mask->enable(DLG_DUMP); + _mask->set (FLD_NUM, riga.get(0)); + _mask->set (FLD_NOME, riga.get()); + _mask->set (FLD_EOD, riga.get()); + _mask->set (FLD_EOX, riga.get()); + _mask->set (F_LEN, riga.get()); + _mask->set (FLD_DESC, riga.get()); + _mask->set (FLD_FORMULA, riga.get()); + _mask->set (FLD_FLAG, riga.get()); + _mask->reset (FLD_EXTEND); -const TRecnotype oldeox = atol(_mask->get(FLD_EOX)); -const bool com = strcmp(prefhndl->name(), "com") == 0 || !*prefhndl->name(); -const char* name = _mask->get(FLD_NOME); -const bool enable_extend = (com ? *name == '%' : *name != '%') && (riga_sel > 0); + const TRecnotype oldeox = atol(_mask->get(FLD_EOX)); + const bool com = strcmp(prefhndl->name(), "com") == 0 || !*prefhndl->name(); + const char* name = _mask->get(FLD_NOME); + const bool enable_extend = (com ? *name == '%' : *name != '%') && (riga_sel > 0); -_mask->show(FLD_EXTEND, enable_extend); -_mask->show(FLD_EOX, enable_extend); -tasto = _mask->run(); + _mask->show(FLD_EXTEND, enable_extend); + _mask->show(FLD_EOX, enable_extend); + tasto = _mask->run(); -switch (tasto) -{ - case K_F4: - { - const TFilename filename(_mask->get(FLD_NOME)); - - if (logicnum > 1) + switch (tasto) { + case K_F4: + { + const TFilename filename(_mask->get(FLD_NOME)); + + if (logicnum > 1) + { TEdit_file ef; ef.browse(logicnum, filename); - } - } - break; + } + } + break; case K_F5: case K_F6: case K_F7: case K_F8: case K_ENTER: - { +{ strcpy (dep.SysName,_mask->get (FLD_NOME)); dep.EOD = atol(_mask->get (FLD_EOD)); dep.Flags = atol(_mask->get (FLD_FLAG)); @@ -220,25 +220,25 @@ switch (tasto) _browse->dir()->get(logicnum, _lock, _nordir, _sysdirop); _browse->dir()->set(dep.SysName, dep.EOD, dep.Flags, - dep.Des, dep.FCalc); + dep.Des, dep.FCalc); _browse->dir()->put(logicnum, _nordir, _sysdirop); - { - TSystemisamfile f(logicnum); +{ + TSystemisamfile f(logicnum); - if (eox != oldeox) - { + if (eox != oldeox) + { d.get(logicnum); if (!fexist(d.name())) f.build(eox); else f.extend(eox); _browse->dir()->get(logicnum, _nolock, _nordir, _sysdirop); - } - if (tasto == K_F5) - { + } + if (tasto == K_F5) + { f.packfile(); f.packindex(); - } - else + } + else if (tasto == K_F6) { enable_menu_item(M_FILE_PRINT); @@ -249,64 +249,64 @@ switch (tasto) disable_menu_item(M_FILE_PRINT); } else - if (tasto == K_F7) - { - TMask m("ba1100b"); - TFilename nout(dep.SysName); - - nout.strip("$%"); - nout.ext("txt"); - m.set(FLD_OUTFILE, nout); - if (m.run() == K_ENTER) + if (tasto == K_F7) { - const char fs = *esc(m.get(FLD_FS)); - const char fd = *esc(m.get(FLD_FD)); - const char rs = *esc(m.get(FLD_RS)); - const bool withdel = m.get(FLD_WITHDEL).not_empty(); + TMask m("ba1100b"); + TFilename nout(dep.SysName); - f.dump(m.get(FLD_OUTFILE), atoi(m.get(FLD_KEYNO)), fs, fd, rs, withdel); + nout.strip("$%"); + nout.ext("txt"); + m.set(FLD_OUTFILE, nout); + if (m.run() == K_ENTER) + { + const char fs = *esc(m.get(FLD_FS)); + const char fd = *esc(m.get(FLD_FD)); + const char rs = *esc(m.get(FLD_RS)); + const bool withdel = m.get(FLD_WITHDEL).not_empty(); + + f.dump(m.get(FLD_OUTFILE), atoi(m.get(FLD_KEYNO)), fs, fd, rs, withdel); + } } - } - else - if (tasto == K_F8) - { - TMask m("ba1100c"); - TFilename ninp(dep.SysName); + else + if (tasto == K_F8) + { + TMask m("ba1100c"); + TFilename ninp(dep.SysName); - ninp.strip("$%"); - ninp.ext("txt"); - m.set(FLD_INFILE, ninp); - if (m.run() == K_ENTER) - { - char fs = *esc(m.get(FLD_FS)); - char fd = *esc(m.get(FLD_FD)); - char rs = *esc(m.get(FLD_RS)); + ninp.strip("$%"); + ninp.ext("txt"); + m.set(FLD_INFILE, ninp); + if (m.run() == K_ENTER) + { + char fs = *esc(m.get(FLD_FS)); + char fd = *esc(m.get(FLD_FD)); + char rs = *esc(m.get(FLD_RS)); - f.load(m.get(FLD_INFILE), fs, fd, rs); - } - } - } - } - break; - default: - break; - } + f.load(m.get(FLD_INFILE), fs, fd, rs); + } + } +} +} +break; +default: +break; +} } void BA1100_application::delete_riga () { - _browse->dir()->get(LF_DIR); - if (_browse->dir()->eod() == 0) return; + _browse->dir()->get(LF_DIR); + if (_browse->dir()->eod() == 0) return; - int logicnum = (int)_browse->items(); + int logicnum = (int)_browse->items(); - _browse->dir()->get(logicnum); - if (yesnocancel_box("Vuoi davvero eliminare l' archivio %s", _browse->dir()->name()) != K_YES) return; - _browse->dir()->get(LF_DIR); - _browse->dir()->eod()--; - _browse->set_items(_browse->dir()->eod()); - _browse->dir()->put(LF_DIR); + _browse->dir()->get(logicnum); + if (yesnocancel_box("Vuoi davvero eliminare l' archivio %s", _browse->dir()->name()) != K_YES) return; + _browse->dir()->get(LF_DIR); + _browse->dir()->eod()--; + _browse->set_items(_browse->dir()->eod()); + _browse->dir()->put(LF_DIR); } @@ -329,38 +329,38 @@ void BA1100_application::update_dir() for (int i = 2; i <= items; i++) { - prefhndl->set(""); - d.get(i, _nolock, _nordir, _sysdirop); - if (d.flags() == -1) - { - TString s(d.name()); - word len = d.len(); - prefhndl->set(pref); - d.get(i, _nolock, _nordir, _sysdirop); - if (len != d.len() && s != d.name()) - { - d.set(s, d.eox(), 0L, d.des(), d.expr()); - d.put(i, _nordir, _sysdirop); + prefhndl->set(""); + d.get(i, _nolock, _nordir, _sysdirop); + if (d.flags() == -1) + { + TString s(d.name()); + word len = d.len(); + prefhndl->set(pref); + d.get(i, _nolock, _nordir, _sysdirop); + if (len != d.len() && s != d.name()) + { + d.set(s, d.eox(), 0L, d.des(), d.expr()); + d.put(i, _nordir, _sysdirop); } } } - prefhndl->set(pref); + prefhndl->set(pref); if (items >= orig_items) return; for (i = items + 1; i <= orig_items; i++) { - prefhndl->set(""); - d.get(i, _nolock, _nordir, _sysdirop); - prefhndl->set(pref); - d.set_len(0); - d.flags() = 0L; - d.put(i, _nordir, _sysdirop); - } - prefhndl->set(pref); - d.get(LF_DIR, _nolock, _nordir, _sysdirop); - d.eod() = orig_items; - d.put(LF_DIR, _nordir, _sysdirop); + prefhndl->set(""); + d.get(i, _nolock, _nordir, _sysdirop); + prefhndl->set(pref); + d.set_len(0); + d.flags() = 0L; + d.put(i, _nordir, _sysdirop); + } + prefhndl->set(pref); + d.get(LF_DIR, _nolock, _nordir, _sysdirop); + d.eod() = orig_items; + d.put(LF_DIR, _nordir, _sysdirop); } void BA1100_application::convert_dir() @@ -405,13 +405,13 @@ void BA1100_application::update() for (ditte.first(); !ditte.eof(); ditte.next()) { - set_firm(ditte.get_long("CODDITTA")); - const TRecnotype rec = ditte.recno(); - ditte.close(); - update_dir(); + set_firm(ditte.get_long("CODDITTA")); + const TRecnotype rec = ditte.recno(); + ditte.close(); + update_dir(); convert_dir(); - ditte.open(); - ditte.readat(rec); + ditte.open(); + ditte.readat(rec); } if (firm > 0) set_firm(firm); else prefhndl->set(pref); @@ -420,57 +420,57 @@ void BA1100_application::update() bool BA1100_application::menu(MENU_TAG m) { -TToken_string riga; -long riga_selezionata; -bool done = FALSE; + TToken_string riga; + long riga_selezionata; + bool done = FALSE; -_browse->rebuild(); + _browse->rebuild(); -while (!done) + while (!done) + { + + disable_menu_item(M_FILE_NEW); + + switch (_browse->run()) + { + case K_INS: + riga_selezionata = _browse->selected(); + riga = _browse->row(); + insert_riga (riga_selezionata, riga); + break; + + case K_ENTER: + riga_selezionata = _browse->selected(); + riga = _browse->row(); + edit_riga (riga_selezionata, riga); + break; + + case K_DEL: delete_riga(); break; + + case K_ESC: done = TRUE; break; + + case K_F7: update(); break; + + case K_F8: + _browse->add(); + riga_selezionata = _browse->items() - 1; + riga = _browse->row(riga_selezionata); + edit_riga (riga_selezionata, riga); + break; + + default: break; + } + + enable_menu_item(M_FILE_NEW); + } + return TRUE; +} + +int ba1100(int argc, char** argv) { + BA1100_application a; - disable_menu_item(M_FILE_NEW); - - switch (_browse->run()) - { - case K_INS: - riga_selezionata = _browse->selected(); - riga = _browse->row(); - insert_riga (riga_selezionata, riga); - break; - - case K_ENTER: - riga_selezionata = _browse->selected(); - riga = _browse->row(); - edit_riga (riga_selezionata, riga); - break; - - case K_DEL: delete_riga(); break; - - case K_ESC: done = TRUE; break; - - case K_F7: update(); break; - - case K_F8: - _browse->add(); - riga_selezionata = _browse->items() - 1; - riga = _browse->row(riga_selezionata); - edit_riga (riga_selezionata, riga); - break; - - default: break; - } - - enable_menu_item(M_FILE_NEW); -} -return TRUE; -} - -int ba1100(int argc, char* argv[]) -{ - BA1100_application a; - - a.run(argc, argv, "Gestione files"); - return 0; + a.run(argc, argv, "Gestione files"); + return 0; } diff --git a/ba/ba1101.cpp b/ba/ba1101.cpp index 535a38a59..c6f4dbf82 100755 --- a/ba/ba1101.cpp +++ b/ba/ba1101.cpp @@ -24,19 +24,19 @@ void TDir_sheet::add () { _dir->get(LF_DIR, _lock, _nordir, _sysdirop); - const int nitems = _dir->eod() + 1; + const int nitems = (int)_dir->eod() + 1; _dir->eod() = nitems; _dir->put(LF_DIR); _dir->zero(); _dir->put(nitems); _items = nitems; - -// select(nitems - 1); + + // select(nitems - 1); } TDir_sheet::TDir_sheet(const char* title) - : TSheet(-1,-1, 0, 0, title,"N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Formula@33|Flags@7", 0xC) +: TSheet(-1,-1, 0, 0, title,"N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Formula@33|Flags@7", 0xC) { _dir = new TDir; _rec = new TTrec; @@ -115,15 +115,15 @@ HIDDEN bool len_handler(TMask_field& f, KEY key) switch (typef) { - case _alfafld: return len <= 254; - case _intfld: return len <= 5; - case _longfld: return len <= 10; - case _realfld: return len <= 18; - case _wordfld: return len <= 5; - case _intzerofld: return len <= 5; - case _longzerofld: return len <= 10; - default: return TRUE; - } + case _alfafld: return len <= 254; + case _intfld: return len <= 5; + case _longfld: return len <= 10; + case _realfld: return len <= 18; + case _wordfld: return len <= 5; + case _intzerofld: return len <= 5; + case _longzerofld: return len <= 10; + default: return TRUE; + } return TRUE; } @@ -189,57 +189,57 @@ void TRec_sheet::edit() { switch (_mask->run()) { - case K_SAVE: + case K_SAVE: + { + nfields = f1.items(); + _rec->set_fields(nfields); + for (i = 0; i < nfields; i++) { - nfields = f1.items(); - _rec->set_fields(nfields); - for (i = 0; i < nfields; i++) - { - TToken_string& s = f1.row(i); - _rec->update_fielddef(i, s); - } - _rec->rehash(); - nkeys = f2.items(); - _rec->set_keys(nkeys); - for (i = 0; i < nkeys; i++) - { - TToken_string& s = f2.row(i); - _rec->update_keydef(i, s); - } - save(); + TToken_string& s = f1.row(i); + _rec->update_fielddef(i, s); } - case K_ESC: - return; - case K_F5: - MainApp()->dispatch_e_menu(M_FILE_PRINT); - break; - case K_F6: - { + _rec->rehash(); + nkeys = f2.items(); + _rec->set_keys(nkeys); + for (i = 0; i < nkeys; i++) + { + TToken_string& s = f2.row(i); + _rec->update_keydef(i, s); + } + save(); + } + case K_ESC: + return; + case K_F5: + MainApp()->dispatch_e_menu(M_FILE_PRINT); + break; + case K_F6: + { TMask m("ba1100f"); - TFilename nout(_dir->name()); + TFilename nout(_dir->name()); - nout.strip("$%"); + nout.strip("$%"); nout.ext("trr"); m.set(F_NOMEF, nout); if (m.run() == K_ENTER) { TString80 nf(m.get(F_NOMEF)); - + if (nf.not_empty()) { ofstream out((const char*) nf); - + out << *_rec; } - } - } - break; - case K_F7: - { + } + } + break; + case K_F7: + { TMask m("ba1100f"); - TFilename nout(_dir->name()); + TFilename nout(_dir->name()); - nout.strip("$%"); + nout.strip("$%"); nout.ext("trr"); m.set(F_NOMEF, nout); if (m.run() == K_ENTER) @@ -252,17 +252,17 @@ void TRec_sheet::edit() in >> *_rec; nfields = _rec->fields(); - f1.reset(); + f1.reset(); for (i = 0; i < nfields; i++) f1.row(i) = _rec->fielddef(i); nkeys = _rec->keys(); - f2.reset(); + f2.reset(); for (i = 0; i < nkeys; i++) f2.row(i) = _rec->keydef(i); } } - } - break; - default: break; - } + } + break; + default: break; + } } } diff --git a/ba/ba1200.cpp b/ba/ba1200.cpp index 9ddc74bad..1d82d4e2d 100755 --- a/ba/ba1200.cpp +++ b/ba/ba1200.cpp @@ -11,33 +11,41 @@ class TTest_application : public TApplication { protected: - bool create() { dispatch_e_menu(BAR_ITEM(1)); return TRUE; } - bool destroy() { return TRUE; } - bool menu(MENU_TAG); + bool create() { dispatch_e_menu(BAR_ITEM(1)); return TRUE; } + bool destroy() { return TRUE; } + bool menu(MENU_TAG); public: - TTest_application() {} + TTest_application() {} }; bool TTest_application::menu(MENU_TAG) { TLocalisamfile tab(LF_TABCOM); const TRecnotype n = tab.items(); - TProgind p(n, "Lettura file tabelle comuni", TRUE, TRUE, 32); - - const time_t start = time(NULL); - TRecnotype r = 1; + time_t start; + TRecnotype r = 1; TString80 msg; +{ + TProgind p(n, "Lettura file tabelle comuni", TRUE, TRUE, 32); + start = time(NULL); for (tab.first(); tab.good(); tab.next(), r++) - { - msg.format("%ld rec : %ld sec", r, time(NULL) - start); - p.addstatus(1); - p.set_text(msg); + { + if ((r % 50) == 0) + { + msg.format("%ld records %ld sec", r, time(NULL) - start); + p.setstatus(r); + p.set_text(msg); + } if (p.iscancelled()) break; } - - return TRUE; +} +const time_t t = time(NULL) - start; +msg.format("%ld records in %ld sec\n%lg records per sec", r, t, (double)r/t); +message_box(msg); + +return TRUE; } /////////////////////////////////////////////////////////// @@ -45,8 +53,8 @@ bool TTest_application::menu(MENU_TAG) int ba1200(int argc, char** argv) { - TTest_application a; + TTest_application a; a.run(argc, argv, "Test File"); - return 0; + return 0; } diff --git a/ba/batb%tpd.uml b/ba/batb%tpd.uml index 0da530170..9cdc5b3ed 100755 --- a/ba/batb%tpd.uml +++ b/ba/batb%tpd.uml @@ -1,7 +1,7 @@ #include "ba3100.h" #include "batb%tpd.h" -TOOLBAR "" 0 20 0 2 +TOOLBAR "" 0 20 0 2 #include ENDPAGE @@ -42,10 +42,10 @@ BEGIN PROMPT 4 6 "Natura documento " FIELD LF_TABCOM->I0 HELP "Indicare la natura del documento" + ITEM " |Altro" MESSAGE DISABLE,F_CORRISP|RESET,F_CORRISP ITEM "1|Vendite" MESSAGE ENABLE,F_CORRISP ITEM "2|Acquisti" MESSAGE DISABLE,F_CORRISP|RESET,F_CORRISP ITEM "9|IVA in genere" MESSAGE ENABLE,F_CORRISP - ITEM " |Altro" MESSAGE DISABLE,F_CORRISP|RESET,F_CORRISP GROUP GR_RECORD_PROTECTED END