From d07f26d5179b9e5723e8d508d51c10baacd9d932 Mon Sep 17 00:00:00 2001 From: guy <guy@c028cbd2-c16b-5b4b-a496-9718f37d4682> Date: Fri, 14 Oct 2005 12:55:47 +0000 Subject: [PATCH] Patch level : 2.2 Files correlati : ve0, ba8 Ricompilazione Demo : [ ] Commento : Aggiunta possibilita' di filtraggio anche sui campi zoom Eseguiti i post-scripts delle sezioni nascoste git-svn-id: svn://10.65.10.50/trunk@13423 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/controls.h | 6 +++--- include/mask.cpp | 5 +++-- include/msksheet.cpp | 9 +++------ include/recset.cpp | 2 +- include/report.cpp | 24 +++--------------------- include/reprint.cpp | 4 ++++ include/sheet.cpp | 6 +++++- include/strings.cpp | 2 +- 8 files changed, 23 insertions(+), 35 deletions(-) diff --git a/include/controls.h b/include/controls.h index 234dfcc04..1fd4cc102 100755 --- a/include/controls.h +++ b/include/controls.h @@ -101,11 +101,11 @@ public: virtual void destroy(); - virtual bool read_only() const; - virtual void set_read_only(bool on = TRUE); - virtual void set_rjust(bool on = TRUE); void set_ljust() { set_rjust(FALSE); } + + virtual bool read_only() const; + virtual void set_read_only(bool on = TRUE); void autoselect(bool on); diff --git a/include/mask.cpp b/include/mask.cpp index 718d6d7aa..bffb53ff9 100755 --- a/include/mask.cpp +++ b/include/mask.cpp @@ -25,6 +25,7 @@ class TPage_field : public TRadio_field protected: virtual void current(int) { } // Evita il reset virtual int current() const { return _def; } + virtual bool is_loadable() const { return false; } virtual bool is_editable() const { return false; } public: @@ -209,7 +210,7 @@ void TMask::read_mask( for (int j = 0; j < items; j++) if (read_only[j]) { TMask_field& f = fld(j); - if (f.is_editable() || f.is_sheet()) + if (f.is_loadable()) f.set_read_only(true); } } @@ -2283,7 +2284,7 @@ TTimed_box::TTimed_box(const char * header,const char * message,int seconds,shor set(FIRST_FIELD, message); // setta il timer per l'evento - _timer_delay=seconds *1000+1; + _timer_delay=seconds * 1000 + 1; _timer_id=XVT_TIMER_ERROR; _button_id=button_id; } diff --git a/include/msksheet.cpp b/include/msksheet.cpp index abe80ee9a..230943b58 100755 --- a/include/msksheet.cpp +++ b/include/msksheet.cpp @@ -187,7 +187,9 @@ class TSpreadsheet : public TControl protected: //@cmember Gestisce gli eventi delle celle (chiamata dal <mf TSpreadsheet::xiev_handler>) virtual bool event_handler(XI_OBJ* itf, XI_EVENT* xiev); - virtual void set_read_only(bool ro); + + virtual void set_read_only(bool ro) { activate(!ro); } + virtual bool read_only() const { return !_active; } KEY barcode_newline() const; @@ -2431,11 +2433,6 @@ KEY TSpreadsheet::edit(int n) return k; } -void TSpreadsheet::set_read_only(bool on) -{ - activate(!on); -} - /////////////////////////////////////////////////////////// // TSheet_field /////////////////////////////////////////////////////////// diff --git a/include/recset.cpp b/include/recset.cpp index 0f58b1454..f5dacdcc2 100755 --- a/include/recset.cpp +++ b/include/recset.cpp @@ -67,7 +67,7 @@ int TTable_names::logic_num(const TString& n) if (isdigit(name[0])) { int num = atoi(name); - if (name[name.len()-1] == '@') + if (name.ends_with("@")) num = -num; return num; } diff --git a/include/report.cpp b/include/report.cpp index c5d50a683..1a4211c30 100755 --- a/include/report.cpp +++ b/include/report.cpp @@ -1158,7 +1158,7 @@ const TString& TReport_field::prescript() const void TReport_field::set_prescript(const char* src) { - TString desc; desc << section().type() << section().level() << '.' << id() << " PRESCRIPT"; + TString80 desc; desc.format("%c%d.%d PRESCRIPT", section().type(), section().level(), id()); _prescript.set_description(desc); _prescript.set(src); } @@ -1168,7 +1168,7 @@ const TString& TReport_field::postscript() const void TReport_field::set_postscript(const char* src) { - TString desc; desc << section().type() << section().level() << '.' << id() << " POSTSCRIPT"; + TString80 desc; desc.format("%c%d.%d POSTSCRIPT", section().type(), section().level(), id()); _postscript.set_description(desc); _postscript.set(src); } @@ -1255,25 +1255,7 @@ bool TReport_field::load_field() const TFieldtypes ft = var_type(); if (ft != _nullfld) { - if (_field.starts_with("SELECT ")) - { - TSQL_recordset qry(_field); - TString str; - for (int i = 0; i < qry.items(); i++) - { - if (i > 0) str << '\n'; - for (unsigned int j = 0; j < qry.columns(); j++) - { - if (j > 0) str << ' '; - str << qry.get(j).as_string(); - } - } - _var.set(str); - _var.convert_to(ft); - } - else - section().report().evaluate(_field, _var, ft); - + section().report().evaluate(_field, _var, ft); if (_var.is_empty() && _alt_field.not_empty()) section().report().evaluate(_alt_field, _var, ft); } diff --git a/include/reprint.cpp b/include/reprint.cpp index a7e8147db..e745c3f86 100755 --- a/include/reprint.cpp +++ b/include/reprint.cpp @@ -1788,7 +1788,11 @@ long TReport_book::print_section(TReport_section& rs) } if (rs.hidden()) + { + if (!rs.execute_postscript()) // Faccio ugualmente i post-script + _print_aborted = true; return -3; + } const long height = rs.compute_size().y; // Compute size after the initilization script! diff --git a/include/sheet.cpp b/include/sheet.cpp index 7b843ce2a..f147cd163 100755 --- a/include/sheet.cpp +++ b/include/sheet.cpp @@ -1724,7 +1724,11 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields, } break; case CLASS_ZOOM_FIELD: - e = &add_string(c.dlg(), 0, p, 1, y++, 32000, flags, 50); + { + e = &add_string(c.dlg(), 0, p, 1, y++, 32000, flags, 50); + // Aggiunge campo con le icone di filtraggio + add_checkbutton(c.dlg()+1000, 0, "", 68, y-1, 2, 1, "", 10112, 10113).set_handler(filter_handler); + } break; case CLASS_REAL_FIELD: e = &add_number(c.dlg(), 0, p, 1, y++, csize, flags); diff --git a/include/strings.cpp b/include/strings.cpp index 088a89444..f0d37c0f5 100755 --- a/include/strings.cpp +++ b/include/strings.cpp @@ -2060,7 +2060,7 @@ TToken_string& get_tmp_string(int len) TToken_string* str = (TToken_string*)ararar.objptr(next); if (str == NULL) { - str = new TToken_string(len); + str = new TToken_string(max(len,50)); ararar.add(str, next); } else