如何强制BIRT显示零值?

时间:2010-03-03 08:23:04

标签: sql db2 birt zos

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

例如,如果选择包括:

0 as p3,

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

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

该字段显示为空白。

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

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

如果有人需要发布特定于DBMS的答案,我正在使用DB2 / z v8,尽管即使是基于其他供应商的建议也会受到赞赏。

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

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

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

if (dataSetRow["your_data_set"] == null)
{
    0
}
else
{
    dataSetRow["your_data_set"]
}

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

"0"

表示字符串,没有引号它被视为整数。

答案 2 :(得分:0)

使用十进制数据时,我可以将字段的缩写形式快速+0。

dataSetRow["your_data_set"]+0