Previous topicNext topic
Help > 操作指南 > 页面报表/RDL报表操作方法 > 数据管理 >
数据分组统计

在页面报表和RDL报表中,您可以设置分组以组织报表中的数据。最常见的分组方案是在数据区域中按字段或表达式创建组。
根据您选择的数据区域,可以通过以下方式之一对数据进行分组:

在数据区域中分组

当您不想在报表中显示的数据中重复值时,详细信息分组非常有用。

  1. 将表格控件拖放到设计图面上。
  2. 在报表上选择“表格”后,在“属性窗口”下,单击“属性”对话框链接以打开“表格”对话框,切换到“详细数据分组”页。
  3. 在“详细数据分组”页的“分组”下,输入要对其进行数据分组的表达式。例如,=Fields!YearReleased.Value
     
    注意:默认组名(如 Table1_Detail_Group1)显示在“名称”下,你得先到“分组”下设置分组表达式,然后才可以修改组名。
  4. 在文档结构图标签下,您可以选择设置标签以将项目添加到文档目录。有关详细信息,请参阅文档目录
  5. 在“上级分组”下,可以选择为递归层次结构设置上级分组。
  6. 单击“确定”关闭对话框。
  7. 将字段拖放到表数据区域,然后转到预览选项卡以查看分组数据。

提示:您可以在“表-详细数据分组”页的其他选项卡中筛选、设置分页符或设置分组数据的可见性。

在固定页中分组

在页面报表中,您可以将数据分组到固定网页上。固定页上设置的组适用于整个报表,包括报表中的控件。因此,在此处设置分组后,可以决定不对单个数据区域进行分组。

使用以下步骤了解固定页面上的分组。这些步骤假定您已经添加了页面报表模板,将其连接到数据源并创建了数据集。有关详细信息,请参阅快速入门连接到数据源

  1. 右键单击设计图面外的灰色区域,然后选择“固定布局设置”,或者在选择固定页的情况下,在“属性窗口”下,单击“属性”对话框链接以打开“固定页”对话框。
  2. 在“分组”页上的“常规”选项卡的“分组依据”下,输入要对其进行数据分组的字段名称或表达式。例如。=Fields!YearReleased.Value
    注意:设置组后,默认组名称(如FixedPage1_Group)将显示在“名称”下。要修改组名称,请在分组下添加字段名称或表达式以启用名称选项并输入新名称。
  3. 在“文档结构图标签”字段下,可以选择设置标签以将项目添加到文档结构图。
  4. 单击“确定”关闭对话框。
  5. 将数据区域(如表格)拖放到设计图面上,并在其单元格内设置数据。
  6. 转到预览选项卡以查看结果。您会注意到,数据显示在根据每个报表页上的“Year Released”字段排序的组中。

 

详细分组

详细信息分组在“列表”和“表”数据区域中可用。当您不想在详细信息中重复值时,它很有用。设置详细信息分组时,该值将针对分组表达式的每个不同结果(而不是每行数据)重复。

例如,如果使用 Reels 数据库的“电影”表按年份显示影片标题而不设置详细信息分组,则每年看到的次数与该年份的影片数量一样多。

如果将详细信息分组设置为 =Fields!YearReleased.Value,每年只出现一次。

注意:如果使用的详细信息分组表达式生成的值对于每行数据(例如 MovieID)都是不同的,则结果中不会有任何差异。

递归层次结构

如果要在数据中显示父子关系,可以创建递归层次结构。为此,您需要子组的唯一 ID 字段和父组的 ID 字段。

例如,如果您使用以下 SQL 查询从 Reels 数据库中提取数据:

SQL查询

 SELECT EmployeePosition.*, Employee.*, Employee_1.PositionID AS ManagerPosition FROM Employee AS Employee_1 RIGHT JOIN (EmployeePosition INNER JOIN Employee ON EmployeePosition.PositionID = Employee.PositionID) ON Employee_1.EmployeeID = Employee.ManagementID;
 
您可以使用字段在表数据区域中设置详细信息分组,并将字段设置为父组,以显示数据中的父子关系。=Fields.Item("EmployeePosition.PositionID").Value=Fields!ManagerPosition.Value

注意:设置父组时,只能使用一个组表达式。

Level函数

若要更好地可视化递归层次结构中的数据,可以使用 Level 函数。此函数缩进文本并进一步阐明父数据和子数据之间的关系。为此,请在要缩进的文本框的“Padding - Left”属性中设置一个表达式。

例如,在表数据区域中,对于上面的递归层次结构示例,可以在包含 Title 的文本框的 Padding - Left 属性中设置以下表达式,以根据级别缩进值:

=Convert.ToString(2 + (Level()*10)) & “pt”