我们如何在不浪费行的情况下分组BIRT,并且仍然只在第一行打印组项?

时间:2010-03-19 01:56:40

标签: reporting grouping birt

在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

3 个答案:

答案 0 :(得分:7)

下面的答案是Mystik的原始答案,但是,尽我所能,我无法让它正常工作(虽然我没有尝试第二个建议,所以它可能工作)。这可能是因为我正在运行BIRT的后级(并且,不,我不允许升级,不幸的是,它是具有自己的发布周期的单独产品的一部分)。

我最终找到的解决方案是将数据值保留在分组行中并选择单元格(数据值),然后将Drop控件设置为{{1} },PropertiesGeneral,而不是默认的Detail

在渲染报告时,这会将数据值降低到细节线。

我正在编辑这个答案而不是添加我自己的答案,因为我不想成为一个代表妓女: - )


请尝试按照以下步骤操作:

  1. 按照您的方式创建群组。
  2. 然后将组数据项向下拖动一行(见下文)。此时,您可以根据需要删除组标题行。
  3. 然后单击其中包含组数据项的列。
  4. 选择后,转到控件的属性资源管理器并滚动到底部,选择“高级”。
  5. 在高级列表中,您将看到名为“Suppress Duplicates”的属性。对于包含Group数据的列,请将其设置为true,并且您将全部设置。

    None

答案 1 :(得分:1)

之前的解决方案运行良好,但我们没有找到隐藏组头中内部边框的明显方法。 这就是我们发现的解决方案:

  1. 将详细信息行中的元素复制到标题行中的空单元格。
  2. 在事件onCreate上初始化循环变量

    i=0; // in onCreate property of group header row

  3. 更改“可见性”属性编辑器标签中的条件。根据条件

    选中“隐藏元素”

    i++ == 0

  4. 所以最终的布局如下:

       +---------+--------+--------------+
       | 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单元格的单元格。