如何强制 BIRT 显示零值?

Posted

技术标签:

【中文标题】如何强制 BIRT 显示零值?【英文标题】:How do I force BIRT to display zero values? 【发布时间】:2010-03-03 08:23:03 【问题描述】:

我有一个 BIRT 报告的情况。我创建的报告坚持将某些字段显示为空白而不是零。当字段实际上是一个不返回任何行的子选择时,就会出现这种情况。

例如,如果选择包括:

0 as p3,

然后 0 显示正常。但是,如果选择具有:

(select sum(other_field) from other_table where ...) as p3,

该字段显示为空白。

修改数据以便为子选择存在行会导致显示一个值,即使它们的结果值为零

所以我认为 BIRT 以某种方式将返回零行的子选择视为 NULL(它也显示为空单元格)而不是零。有谁知道如何强制 BIRT 显示实际的 0 而不是空单元格?

如果有人需要发布特定于 DBMS 的答案,我将使用 DB2/z v8,尽管即使是基于其他供应商的建议也将不胜感激。

【问题讨论】:

【参考方案1】:

当列或表达式可能返回 NULL 时,尝试使用 COALESCE 函数强制一个值。

COALESCE((select sum(other_field) from other_table where ...), 0) as p3,

【讨论】:

【参考方案2】:

另一种方法,虽然不那么优雅但有时是必要的(例如,如果您正在执行一个 无法更改的存储过程),那就是使用 javascript 在运行时强制显示“0”时间。

使用以下表达式进行数据绑定:

if (dataSetRow["your_data_set"] == null)

    0

else

    dataSetRow["your_data_set"]

根据数据类型,您可能需要将引号添加到零

"0"

表示字符串,不带引号将其视为整数。

【讨论】:

【参考方案3】:

在使用十进制数据时,我能够对字段进行快速 +0 作为缩短版本。

dataSetRow["your_data_set"]+0

【讨论】:

以上是关于如何强制 BIRT 显示零值?的主要内容,如果未能解决你的问题,请参考以下文章

在 BIRT 报告中定义书签,以便在 pdf 输出中显示

如何在 BIRT 中禁用或启用图表可见性

如何在POI XSSFWorkbook中消除零值数据条

按照显示模式将缺失的行(零值)插入表中

ostream showbase对于零值不显示“0x”

零值的熊猫堆积面积图