From 5ee2fbbd4cd14f7dddd5d5c41204dd1359f108e1 Mon Sep 17 00:00:00 2001 From: guy Date: Tue, 9 May 1995 13:27:01 +0000 Subject: [PATCH] Migliorato caricamento immagini del menu, modificata richiesta ditta modifica alle maschere del libro unico e relativi indici Gestiti permessi d'uso del programma di manutenzione(Superprassi-Umano mortale) git-svn-id: svn://10.65.10.50/trunk@1331 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba0.cpp | 133 +++++++++++++++++----------- ba/ba1100.cpp | 232 +++++++++++++++++++++++++++++-------------------- ba/ba1100.h | 8 +- ba/ba1100a.uml | 83 +++++++++++------- ba/ba1100b.uml | 8 +- ba/ba1101.cpp | 26 +++++- ba/ba1102.cpp | 26 ++++-- ba/ba1300.h | 2 +- ba/ba1301.cpp | 4 +- ba/ba3.cpp | 2 + ba/ba3.h | 1 + ba/ba3.url | 9 ++ ba/batbban.uml | 4 +- ba/batbinl.uml | 7 +- ba/batbreg.uml | 2 +- ba/prassi.mnu | 6 +- 16 files changed, 347 insertions(+), 206 deletions(-) diff --git a/ba/ba0.cpp b/ba/ba0.cpp index d68b45c9de..a19112391 100755 --- a/ba/ba0.cpp +++ b/ba/ba0.cpp @@ -8,20 +8,6 @@ #include #include -/* - #if XVT_OS == XVT_OS_SCOUNIX - #include - #else - #include - #endif - - #if XVT_OS == XVT_OS_WIN - #include - #else - #include - #endif - */ - #include "ba0.h" #include "ba0100a.h" @@ -37,22 +23,16 @@ protected: virtual void handler(WINDOW win, EVENT* ep); public: - TPicture_mask(const char* name, int dx, int dy, TImage & image, bool remap); + TPicture_mask(const char* name, int dx, int dy, TImage& image); virtual ~TPicture_mask() {} }; -TPicture_mask::TPicture_mask(const char* name, int dx, int dy, TImage & image, bool remap) +TPicture_mask::TPicture_mask(const char* name, int dx, int dy, TImage& image) : TMask(name, 1, dx, dy), _image(image) { if (_image.ok()) - { - if (!remap && MASK_BACK_COLOR != COLOR_DKCYAN) - _image.set_clut(6, MASK_BACK_COLOR); - else - _image.set_palette(win()); - _image.set_pos(1, 1); - } + _image.set_palette(win()); } @@ -66,21 +46,15 @@ void TPicture_mask::handler(WINDOW win, EVENT* ep) #if XVT_OS == XVT_OS_WIN if (_image.ok()) { - RCT src; xvt_rect_set(&src, 0, 0, _image.width(), _image.height()); - const short maxx = 42*CHARX; - const short maxy = short((long)maxx*src.bottom/src.right); - RCT dst; xvt_rect_set(&dst, 1, 1, maxx, maxy); - _image.draw(win, dst); + _image.draw(win); } else #endif { + TTemp_window w(win); const int max = 16; for (int i = 0; i < max; i++) - { - TTemp_window w(win); w.rect(i*2, i, max-i*2, max-i); - } } } } @@ -100,7 +74,7 @@ class TMenu_application : public TApplication TArray _modules, _images; int _level, _max; - bool _ditta_asked; + /* bool _ditta_asked; */ static int _last_button; static bool _find_button; @@ -112,6 +86,7 @@ protected: int find_menu(const char* s) const; bool check_user(); virtual bool create(); + virtual bool destroy(); virtual bool menu(MENU_TAG m); virtual bool build_firm_data(long cod, bool flagcom = FALSE); @@ -121,7 +96,7 @@ protected: bool module_enabled(int module) const { return has_module(module);} public: - TMenu_application(const char* name) : _name(name), _ditta_asked(FALSE) {} + TMenu_application(const char* name) : _name(name) /*, _ditta_asked(FALSE) */ {} }; int TMenu_application::_last_button = 0; @@ -371,7 +346,7 @@ int TMenu_application::do_level() const int width = 78; const int height = 18; const int bwidth = 20; - const int x = width-bwidth-12; + const int x = width / 2; short id = (short)row.get_int(); if (_images.objptr(id) == NULL) @@ -379,12 +354,21 @@ int TMenu_application::do_level() char* n = format("ba%02d.bmp", id); if (id > 0 && !fexist(n)) n = format("ba%02d.bmp", id = 0); - TImage * image = new TImage(n); + + TImage orig(n); + RCT src; xvt_rect_set(&src, 0, 0, orig.width(), orig.height()); + const short maxx = width * CHARX / 2 - 4; + const short maxy = short((long)maxx*src.bottom/src.right); + + TImage* image = new TImage(orig, maxx, maxy); + if (id == 0 && MASK_BACK_COLOR != COLOR_DKCYAN) + image->set_clut(6, MASK_BACK_COLOR); + image->set_pos(1, 1); _images.add(image, id); } - TPicture_mask menu(head, width, height, (TImage &) _images[id], id != 0); + TPicture_mask menu(head, width, height, (TImage &) _images[id]); int y = 1; @@ -480,21 +464,54 @@ bool TMenu_application::check_user() users.put("USERNAME", utente); pwd = ""; - if (users.read() == NOERR) + + int err = users.read(_isequal, _lock); + if (err == NOERR) + { pwd = decode(users.get("PASSWORD")); + } else if (utente == "PRASSI") - pwd = "pr.assi"; + { + pwd = "pr.assi"; + users.zero(); + users.put("USERNAME", utente); + users.put("USERDESC", utente); + users.put("PASSWORD", encode(pwd)); + users.write(); + err = users.read(_isequal, _lock); + } ok = pwd.not_empty() && pwd == m.get(F_PASSWORD); + if (ok) - user() = utente; + { + ok = !users.get_bool("CONNECTED"); + if (!ok) + { + ok = yesno_box("L'utente %s risulta essere gia' collegato\n" + "Si desidera continuare ugualmente?", (const char*)utente); + } + if (ok) + user() = utente; + } else { error_box("Utente e/o password errata:\nfare attenzione alle maiuscole"); m.set(F_PASSWORD,""); } - } + + if (err == NOERR) + { + if (ok) + { + users.put("CONNECTED", "X"); + users.rewrite(); + } + else users.read(_isequal, _unlock); + } + } + return ok; } @@ -515,6 +532,19 @@ bool TMenu_application::create() return TRUE; } +bool TMenu_application::destroy() +{ + TLocalisamfile users(LF_USER); + users.put("USERNAME", user()); + int err = users.read(_isequal, _lock); + if (err == NOERR) + { + users.zero("CONNECTED"); + users.rewrite(); + } + + return TRUE; +} bool TMenu_application::menu(MENU_TAG) { @@ -540,7 +570,7 @@ bool TMenu_application::menu(MENU_TAG) { const TString16 flags(row.get()); if (flags.find('F') >= 0) - _ditta_asked = ok = set_firm(); + /*_ditta_asked = */ ok = set_firm(); if (ok) { refarray[i++] = _level; @@ -549,15 +579,16 @@ bool TMenu_application::menu(MENU_TAG) } else { - const TString16 module(cmd2name(option)); - if (!_ditta_asked && module.left(2) == "cg" && module != "cg5100") - _ditta_asked = ok = set_firm(); - if (ok) - { - prefix().set("DEF"); // Aggiorna prefix - TExternal_app a(option); - a.run(); - } + /* + const TString16 module(cmd2name(option)); + if (!_ditta_asked && module.left(2) == "cg" && module.left(3) != "cg5") + _ditta_asked = ok = set_firm(); + */ + prefix().set("DEF"); // Aggiorna prefix + if (get_firm() == 0) + set_firm(); + TExternal_app a(option); + a.run(); } } } @@ -580,6 +611,8 @@ bool TMenu_application::menu(MENU_TAG) return FALSE; } + + int main(int argc, char** argv) { TApplication::check_parameters(argc, argv); diff --git a/ba/ba1100.cpp b/ba/ba1100.cpp index 698b5e445..c2a57c47d 100755 --- a/ba/ba1100.cpp +++ b/ba/ba1100.cpp @@ -31,10 +31,10 @@ struct direct class TManutenzione_app : 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); @@ -52,7 +52,7 @@ protected: const char* dumpfilename(const FileDes& dep) const; public: - TManutenzione_app() : _browse(NULL), _rec(NULL), _mask(NULL) {} + TManutenzione_app() : _browse(NULL), _rec(NULL), _mask(NULL), _firm(0) {} }; @@ -253,12 +253,23 @@ bool TManutenzione_app::create() // initvar e arrmask } else { + if (!set_firm()) + return FALSE; + + const bool superprassi = user() == "PRASSI"; + _mask = new TMask ("ba1100a"); - set_firm(); - _browse = new TDir_sheet ("Manutenzione file di sistema") ; - _browse->add_button(DLG_INSFILE, "Inserisce", K_F6); - _browse->add_button(DLG_CONVERT, "Converte", K_F7); - _browse->add_button(DLG_ADDFILE, "Aggiunge", K_F8); + _browse = new TDir_sheet ("Manutenzione file di sistema", superprassi ? 0xC : 0x8); + + if (superprassi) + { + _mask->enable(-1); // Abilita campi privilegiati + + _browse->add_button(DLG_INSFILE, "~Inserisci", K_F6); + _browse->add_button(DLG_CONVERT, "~Converti", K_F7); + _browse->add_button(DLG_ADDFILE, "~Aggiungi", K_F8); + } + dispatch_e_menu(BAR_ITEM(1)); } enable_menu_item(M_FILE_PRINT); @@ -337,11 +348,14 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga) FileDes dep; TDir d; const int logicnum = int(riga_sel) + 1; - - _mask->enable(DLG_PACK); - _mask->enable(DLG_RECORD); - _mask->enable(DLG_LOAD); + + const bool superprassi = user() == "PRASSI"; + + _mask->enable(DLG_PACK, superprassi); + _mask->enable(DLG_RECORD, superprassi); + _mask->enable(DLG_LOAD, superprassi); _mask->enable(DLG_DUMP); + _mask->show(F_TAB, logicnum >= LF_TABGEN && logicnum <= LF_TAB); _mask->set (FLD_NUM, riga.get(0)); _mask->set (FLD_NOME, riga.get()); @@ -366,100 +380,102 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga) switch (tasto) { case K_F4: - { - const TFilename filename(_mask->get(FLD_NOME)); - if (logicnum > 1) { + const TFilename filename(_mask->get(FLD_NOME)); TEdit_file ef; ef.browse(logicnum, filename); } - } - 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)); - strcpy (dep.Des,_mask->get (FLD_DESC)); - strcpy (dep.FCalc,_mask->get (FLD_FORMULA)); - const TRecnotype eox = atol(_mask->get(FLD_EOX)); - - _browse->dir()->get(logicnum, _lock, _nordir, _sysdirop); - _browse->dir()->set(dep.SysName, dep.EOD, dep.Flags, - dep.Des, dep.FCalc); - _browse->dir()->put(logicnum, _nordir, _sysdirop); - -{ - TSystemisamfile f(logicnum); - - 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) - { - f.packfile(); - f.packindex(); - } - else - if (tasto == K_F6) + break; + case K_F5: + case K_F6: + case K_F8: + if (!superprassi) { - _rec = new TRec_sheet(logicnum, _mask->get(F_TAB)); - _rec->edit(); - delete _rec; - _rec = NULL; + error_box("Funzione non ammessa per l'utente %s", (const char*)user()); + break; + } + case K_F7: + case K_ENTER: + { + strcpy (dep.SysName,_mask->get (FLD_NOME)); + dep.EOD = atol(_mask->get (FLD_EOD)); + dep.Flags = atol(_mask->get (FLD_FLAG)); + strcpy (dep.Des,_mask->get (FLD_DESC)); + strcpy (dep.FCalc,_mask->get (FLD_FORMULA)); + const TRecnotype eox = atol(_mask->get(FLD_EOX)); + + _browse->dir()->get(logicnum, _lock, _nordir, _sysdirop); + _browse->dir()->set(dep.SysName, dep.EOD, dep.Flags, + dep.Des, dep.FCalc); + _browse->dir()->put(logicnum, _nordir, _sysdirop); + + { + TSystemisamfile f(logicnum); + + 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) + { + f.packfile(); + f.packindex(); } else - if (tasto == K_F7) + if (tasto == K_F6) { - TMask m("ba1100b"); - - TFilename nout(dumpfilename(dep)); - m.set(FLD_OUTFILE, nout); - - if (m.run() == K_ENTER) - { - nout = m.get(FLD_OUTFILE); - if (nout.not_empty()) - { - 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_bool(FLD_WITHDEL); - const int keyno = m.get_int(FLD_KEYNO); - f.dump(nout, keyno, fs, fd, rs, withdel); - } - } + _rec = new TRec_sheet(logicnum, _mask->get(F_TAB)); + _rec->edit(); + delete _rec; + _rec = NULL; } else - if (tasto == K_F8) + if (tasto == K_F7) { - TMask m("ba1100c"); - TFilename ninp(dumpfilename(dep)); - m.set(FLD_INFILE, ninp); + TMask m("ba1100b"); + + TFilename nout(dumpfilename(dep)); + m.set(FLD_OUTFILE, nout); + 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 = m.get(FLD_INFILE); - f.load(ninp, fs, fd, rs); + nout = m.get(FLD_OUTFILE); + if (nout.not_empty()) + { + 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_bool(FLD_WITHDEL); + const int keyno = m.get_int(FLD_KEYNO); + f.dump(nout, keyno, fs, fd, rs, withdel); + } } } -} -} -break; -default: -break; -} + else + if (tasto == K_F8) + { + TMask m("ba1100c"); + TFilename ninp(dumpfilename(dep)); + 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 = m.get(FLD_INFILE); + f.load(ninp, fs, fd, rs); + } + } + } + } + break; + default: + break; + } } void TManutenzione_app::delete_riga () @@ -648,8 +664,22 @@ void TManutenzione_app::convert_dir() } void TManutenzione_app::update() - { + TIsamfile utenti(LF_USER, FALSE); + utenti.open(_excllock); + + for (int err = utenti.first(); err == NOERR; err = utenti.next()) + { + const TString16 u = utenti.get("USERNAME"); + if (u != "PRASSI" && utenti.get_bool("CONNECTED")) + { + error_box("La conversione non puo' essere effettuata\n" + "se ci sono utenti collegati: %s", (const char*)u); + utenti.close(); + return; + } + } + long firm = get_firm(); TString pref; if (firm == 0) pref = prefix().name(); @@ -691,6 +721,7 @@ void TManutenzione_app::update() if (firm > 0) set_firm(firm); else prefix().set(pref); + utenti.close(); end_wait(); } @@ -707,7 +738,15 @@ bool TManutenzione_app::menu(MENU_TAG m) disable_menu_item(M_FILE_NEW); - switch (_browse->run()) + KEY key = _browse->run(); + + if (key != K_ENTER && key != K_ESC && user() != "PRASSI") + { + error_box("Operazione non permessa all'utente %s", (const char*)user()); + key = 0; + } + + switch (key) { case K_F6: riga_selezionata = _browse->selected(); @@ -724,8 +763,9 @@ bool TManutenzione_app::menu(MENU_TAG m) case K_DEL: delete_riga(); break; case K_ESC: done = TRUE; break; - - case K_F7: update(); break; + + case K_F7: + update(); break; case K_F8: _browse->add(); diff --git a/ba/ba1100.h b/ba/ba1100.h index 1b4cb6593..e304df025 100755 --- a/ba/ba1100.h +++ b/ba/ba1100.h @@ -22,12 +22,12 @@ class TDir_sheet : public TSheet FileDes _s_dir; long _items; -protected: set_firm(); - - void page_build(long first, byte rows); +protected: + virtual void page_build(long first, byte rows); + virtual bool on_key(KEY k); public: - TDir_sheet(const char* title,const char* columns="N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Formula@33|Flags@7",byte buttons=0xC); + TDir_sheet(const char* title,byte buttons=0x8,const char* col = "N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Formula@33|Flags@7"); ~TDir_sheet(); TDir* dir() const { return _dir; } TTrec* rec() const { return _rec; } diff --git a/ba/ba1100a.uml b/ba/ba1100a.uml index 6c853ee61..069f6a01a 100755 --- a/ba/ba1100a.uml +++ b/ba/ba1100a.uml @@ -1,117 +1,136 @@ #include #include + #include "ba1100a.h" PAGE "Modifica Archivio" -1 -1 70 15 -NUMBER FLD_NUM 4 +NUMBER FLD_NUM 4 BEGIN - FLAGS "RD" + FLAGS "RD" PROMPT 2 1 "Numero " END -STRING FLD_NOME 43 +STRING FLD_NOME 43 BEGIN PROMPT 2 2 "Nome " HELP "Nome del file" + FLAGS "D" + GROUP 1 END -STRING FLD_DESC 43 +STRING FLD_DESC 43 BEGIN PROMPT 2 3 "Descrizione " HELP "Descrizione assegnata al file" + FLAGS "D" + GROUP 1 END -STRING FLD_FORMULA 43 +STRING FLD_FORMULA 43 BEGIN PROMPT 2 4 "Formula " HELP "Formula per il calcolo su file" + FLAGS "D" + GROUP 1 END -NUMBER FLD_EOD 7 +NUMBER FLD_EOD 7 BEGIN PROMPT 2 5 "Record usati " HELP "Numero di record utilizzati" - WARNING "Numero di record errato" - NUM_EXPR {(#THIS_FIELD>=0) && (#THIS_FIELD<=#FLD_EOX)} - FLAGS "R" + WARNING "Numero di record errato" + NUM_EXPR {(#THIS_FIELD>=0) && (#THIS_FIELD<=#FLD_EOX)} + FLAGS "DR" + GROUP 1 END BOOLEAN FLD_EXTEND BEGIN PROMPT 2 6 "Cambia dimensione" HELP "Indicare se si desidera cambiare la dimensione del file" - MESSAGE FALSE DISABLE,FLD_EOX|UNDO,FLD_EOX - MESSAGE TRUE ENABLE,FLD_EOX + MESSAGE FALSE DISABLE,FLD_EOX|UNDO,FLD_EOX + MESSAGE TRUE ENABLE,FLD_EOX + FLAGS "D" + GROUP 1 END -NUMBER FLD_EOX 7 +NUMBER FLD_EOX 7 BEGIN PROMPT 30 6 "Dimensione " HELP "Dimensione da assegnare al file" - WARNING "Dimensione non corretta" - NUM_EXPR {#THIS_FIELD>=#FLD_EOD} - FLAGS "RD" + WARNING "Dimensione non corretta" + NUM_EXPR {#THIS_FIELD>=#FLD_EOD} + FLAGS "DR" END -NUMBER FLD_FLAG 7 +NUMBER FLD_FLAG 7 BEGIN PROMPT 2 7 "Flags " HELP "Flags del file" - FLAGS "R" + FLAGS "DR" + GROUP 1 END -NUMBER F_LEN 7 +NUMBER F_LEN 7 BEGIN PROMPT 30 7 "Lunghezza " - FLAGS "RD" + FLAGS "RD" END STRING F_TAB 3 BEGIN PROMPT 2 9 "Tabella " - FLAGS "U" + FLAGS "DU" + GROUP 1 END BUTTON DLG_OK 9 2 BEGIN - PROMPT -14 -3 "" + PROMPT -14 -3 "" END BUTTON DLG_CANCEL 9 2 BEGIN - PROMPT -24 -3 "" + PROMPT -24 -3 "" END BUTTON DLG_PACK 9 2 BEGIN - PROMPT -34 -3 "Compatta" - MESSAGE EXIT,K_F5 + PROMPT -34 -3 "Compatta" + MESSAGE EXIT,K_F5 + FLAGS "D" + GROUP 1 END BUTTON DLG_RECORD 9 2 BEGIN - PROMPT -44 -3 "Record" - MESSAGE EXIT,K_F6 + PROMPT -44 -3 "Record" + MESSAGE EXIT,K_F6 + FLAGS "D" + GROUP 1 END BUTTON DLG_DUMP 9 2 BEGIN - PROMPT -14 -1 "Scarica" - MESSAGE EXIT,K_F7 + PROMPT -14 -1 "Scarica" + MESSAGE EXIT,K_F7 END BUTTON DLG_LOAD 9 2 BEGIN - PROMPT -24 -1 "Carica" - MESSAGE EXIT,K_F8 + PROMPT -24 -1 "Carica" + MESSAGE EXIT,K_F8 + FLAGS "D" + GROUP 1 END BUTTON DLG_EDIT 9 2 BEGIN - PROMPT -34 -1 "Modifica" - MESSAGE EXIT,K_F4 + PROMPT -34 -1 "Modifica" + MESSAGE EXIT,K_F4 END ENDPAGE + ENDMASK diff --git a/ba/ba1100b.uml b/ba/ba1100b.uml index 3b1ef3dec..8ff55991c 100755 --- a/ba/ba1100b.uml +++ b/ba/ba1100b.uml @@ -59,14 +59,14 @@ BEGIN HELP "Carattere delimitatore di record" END -BUTTON DLG_OK 9 2 +BUTTON DLG_OK 10 2 BEGIN - PROMPT -14 -1 "" + PROMPT -12 -1 "" END -BUTTON DLG_CANCEL 9 2 +BUTTON DLG_CANCEL 10 2 BEGIN - PROMPT -24 -1 "" + PROMPT -22 -1 "" END ENDPAGE diff --git a/ba/ba1101.cpp b/ba/ba1101.cpp index a086b622f..cc0234339 100755 --- a/ba/ba1101.cpp +++ b/ba/ba1101.cpp @@ -36,11 +36,13 @@ void TDir_sheet::add () update(); } -TDir_sheet::TDir_sheet(const char* title, const char * columns, byte buttons) -:TSheet(-1,-1, 0, 0, title,columns,buttons) +TDir_sheet::TDir_sheet(const char* title, byte buttons, const char* colonne) +:TSheet(-1,-1, 0, 0, title, colonne, buttons) { _dir = new TDir; _rec = new TTrec; + + maximize(); rebuild(); } @@ -50,6 +52,26 @@ TDir_sheet::~TDir_sheet() delete _rec; } + +bool TDir_sheet::on_key(KEY key) +{ + if (key > K_CTRL) + switch (key-K_CTRL) + { + case 'A': + key = K_F8; break; + case 'C': + key = K_F7; break; + case 'E': + key = K_DEL; break; + case 'I': + key = K_INS; break; + default: + break; + } + return TSheet::on_key(key); +} + void TDir_sheet::page_build(long first, byte rows) { diff --git a/ba/ba1102.cpp b/ba/ba1102.cpp index c67854a72..4e897cf1a 100755 --- a/ba/ba1102.cpp +++ b/ba/ba1102.cpp @@ -1,8 +1,9 @@ -#include -#include -#include -#include #include +#include +#include +#include +#include +#include #include "ba1100.h" @@ -34,12 +35,20 @@ bool TEdit_file::browse(int logicnum, const char* name) if (t == _realfld || t == _intfld || t == _longfld || t == _wordfld || t == _realfld) head << 'R'; } + + const bool superprassi = user() == "PRASSI"; KEY ch; - TCursor_sheet sheet(&cursor, trac, name, head, 6); + TCursor_sheet sheet(&cursor, trac, name, head, superprassi ? 6 : 0); while ((ch = sheet.run()) != K_ESC) - { + { + if (!superprassi) + { + error_box("Funzione non ammessa per l'utente %s", (const char*)user()); + ch = K_ESC; + } + if (ch == K_DEL && sheet.one_checked()) { TProgind* pind = NULL; @@ -52,8 +61,7 @@ bool TEdit_file::browse(int logicnum, const char* name) if (sheet.checked(j)) { if (!go && !first) - go = yesno_box("Confermi la cancellazione dei %d " - "record indicati?", sheet.checked()); + go = yesno_box("Si desidera cancellare i %d record indicati?", sheet.checked()); first = TRUE; if (!pind) @@ -110,6 +118,8 @@ bool TEdit_file::browse(int logicnum, const char* name) if (edit_record(curr,FALSE) == K_ENTER) cursor.file().write(); break; + default: + break; } sheet.force_update(); } diff --git a/ba/ba1300.h b/ba/ba1300.h index 39e507454..b76fb0df0 100755 --- a/ba/ba1300.h +++ b/ba/ba1300.h @@ -19,7 +19,7 @@ class TTestSheet : public TDir_sheet protected: void page_build(long first, byte rows); public: - TTestSheet(const char* titolo, const char* colonne="@1|N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Flags@7", byte bottoni=0x0); + TTestSheet(const char* titolo, byte bottoni = 0x0); ~TTestSheet() ; void sr_status(bool save=TRUE); }; diff --git a/ba/ba1301.cpp b/ba/ba1301.cpp index d5cd503ea..4ef1412a9 100755 --- a/ba/ba1301.cpp +++ b/ba/ba1301.cpp @@ -22,8 +22,8 @@ extern "C" { void cgettime(char *); } -TTestSheet::TTestSheet(const char* titolo, const char* colonne,byte bottoni) -:TDir_sheet(titolo, colonne, bottoni) +TTestSheet::TTestSheet(const char* titolo, byte bottoni) +:TDir_sheet(titolo, bottoni, "@1|N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Flags@7") {} TTestSheet::~TTestSheet() diff --git a/ba/ba3.cpp b/ba/ba3.cpp index a585d2088..7117a0a4c 100755 --- a/ba/ba3.cpp +++ b/ba/ba3.cpp @@ -28,6 +28,8 @@ int main(int argc, char** argv) rt = ba3700(argc,argv) ; break; case 7: rt = ba3800(argc,argv) ; break; + case 8: + rt = ba3900(argc,argv) ; break; default: error_box(usage, argv[0]) ; break; } diff --git a/ba/ba3.h b/ba/ba3.h index 96d885814..2860ef672 100755 --- a/ba/ba3.h +++ b/ba/ba3.h @@ -9,5 +9,6 @@ int ba3500(int argc, char* argv[]); int ba3600(int argc, char* argv[]); int ba3700(int argc, char* argv[]); int ba3800(int argc, char* argv[]); +int ba3900(int argc, char* argv[]); #endif // __BA3_H diff --git a/ba/ba3.url b/ba/ba3.url index 1c087df5d..28ff6f6ca 100755 --- a/ba/ba3.url +++ b/ba/ba3.url @@ -53,3 +53,12 @@ MENUBAR MENU_BAR(7) MENU MENU_BAR(7) SUBMENU MENU_FILE "~File" +/* + * ba3 -8 + */ + +MENUBAR MENU_BAR(8) + +MENU MENU_BAR(8) + SUBMENU MENU_FILE "~File" + diff --git a/ba/batbban.uml b/ba/batbban.uml index f09feca5e..56c914ab8 100755 --- a/ba/batbban.uml +++ b/ba/batbban.uml @@ -2,13 +2,13 @@ #include "batbban.h" TOOLBAR "" 0 18 0 3 - +/* BUTTON DLG_NULL 8 BEGIN PROMPT -16 -3 "~Delega" MESSAGE RUN,ba2,-0,del#F_CODICEABI END - +*/ #include ENDPAGE diff --git a/ba/batbinl.uml b/ba/batbinl.uml index 35a222027..8d2757efa 100755 --- a/ba/batbinl.uml +++ b/ba/batbinl.uml @@ -42,14 +42,17 @@ BEGIN FLAGS "U" FIELD NUMREG USE LF_INDLIB - JOIN %LBU INTO CODTAB=ANNO+CODLIB +// JOIN %LBU INTO CODTAB=ANNO+CODLIB INPUT ANNO F_ANNO INPUT CODLIB F_CODLIB INPUT NUMREG F_INDEX DISPLAY "Anno" ANNO DISPLAY "Codice Libro Unico" CODLIB +// DISPLAY "Descrizione@50" %LBU->S0 DISPLAY "Indice@7" NUMREG - DISPLAY "Descrizione@50" %LBU->S0 + DISPLAY "Ditta" CODDITTA + DISPLAY "Mese" MESEREG + DISPLAY "Registro" CODREG OUTPUT F_ANNO ANNO OUTPUT F_CODLIB CODLIB OUTPUT F_INDEX NUMREG diff --git a/ba/batbreg.uml b/ba/batbreg.uml index 2f7aa47bc..23c74c240 100755 --- a/ba/batbreg.uml +++ b/ba/batbreg.uml @@ -101,7 +101,7 @@ BEGIN HELP "Codice del libro sociale a cui fa riferimento il registro" END -LIST F_TIPO 26 +LIST F_TIPO 1 26 BEGIN PROMPT 30 5 "Tipo " HELP "Tipo di registro" diff --git a/ba/prassi.mnu b/ba/prassi.mnu index 3a3e78f7b..ae22aff75 100755 --- a/ba/prassi.mnu +++ b/ba/prassi.mnu @@ -90,7 +90,7 @@ 8|IV direttiva CEE|ba3 -7 D 9|Prima nota|2|7 9|Prima nota|cg2 -0 -9|Elimina movimenti provvisori|cg2 -1 +9|Gestione movimenti provvisori|cg2 -1 9|IVA|10|5 9|Lista movimenti|cg3 -0 9|Stampa Mastrini|cg3 -1 @@ -103,6 +103,8 @@ 10|IVA|2|5 10|Parametri liquidazione|cg5 -3 10|Liquidazione|cg4 -2 +10|Estrazione deleghe|cg4 -2 -D +10|Calcolo acconti|cg4 -2 -A 10|Visualizzazione liquidazione|cg5 -5 10|Deleghe|ba3 -0 %del 10|Stampa deleghe|cg1 -3 @@ -129,7 +131,7 @@ 13|Servizio|16|7 14|Gestione libro unico|2|7 14|Gestione libro unico|ba3 -0 %lbu -14|Gestione indici libro unico|ba3 -0 %inl +14|Gestione indici libro unico|ba3 -8 14|Tabella vidimazioni|ba3 -0 %vid 14|Stampa indici libro unico|ba3 -5 14|Ripristino indici libro unico|cg5 -4 inl