在BIRT中进行分组时,我们经常希望分组值显示在第一行,如下所示:
Group User Reputation
------ --------------- ----------
Admins Bill The Weasel 51,018
Mark Grovel 118,101
Users Pax_my_bags_got_to_go 73,554
Jon Scoot **,***,*** <- overflow
Clueless 92,928
实现这一目标的正常方法是将设计人员列为设计人员:
+---------+--------+--------------+
Tbl Hdr | Group | User | Reputation |
+---------+--------+--------------+
Grp Hdr | [Group] | | |
+---------+--------+--------------+
Grp Dtl | | [User] | [Reputation] |
+---------+--------+--------------+
Grp Ftr | | | |
+---------+--------+--------------+
Tbl Ftr | | | |
+---------+--------+--------------+
遗憾的是,以完全的方式布局数据,并将分组的值放在不同的行上:
Group User Reputation
------ --------------- ----------
Admins
Bill The Weasel 51,018
Mark Grovel 118,101
Users
Pax_my_bags_got_to_go 73,554
Jon Scoot **,***,*** <- overflow
Clueless 92,928
对于数据而言,这是特别痛苦的,因为我们使用的空间是所需空间的两倍,因此有很多组只有一个用户。如果我们将[Group]
数据项向下移动到Grp Dtl
行,我们会为该组中的每一行打印。
在BIRT中,我们如何合并两行Grp Hdr
和第一行Grp Dtl
?
答案 0 :(得分:7)
下面的答案是Mystik的原始答案,但是,尽我所能,我无法让它正常工作(虽然我没有尝试第二个建议,所以它可能工作)。这可能是因为我正在运行BIRT的后级(并且,不,我不允许升级,不幸的是,它是具有自己的发布周期的单独产品的一部分)。
我最终找到的解决方案是将数据值保留在分组行中并选择单元格(不数据值),然后将Drop
控件设置为{{1} },Properties
为General
,而不是默认的Detail
。
在渲染报告时,这会将数据值降低到细节线。
我正在编辑这个答案而不是添加我自己的答案,因为我不想成为一个代表妓女: - )
请尝试按照以下步骤操作:
在高级列表中,您将看到名为“Suppress Duplicates”的属性。对于包含Group数据的列,请将其设置为true,并且您将全部设置。
None
答案 1 :(得分:1)
之前的解决方案运行良好,但我们没有找到隐藏组头中内部边框的明显方法。 这就是我们发现的解决方案:
在事件onCreate上初始化循环变量
i=0; // in onCreate property of group header row
更改“可见性”属性编辑器标签中的条件。根据条件
选中“隐藏元素” i++ == 0
所以最终的布局如下:
+---------+--------+--------------+ | Tbl Hdr | Group | User | +---------+--------+--------------+ | [Group] | [User] | [Reputation] | +---------+--------+--------------+ | | [User] | [Reputation] | <-- that's the line that hide first element +---------+--------+--------------+ | | | | +---------+--------+--------------+
答案 2 :(得分:0)
选择输入或放置组数据的单元格,然后选择 Drop&gt;所有而不是Property Explorer中的无。
或选择 Drop&gt;详细信息用于另一个group_data和data_field单元格的单元格。