diff --git a/include/applicat.cpp b/include/applicat.cpp index 6d186d9f3..c72deedeb 100755 --- a/include/applicat.cpp +++ b/include/applicat.cpp @@ -99,9 +99,8 @@ TInfo_mask::TInfo_mask() default: prot = "NONE"; break; } - TString stampante = printer().printername(); - const int comma = stampante.find(','); - if (comma > 0) stampante.cut(comma); + TConfig ini(CONFIG_USER, "Printer"); + const TString& stampante = ini.get("Name"); add_row(TR("Versione"), versione); add_row(TR("Patch"), strpatch); diff --git a/include/attiv.h b/include/attiv.h index 2e3b80faa..053354e36 100755 --- a/include/attiv.h +++ b/include/attiv.h @@ -3,6 +3,7 @@ #define ATT_CODDITTA "CODDITTA" #define ATT_CODATT "CODATT" +#define ATT_ATTPREV "ATTPREV" #define ATT_REGAGR "REGAGR" #define ATT_REG74TER "REG74TER" #define ATT_ATTSTAG "ATTSTAG" diff --git a/include/isam.cpp b/include/isam.cpp index 10dc60e7b..ec300e690 100755 --- a/include/isam.cpp +++ b/include/isam.cpp @@ -3468,8 +3468,9 @@ bool TRectype::get_relapp(TString& app) const return ::get_relapp(num(), app); } -void TRectype::edit(int logicnum, const char * alternate_key_fields) const +bool TRectype::edit(int logicnum, const char * alternate_key_fields) const { + bool ok = false; if (logicnum <= 0) logicnum = num(); @@ -3511,9 +3512,10 @@ void TRectype::edit(int logicnum, const char * alternate_key_fields) const app << " -i" << ininame; TExternal_app a(app); - a.run(); + ok = a.run() == 0; xvt_fsys_removefile(ininame); } + return ok; } /////////////////////////////////////////////////////////// diff --git a/include/isam.h b/include/isam.h index df369e1b8..a2763611d 100755 --- a/include/isam.h +++ b/include/isam.h @@ -252,7 +252,7 @@ public: // @cmember Ritorna la relapp che gestisce il file virtual bool get_relapp(TString& app) const; - virtual void edit(int logicnum = 0, const char * alternate_key_fields = NULL) const; + virtual bool edit(int logicnum = 0, const char * alternate_key_fields = NULL) const; // @cmember Inizializza un record staccato da un file. void init(int logicnum); diff --git a/include/maskfld.cpp b/include/maskfld.cpp index ac2ff4b8c..ab332c24c 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -2186,13 +2186,14 @@ void TBrowse::do_output(CheckTime t) flds = _out_fn.get(); bool do_that = t != STARTING_CHECK || f.field() == NULL || (f.mask().mode() == MODE_INS && !f.in_key(0)); - if (do_that) + if (do_that && main_app().class_id() == CLASS_RELATION_APPLICATION) { // Considera a parte l'inizializzazione delle transazioni! - if (!f.empty() && main_app().class_id() == CLASS_RELATION_APPLICATION) + // Non sovrascrivere con degli output campi che potrebbero essere riempiti dal .ini + if (!f.empty() && f.field() != NULL) { const TMask& m = f.mask(); - if (!m.is_running() && m.get_sheet() == NULL) + if (!m.is_running() && m.get_sheet() == NULL) // Maschera principale chiusa { const TRelation_application& ra = (const TRelation_application&)main_app(); if (ra.is_transaction()) diff --git a/include/relapp.cpp b/include/relapp.cpp index 2a04fb0b1..a82f9788e 100755 --- a/include/relapp.cpp +++ b/include/relapp.cpp @@ -1282,13 +1282,13 @@ void TRelation_application::main_loop() { if (find(1)) { - if (_curr_transaction != TRANSACTION_MODIFY) + if (_curr_transaction == TRANSACTION_INSERT) _curr_transaction = TRANSACTION_MODIFY; modify_mode(); } else { - if (_curr_transaction != TRANSACTION_INSERT) + if (_curr_transaction == TRANSACTION_MODIFY) _curr_transaction = TRANSACTION_INSERT; insert_mode(); } @@ -1674,7 +1674,8 @@ void TRelation_application::ini2query_mask() { if (is_transaction()) { - TConfig ini(_trans_ini.row(_trans_counter), format("%d", get_relation()->lfile().num())); + TString8 n; n.format("%d", get_relation()->lfile().num()); + TConfig ini(_trans_ini.row(_trans_counter), n); ini2mask(ini, *_mask, TRUE); } } @@ -1682,8 +1683,9 @@ void TRelation_application::ini2query_mask() void TRelation_application::ini2insert_mask() { if (is_transaction()) - { - TConfig ini(_trans_ini.row(_trans_counter), format("%d", get_relation()->lfile().num())); + { + TString8 n; n.format("%d", get_relation()->lfile().num()); + TConfig ini(_trans_ini.row(_trans_counter), n); ini2mask(ini, *_mask, FALSE); } } @@ -1720,8 +1722,7 @@ void TRelation_application::edit_mask2ini() { if (_trans_ini.row(_trans_counter).not_empty()) { - TString16 head; - head.format("%d", get_relation()->lfile().num()); + TString8 head; head.format("%d", get_relation()->lfile().num()); TConfig ini(_trans_ini.row(_trans_counter), head); mask2ini(*_mask, ini); } @@ -1849,7 +1850,15 @@ void TRelation_application::mask2ini(const TMask& m, TConfig& ini) if (campo.empty()) fr->write(ini, defpar, " "); else - fr->write(ini, defpar, campo.get()); + { + if (campo.class_id() == CLASS_DATE_FIELD && campo.right_justified()) + { + const TDate d = campo.get(); + fr->write(ini, defpar, d.string(ANSI)); + } + else + fr->write(ini, defpar, campo.get()); + } } else if (campo.is_sheet())