在某些报告中使用聚合控件时,您希望看到一个空白字段而不是0.似乎没有办法自动执行此操作。有没有人有办法可以做到这一点。请注意,您希望在导出时保持字段的“0”值,但是在渲染为PDF或HTML时要显示空白。
答案 0 :(得分:5)
有很多方法可以解决这个问题。两个主要是使用可见性规则或突出显示来创建条件格式。可见性特别有吸引力,因为很容易将格式规则应用于特定类型的输出(例如HTML)。
对于这种特殊情况,这些方法存在两个问题。首先,我想要一个通用的解决方案,我不必指定文本颜色。换句话说,当条件为真(值为0)时,我希望我的文本颜色与背景颜色相匹配。这样,如果有人更改了控件的backgroundColor,代码仍然有效。
另一个问题是,在这种情况下,我使用的是动态列绑定,它不支持值查找。
我创建的解决方案是添加一个名为hideMe的JavaScript函数,如下所示。
function hideText (dataControl){
if (dataControl.getValue() == 0) {
var color = dataControl.getStyle().getBackgroundColor();
var parentItem = dataControl.getParent();
do {
if (color == null && parentItem != null) {
color = parentItem.getStyle().getBackgroundColor();
parentItem = parentItem.getParent();
} else {
break;
}
} while (color == null);
dataControl.getStyle().color = color;
}
}
一旦将此功能添加到报告中(在我的情况下是一个包含的javascript文件),我只是从控件的OnCreate方法中调用它。
hideText(this);
这也可以使用Java事件处理程序完成,但这种方法似乎更容易。
答案 1 :(得分:1)
仅仅是一个FYI,在使用了一段时间之后,我发现使用可见性规则更容易。一个很大的优点是您可以轻松配置不同输出格式的不同可见性。因此对于PDF,最好使用空格,但对于Excel,您可能需要0值。