【问题标题】:Display blanks instead of 0 or 0.0 in a BIRT report在 BIRT 报告中显示空白而不是 0 或 0.0
【发布时间】:2008-09-11 14:41:46
【问题描述】:

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

【问题讨论】:

    标签: eclipse reporting birt


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多