From 18a40d0a621e4b98fc91e6579f644ca0fd9725a6 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 26 May 2010 08:56:55 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : ve1.exe Ricompilazione Demo : [ ] Commento : 0001643: Gestione campi trasparenti nei report Per quei campi dove non risulta settato il valore dello sfondo (trasparente, pieno, ecc..) metteremo di default pieno. Questo dovrebbe simulare il comportamento del programma prima della modifica. git-svn-id: svn://10.65.10.50/trunk@20498 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/array.cpp | 8 ++++++++ include/array.h | 2 ++ include/report.cpp | 36 ++++++++++++++---------------------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/include/array.cpp b/include/array.cpp index 776edd495..9477bb7ae 100755 --- a/include/array.cpp +++ b/include/array.cpp @@ -847,6 +847,14 @@ long TBit_array::first_one() const return -1; } +bool TBit_array::some_one() const +{ + for (word i = 0; i < _size; i++) + if (_bit[i]) return true; + return false; +} + + // @doc EXTERNAL // @mfunc Controlla se si tratta di un oggetto valido diff --git a/include/array.h b/include/array.h index bd8bbdd95..a2528e11a 100755 --- a/include/array.h +++ b/include/array.h @@ -305,6 +305,8 @@ public: long last_one() const; // @cmember Ritorna il numero di 1 presenti nell'array long ones() const; + // @cmember C'é almeno un 1 + bool some_one() const; // @cmember Setta ad 1 il bit n-esimo dell'array void set(long n); diff --git a/include/report.cpp b/include/report.cpp index 304cfcf65..9fd74f089 100755 --- a/include/report.cpp +++ b/include/report.cpp @@ -699,18 +699,14 @@ void TReport_section::save(TXmlItem& root) const if (radius() > 0) item.SetAttr("radius", radius()); } - switch (pattern()) + + item.SetAttr("pattern", pattern()); + if (pattern() == PAT_SPECIAL) { - case PAT_HOLLOW: - break; - case PAT_SPECIAL: item.SetAttr("sh_angle", shade_angle()); set_col_attr(item, "sh_color", shade_color(), COLOR_GRAY); - // DO NOT break! - default : - item.SetAttr("pattern", pattern()); - break; } + item.SetAttr("hidden", _hidden); item.SetAttr("deactivated", _deactivated); item.SetAttr("hidden_if_needed", hidden_if_needed()); @@ -762,10 +758,10 @@ void TReport_section::load(const TXmlItem& sec) set_height(get_num_attr(sec, "height")); set_border(sec.GetIntAttr("border")); - set_pattern((PAT_STYLE)sec.GetIntAttr("pattern", PAT_HOLLOW)); set_radius(sec.GetIntAttr("radius")); set_back_color(get_col_attr(sec, "bg_color", COLOR_WHITE)); set_fore_color(get_col_attr(sec, "fg_color", COLOR_BLACK)); + set_pattern((PAT_STYLE)sec.GetIntAttr("pattern", PAT_HOLLOW)); if (pattern() == PAT_SPECIAL) { set_shade_color(get_col_attr(sec, "sh_color", COLOR_GRAY)); @@ -1741,7 +1737,7 @@ const TString& TReport_field::groups() const bool TReport_field::in_group(int group) const { if (group <= 0) - return _groups.first_one() > 0; + return _groups.some_one(); return _groups[group]; } @@ -1775,13 +1771,15 @@ void TReport_field::save(TXmlItem& root) const case 'R': fld.SetAttr("align", "right"); break; case 'J': fld.SetAttr("align", "justify"); break; default : break; - }; + } + switch (vertical_alignment()) { case 'B': fld.SetAttr("valign", "bottom"); break; case 'C': fld.SetAttr("valign", "center"); break; default : break; - }; + } + if (border() > 0) { fld.SetAttr("border", border()); @@ -1789,19 +1787,13 @@ void TReport_field::save(TXmlItem& root) const fld.SetAttr("radius", radius()); } - switch (pattern()) + fld.SetAttr("pattern", pattern()); + if (pattern() == PAT_SPECIAL) { - case PAT_HOLLOW: - break; - case PAT_SPECIAL: fld.SetAttr("sh_angle", shade_angle()); set_col_attr(fld, "sh_color", shade_color(), COLOR_GRAY); - // DO NOT break! - default : - fld.SetAttr("pattern", pattern()); - fld.SetAttr("shade_offset", shadow_offset()); - break; } + fld.SetAttr("shade_offset", shadow_offset()); fld.SetAttr("text", picture()); fld.SetAttr("codval", codval()); @@ -1844,7 +1836,7 @@ bool TReport_field::load(const TXmlItem& fld) activate(!fld.GetBoolAttr("deactivated")); hide_zeroes(fld.GetBoolAttr("hide_zero")); set_border(fld.GetIntAttr("border")); - set_pattern((PAT_STYLE)fld.GetIntAttr("pattern", PAT_HOLLOW)); + set_pattern((PAT_STYLE)fld.GetIntAttr("pattern", PAT_SOLID)); set_radius(fld.GetIntAttr("radius")); set_shadow_offset(fld.GetIntAttr("shade_offset")); set_back_color(get_col_attr(fld, "bg_color", COLOR_WHITE));