6

在 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

4

3 回答 3

6

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

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

这会在呈现报表时将数据值降低到详细信息行。

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


尝试按照以下步骤操作:

  1. 就像你一样创建组。
  2. 然后将组数据项向下拖动一行(见下文)。此时,您可以根据需要删除组标题行。
  3. 然后单击其中包含组数据项的列。
  4. 选择后,转到控件的属性资源管理器并滚动到底部,选择“高级”。
  5. 在高级列表中,您将看到一个名为“Suppress Duplicates”的属性。为其中包含组数据的列设置此值,您将完成所有设置。

              Supress
             Duplicates
            +---------+--------+--------------+
    Tbl Hdr | Group   | User   |   Reputation |
            +---------+--------+--------------+
    Grp Hdr |                                 |  <-delete this row AFTER Group Creation
            +---------+--------+--------------+
    Grp Dtl | [Group] | [User] | [Reputation] |
            +---------+--------+--------------+
    Grp Ftr |         |        |              |
            +---------+--------+--------------+
    Tbl Ftr |         |        |              |
            +---------+--------+--------------+
    
于 2010-03-19T18:01:19.063 回答
1

之前的解决方案效果很好,但是我们没有找到在组标题中隐藏内部边框的明显方法。这就是我们找到的解决方案:

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

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

  3. 在“可见性”属性编辑器选项卡中更改条件。根据条件检查“隐藏元素”

    i++ == 0

所以最终的布局将如下所示:

   +---------+--------+--------------+
   | Tbl Hdr | Group  |    User      |
   +---------+--------+--------------+
   | [Group] | [User] | [Reputation] |
   +---------+--------+--------------+
   |         | [User] | [Reputation] | <-- that's the line that hide first element  
   +---------+--------+--------------+
   |         |        |              |
   +---------+--------+--------------+
于 2011-03-04T16:24:16.570 回答
0

选择输入或放置组数据的单元格,然后在 Property Explorer 中选择Drop > All而不是None 。

或者为另一个 group_data 和 data_field 单元格的单元格选择Drop > Detail

于 2014-09-17T08:19:15.390 回答