From c68f07cb7c39492d8c7e9594eaa52d64544cc965 Mon Sep 17 00:00:00 2001 From: angelo Date: Tue, 9 Jan 1996 11:39:10 +0000 Subject: [PATCH] Aggiunto l'hiding dei campi del body in anteprima di stampa. Corrette alcune imprecisioni nelle richieste di input della maschera selezione profilo e di copia. git-svn-id: svn://10.65.10.50/trunk@2415 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- sc/sc3100.cpp | 61 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/sc/sc3100.cpp b/sc/sc3100.cpp index d5f89a322..4db9678c2 100755 --- a/sc/sc3100.cpp +++ b/sc/sc3100.cpp @@ -41,6 +41,8 @@ protected: bool recalculate_positions(const char* name, int size); void hook_footer_to_body(TPrint_section* f, TPrint_section* b); void unhook_footer(TPrint_section* f); + void hide_body_items(TPrint_section* b); + void show_body_items(TPrint_section* b); void remove_form(TLocalisamfile& frm, TLocalisamfile& rfr,const TString& t,const TString& c); virtual const char* selection_mask() const { return "sc3100a"; } virtual bool ask_profile(); @@ -86,6 +88,8 @@ bool TForm_EC_editor::ccodes_handler(TMask_field& f, KEY k) frm.put("CODPROF",code); if (frm.read(_isequal)== NOERR) m.set(F_CDESCS,frm.get("DESC")); + else + m.reset(F_CDESCS); } return TRUE; } @@ -104,6 +108,8 @@ bool TForm_EC_editor::clngs_handler(TMask_field& f, KEY key) frm.put("CODPROF",code); if (frm.read(_isequal)== NOERR) m.set(F_CDESCS,frm.get("DESC")); + else + m.reset(F_CDESCS); } return TRUE; } @@ -191,6 +197,8 @@ bool TForm_EC_editor::code_handler(TMask_field& f, KEY key) frm.put("CODPROF",code); if (frm.read(_isequal)== NOERR) m.set(F_DESC,frm.get("DESC")); + else + m.reset(F_DESC); } return TRUE; } @@ -209,6 +217,8 @@ bool TForm_EC_editor::lng_handler(TMask_field& f, KEY key) frm.put("CODPROF",code); if (frm.read(_isequal)== NOERR) m.set(F_DESC,frm.get("DESC")); + else + m.reset(F_DESC); } return TRUE; } @@ -326,16 +336,25 @@ bool TForm_EC_editor::recalculate_positions(const char* name, int size) void TForm_EC_editor::hook_footer_to_body(TPrint_section* f, TPrint_section* b) { const word items = b->columnwise() ? f->fields() : 0; + const int min_col_id = b->find_first_col(); b->reset_tabs(); for (word i=0;ifield(i); if (fi.x()>0 || !fi.shown()) continue; short id = fi.id(); - if (id >= PEC_TSALDO && id <= PEC_TIMPLIRE) id = PEC_DESCR1; + if (id >= PEC_TSALDO && id <= PEC_TIMPLIRE) id = PEC_DESCR; TForm_item& fb = b->find_field(id); - int x = fb.x()+b->ofspc(); - fi.set_x(x); + if (!fb.shown()) + { + fi.hide(); + fi.set_x(-1); + } else + { + int x = fb.x()+b->ofspc(); + if (id == min_col_id) x++; + fi.set_x(x); + } fi.ofs() = 999; } } @@ -348,12 +367,41 @@ void TForm_EC_editor::unhook_footer(TPrint_section* f) TForm_item& fi = f->field(i); if (fi.ofs()==999) { + if (fi.x() == -1) fi.show(); fi.ofs() = 0; fi.set_x(0); } } } +void TForm_EC_editor::hide_body_items(TPrint_section* b) +{ + const word items = b->fields(); + for (word i=0;ifield(i); + if (fi.shown() && fi.prompt().not_empty()) + { + fi.hide(); + fi.temp() = TRUE; + } + } +} + +void TForm_EC_editor::show_body_items(TPrint_section* b) +{ + const word items = b->fields(); + for (word i=0;ifield(i); + if (fi.temp()) + { + fi.show(); + fi.temp() = FALSE; + } + } +} + bool TForm_EC_editor::edit(char s, pagetype p) { _msk= new TMask("sc3100c"); @@ -362,7 +410,6 @@ bool TForm_EC_editor::edit(char s, pagetype p) bool other = FALSE; KEY k; - enable_menu_item(M_FILE_PRINT); if (extra()) { if (s == 'R') @@ -423,7 +470,9 @@ bool TForm_EC_editor::edit(char s, pagetype p) while (TRUE) { bool local_dirty = FALSE; + enable_menu_item(M_FILE_PRINT); k = _msk->run(); + disable_menu_item(M_FILE_PRINT); if ((_msk->field(F_SFONT).dirty() || _msk->field(F_SSIZE).dirty())) { font_changed = TRUE; @@ -525,13 +574,13 @@ bool TForm_EC_editor::edit(char s, pagetype p) { TLocalisamfile f(LF_FORM),r(LF_RFORM); remove_form(f,r,form().name(),form().code()); + mask().reset(F_BASE); mask().reset(F_CODE); mask().reset(F_CODEL); mask().reset(F_DESC); } if (_msk!=NULL) delete _msk; _msk = NULL; - disable_menu_item(M_FILE_PRINT); if (!extra()) dispatch_e_menu(MENU_ITEM(14)); return dirty; } @@ -578,11 +627,13 @@ void TForm_EC_editor::print() } else remove = FALSE; hook_footer_to_body(f,b); + hide_body_items(b); form().put_examples('H',odd_page); form().put_examples('F',odd_page); TForm_editor::print(); form().remove_examples('H',odd_page); form().remove_examples('F',odd_page); + show_body_items(b); unhook_footer(f); if (remove) {