diff --git a/sc/sc3100.cpp b/sc/sc3100.cpp index ad1fec7d7..6fbdaca83 100755 --- a/sc/sc3100.cpp +++ b/sc/sc3100.cpp @@ -32,6 +32,7 @@ protected: virtual bool post_edit_checks(TMask& m, TPrint_section* sec); public: virtual const char* section_mask() { return "sc3100s" ;} + virtual void change_number_format(int w, int dec, const char* p); TForm_EC (): TForm() {}; TForm_EC (const char* form, const char * code = "", int editlevel = 0, const char* desc = "") : TForm(form,code,editlevel,desc) {}; @@ -75,6 +76,18 @@ bool TForm_EC::post_edit_checks(TMask& m, TPrint_section* sec) return TRUE; } +void TForm_EC::change_number_format(int w, int dec, const char* p) +{ + char secs[] = { "FB" }; + char ptyp[] = { "LOEF" }; + TPrint_section* ps; + + for (int sc = 0; sc < 4; sc++) + for (int pt = 0; pt < 4; pt++) + if ((ps = exist(secs[sc], char2page(ptyp[pt]), FALSE)) != NULL) + ps_change_number_format(*ps, w, dec, p); +} + class TForm_EC_editor : public TForm_editor { s_data _prm; @@ -128,8 +141,6 @@ BOOLEAN XVT_CALLCONV1 wprms (long data) bool TForm_EC_editor::ccodes_handler(TMask_field& f, KEY k) { TMask& m = f.mask(); - if (f.dirty() && m.get(F_CBASE).empty()) - m.set(F_CBASE,BASE_EC_PROFILE); if (k==K_TAB) { TString base(m.get(F_CBASE)); @@ -149,9 +160,9 @@ bool TForm_EC_editor::ccodes_handler(TMask_field& f, KEY k) bool TForm_EC_editor::clngs_handler(TMask_field& f, KEY key) { + TMask& m = f.mask(); if (key==K_TAB) { - TMask& m = f.mask(); TString base(m.get(F_CBASE)); TString code(m.get(F_CCODES)); code << f.get(); @@ -175,6 +186,7 @@ bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k) TMask mm("sc3100b"); mm.set_handler(F_CCODES,ccodes_handler); mm.set_handler(F_CCODELS,clngs_handler); + mm.set(F_CBASE,BASE_EC_PROFILE); while (mm.run() == K_ENTER) // Prende in input il nome del profilo sorgente { long scode = mm.get_long(F_CCODES); @@ -238,9 +250,7 @@ bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k) bool TForm_EC_editor::code_handler(TMask_field& f, KEY key) { TMask& m = f.mask(); - if (f.dirty() && m.get(F_BASE).empty()) - m.set(F_BASE,BASE_EC_PROFILE); - if (key==K_TAB) + if (key==K_TAB && f.get().not_empty()) { TString base(m.get(F_BASE)); TString code(f.get()); @@ -259,9 +269,9 @@ bool TForm_EC_editor::code_handler(TMask_field& f, KEY key) bool TForm_EC_editor::lng_handler(TMask_field& f, KEY key) { - if (key==K_TAB) + TMask& m = f.mask(); + if (key==K_TAB && m.get(F_CODE).not_empty()) { - TMask& m = f.mask(); TString base(m.get(F_BASE)); TString code(m.get(F_CODE)); code << f.get(); @@ -787,6 +797,8 @@ bool TForm_EC_editor::ask_profile() mask().set_handler(DLG_COPY,cpy_handler); mask().set_handler(F_CODE,code_handler); mask().set_handler(F_CODEL,lng_handler); + mask().set(F_BASE,BASE_EC_PROFILE); + disable_menu_item(M_FILE_PRINT); while ((k = mask().run()) != K_QUIT) {