如何在报告服务中对多个详细信息网格进行分组

How to group multiple detail grids in reporting services

我有一个设定要求来生成如下所示的报告(详细信息网格基于 Hearing table ID 或 HearingDate 和 CaseId 并按其分组):

Hearing Group (repeat for each hearing)

    ┌───────────────────────────────────────────────────────────────────┐
    │ Hearing Date: [HearingDate]     Case ID: [CaseId] etc...          │
    │                                                                   │
    │ | Start Time  | Hearing Type  | etc   |                           │
    │ | [StartTime] | [HearingType] | [etc] |                           │
    │                                                                   │
    │ Participant List:                                                 │
    │                                                                   │
    │ | Role   | Participant Name  | Participant End Date |             │
    │ | [Role] | [ParticipantName] | [ParticipantEndDate] |             │
    │                                                                   │
    │ | Violation Description   | Plea Description  | Person Charged  | │
    │ | [Violation Description] | [PleaDescription] | [PersonCharged] | │
    └───────────────────────────────────────────────────────────────────┘

我对此进行了相当多的研究,但我认为我无法使用一个数据集和一个 tablix 并以这种方式对其进行分组,因为有多个详细信息网格。如果我只有一个细节网格,当然,那很容易,但我还没有找到一种方法来处理两个层次的细节。

显然,如果您嵌套两个 tables/tablixes,SSRS 会将您限制在一个数据集内,所以这是不可能的,而且跨列的灵活性有限。我不确定我是否可以使用列表(我没有经验)或使用 LookupSet 函数来完成此操作。我不想因为我的设计或选择损害性能的路线而走上错误的道路,因为此报告的参数允许听证会开始日期和结束日期的日期范围,因此这可能会生成许多记录。

一些想法将不胜感激!

这是一个 link 博客,其中有一个关于如何使用列表的相当不错的示例。如您所见,此人在列表中有很多事情要做,所以我认为您应该能够完成您需要的事情。要回答您的问题,是的,本质上就是这么简单。一个包含所有 relevant/group-able 字段的数据集。创建一个按听力分组的列表,然后根据需要放入您的 tablix。

http://www.bidn.com/blogs/timmurphy/ssas/683/using-a-list-object-in-ssrs

设置

只是为了设置一个示例,让我们从以下数据开始(您可以在 SSRS 中将其作为数据集输入)

;WITH Games (Division,  Team,      Wins, Loses) AS (
     SELECT  'North',  'Puffins',  2,    10     UNION
     SELECT  'North',  'Robbins',  6,    5      UNION
     SELECT  'South',  'Parrots',  9,    3
)
SELECT * FROM Games

我们想分组 Division 然后列出每个分区中的所有团队,但在两个不同的块中。所以循环一次并显示胜利,然后 然后 循环每个分区的所有团队并显示损失 - 像这样:

解决方案

  1. 添加一个List控件

    注意:默认情况下,列表视图应该只有一个单元格,并且该单元格中应该有一个 Rectangle。单元格的直接子元素占据整个单元格大小,因此拥有一个矩形允许您在其中布局内容

  2. 添加数据集并将其应用于列表

    添加列表或右击 select properties > general > dataset

  3. 时可能会提示
  4. grouping pane 中,在 Row Groups 下,右键单击 Details 和 select Group Properties.

    注意:不要添加 这里有一个新群;相反,我们向现有详细信息部分添加分组表达式

  5. 添加分组表达式和select数据集中要分组的字段

  6. 将表格添加到列表的单元格/矩形区域。

    数据集应该是预selected 和只读的,因为我们在详细信息部分中:

  7. 添加您想要的任何其他列或控件

进一步阅读