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
This commit is contained in:
guy 2010-05-26 08:56:55 +00:00
parent 2e40621509
commit 18a40d0a62
3 changed files with 24 additions and 22 deletions

View File

@ -847,6 +847,14 @@ long TBit_array::first_one() const
return -1; return -1;
} }
bool TBit_array::some_one() const
{
for (word i = 0; i < _size; i++)
if (_bit[i]) return true;
return false;
}
// @doc EXTERNAL // @doc EXTERNAL
// @mfunc Controlla se si tratta di un oggetto valido // @mfunc Controlla se si tratta di un oggetto valido

View File

@ -305,6 +305,8 @@ public:
long last_one() const; long last_one() const;
// @cmember Ritorna il numero di 1 presenti nell'array // @cmember Ritorna il numero di 1 presenti nell'array
long ones() const; long ones() const;
// @cmember C'é almeno un 1
bool some_one() const;
// @cmember Setta ad 1 il bit n-esimo dell'array // @cmember Setta ad 1 il bit n-esimo dell'array
void set(long n); void set(long n);

View File

@ -699,18 +699,14 @@ void TReport_section::save(TXmlItem& root) const
if (radius() > 0) if (radius() > 0)
item.SetAttr("radius", radius()); 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()); item.SetAttr("sh_angle", shade_angle());
set_col_attr(item, "sh_color", shade_color(), COLOR_GRAY); 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("hidden", _hidden);
item.SetAttr("deactivated", _deactivated); item.SetAttr("deactivated", _deactivated);
item.SetAttr("hidden_if_needed", hidden_if_needed()); 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_height(get_num_attr(sec, "height"));
set_border(sec.GetIntAttr("border")); set_border(sec.GetIntAttr("border"));
set_pattern((PAT_STYLE)sec.GetIntAttr("pattern", PAT_HOLLOW));
set_radius(sec.GetIntAttr("radius")); set_radius(sec.GetIntAttr("radius"));
set_back_color(get_col_attr(sec, "bg_color", COLOR_WHITE)); set_back_color(get_col_attr(sec, "bg_color", COLOR_WHITE));
set_fore_color(get_col_attr(sec, "fg_color", COLOR_BLACK)); set_fore_color(get_col_attr(sec, "fg_color", COLOR_BLACK));
set_pattern((PAT_STYLE)sec.GetIntAttr("pattern", PAT_HOLLOW));
if (pattern() == PAT_SPECIAL) if (pattern() == PAT_SPECIAL)
{ {
set_shade_color(get_col_attr(sec, "sh_color", COLOR_GRAY)); 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 bool TReport_field::in_group(int group) const
{ {
if (group <= 0) if (group <= 0)
return _groups.first_one() > 0; return _groups.some_one();
return _groups[group]; return _groups[group];
} }
@ -1775,13 +1771,15 @@ void TReport_field::save(TXmlItem& root) const
case 'R': fld.SetAttr("align", "right"); break; case 'R': fld.SetAttr("align", "right"); break;
case 'J': fld.SetAttr("align", "justify"); break; case 'J': fld.SetAttr("align", "justify"); break;
default : break; default : break;
}; }
switch (vertical_alignment()) switch (vertical_alignment())
{ {
case 'B': fld.SetAttr("valign", "bottom"); break; case 'B': fld.SetAttr("valign", "bottom"); break;
case 'C': fld.SetAttr("valign", "center"); break; case 'C': fld.SetAttr("valign", "center"); break;
default : break; default : break;
}; }
if (border() > 0) if (border() > 0)
{ {
fld.SetAttr("border", border()); fld.SetAttr("border", border());
@ -1789,19 +1787,13 @@ void TReport_field::save(TXmlItem& root) const
fld.SetAttr("radius", radius()); 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()); fld.SetAttr("sh_angle", shade_angle());
set_col_attr(fld, "sh_color", shade_color(), COLOR_GRAY); 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("text", picture());
fld.SetAttr("codval", codval()); fld.SetAttr("codval", codval());
@ -1844,7 +1836,7 @@ bool TReport_field::load(const TXmlItem& fld)
activate(!fld.GetBoolAttr("deactivated")); activate(!fld.GetBoolAttr("deactivated"));
hide_zeroes(fld.GetBoolAttr("hide_zero")); hide_zeroes(fld.GetBoolAttr("hide_zero"));
set_border(fld.GetIntAttr("border")); 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_radius(fld.GetIntAttr("radius"));
set_shadow_offset(fld.GetIntAttr("shade_offset")); set_shadow_offset(fld.GetIntAttr("shade_offset"));
set_back_color(get_col_attr(fld, "bg_color", COLOR_WHITE)); set_back_color(get_col_attr(fld, "bg_color", COLOR_WHITE));