如何在BIRT表子组中显示空白条目?

时间:2010-08-16 17:36:41

标签: reporting birt

我正在尝试在BIRT报告中创建一个包含两个组的表。

我首先按年份分组,然后按第二列中的标准分组。假设这个标准是[A,B,C,D]之一。如果不存在一年的标准,则BIRT中的默认值为空白。例如,如果2011年没有任何B或D标准,我的报告将如下所示:

2010
----
A 1
B 2
C 3
D 4

2011
----
A 5
C 6

但是,我希望所有可能的标准都显示出来,即使它们没有特定年份的任何条目。

我尝试将该属性设置为advanced-> section-> show if blank = true,但是没有做任何事情。

有什么想法吗?

(我正在使用birt 2.6.0)

SQL查询(连接到mysql数据源)非常简单:

SELECT year_field, decision_field, sales_field
FROM databaseName

该报告为 http://bit.ly/9SDbNI

并生成如下报告:

alt text

2 个答案:

答案 0 :(得分:2)

正如我之前评论的那样,这是一个数据集问题,而不是BIRT问题。问题是数据集不包括那些年份没有销售这些决策代码的行。

我非常希望多年来会有单独的表格和决策代码,但看起来好像有一张表可以存放一切。因此,我建议以下查询(基于rptdesign文件中的查询,而不是问题):

select y.year_field, d.decision_field, t.sales_field
from
(select distinct year_field from databaseTable) y
cross join (select distinct decision_field from databaseTable) d
left join databaseTable t 
on y.year_field = t.year_field and d.decision_field = t.decision_field

此外,将Count列的定义更改为sales字段的计数,而不是决策字段。

答案 1 :(得分:0)

我注意到你正在使用MySql。使用SELECT IFNULL(<MyCol>,0) from my_table;将空值替换为0。