关于Eclipse:在BIRT报告中显示空白,而不是0或0.0

关于Eclipse:在BIRT报告中显示空白,而不是0或0.0

Display blanks instead of 0 or 0.0 in a BIRT report

在某些报表中使用聚合控件时,您希望看到一个空白字段而不是0。似乎没有一种自动执行此操作的方法。有谁有办法做到这一点。请注意,在导出的情况下,您希望字段的值保持为'0',但是在呈现为PDF或HTML时希望显示为空白。


有多种方法可以解决此问题。两个主要方法是使用可见性规则或突出显示来创建条件格式。可见性特别吸引人,因为仅将格式规则应用于特定类型的输出(例如HTML)很容易。

对于这种特殊情况,这些方法存在两个问题。首先,我需要一个通用的解决方案,无需指定文本颜色。换句话说,当条件为true(值为0)时,我希望文本颜色与背景颜色匹配。这样,如果有人更改了控件的backgroundColor,则代码仍然有效。

另一个问题是在这种情况下,我正在使用不支持值查找的动态列绑定。

我创建的解决方案是添加一个名为hideMe的JavaScript函数,如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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方法中调用它即可。

1
hideText(this);

这也可以使用Java事件处理程序来完成,但是此方法似乎更容易。


仅供参考,在使用了一段时间之后,我发现使用"可见性"规则更加容易。一大优势是,您可以轻松地为不同的输出格式配置不同的可见性。因此,对于PDF,最好使用空白,但是对于Excel,您可能需要0值。


推荐阅读

    linux远程执行多命令?

    linux远程执行多命令?,工具,服务,命令,状态,暂停,代码,底部,时间,地址,系统,L

    linux命令行执行工具?

    linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,s

    linux执行命令超时?

    linux执行命令超时?,时间,代码,系统,名字,环境,工作,服务,下来,名称,地址,如

    linux显示之前的命令?

    linux显示之前的命令?,系统,信息,命令,地址,服务,环境,数据,标准,数字,不了,l

    linux执行命令后无号?

    linux执行命令后无号?,系统,环境,信息,工具,状态,数据,命令,文件,字符集,环

    linux命令实时显示?

    linux命令实时显示?,系统,实时,时间,信息,情况,命令,对比,电脑,名称,一致,lin

    linux命令显示ip?

    linux命令显示ip?,地址,系统,网络,信息,技术,电脑,手机,设备,服务,管理,配置L

    linux周期执行命令?

    linux周期执行命令?,工作,系统,周期,地址,命令,工具,信息,时间,任务,目录,lin

    linux执行命令大全?

    linux执行命令大全?,工作,系统,地址,信息,命令,目录,工具,基础,设备,发行,Lin

    循环执行linux命令?

    循环执行linux命令?,工具,系统,名称,代码,第一,环境,位置,数字,脚本,变量,Lin

    linux编译时显示命令?

    linux编译时显示命令?,系统,基础,工具,代码,百度,下来,网上,命令,内核,文件,L

    linux命令执行很慢?

    linux命令执行很慢?,软件,系统,工具,分析,机构,服务,培训,教育,数字,数据,Lin

    linux命令行执行py?

    linux命令行执行py?,系统,环境,官网,一致,文件,程序,脚本,源文件,后台,终端,l

    linux查看执行命令?

    linux查看执行命令?,系统,服务,情况,信息,命令,暂停,标准,概念,实时,第一,lin

    linux命令连续执行?

    linux命令连续执行?,连续,通信,工具,数据,代码,命令,设备,系统,发行,情况,如

    linux执行命令卡住?

    linux执行命令卡住?,系统,环境,密码,数据,信息,分析,软件,异常,服务,命令,Lin

    linux显示运行命令?

    linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如

    linux命令执行不动了?

    linux命令执行不动了?,系统,电脑,数据,管理,信息,密码,命令,环境,地方,分析,l

    显示linux网卡命令行?

    显示linux网卡命令行?,系统,信息,工具,网络,服务,电脑,网卡,技术指标,地址,

    linux脚步中执行命令?

    linux脚步中执行命令?,工具,代码,命令,名称,系统,连续,环境,发行,文件,终端,l