当前位置:  开发笔记 > 编程语言 > 正文

在BIRT报告中显示空白而不是0或0.0

如何解决《在BIRT报告中显示空白而不是0或0.0》经验,为你挑选了1个好方法。

在某些报告中使用聚合控件时,您希望看到一个空白字段而不是0.似乎没有办法自动执行此操作.有没有人有办法可以做到这一点.请注意,您希望在导出时保持字段的"0"值,但是在渲染为PDF或HTML时要显示空白.



1> Scott Rosenb..:

有很多方法可以解决这个问题.两个主要是使用可见性规则或突出显示来创建条件格式.可见性特别有吸引力,因为很容易将格式规则应用于特定类型的输出(例如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事件处理程序完成,但这种方法似乎更容易.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有