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));