在页面报表和RDL报表中,您可以设置分组以组织报表中的数据。最常见的分组方案是在数据区域中按字段或表达式创建组。
根据您选择的数据区域,可以通过以下方式之一对数据进行分组:
当您不想在报表中显示的数据中重复值时,详细信息分组非常有用。

提示:您可以在“表-详细数据分组”页的其他选项卡中筛选、设置分页符或设置分组数据的可见性。
在页面报表中,您可以将数据分组到固定网页上。固定页上设置的组适用于整个报表,包括报表中的控件。因此,在此处设置分组后,可以决定不对单个数据区域进行分组。
使用以下步骤了解固定页面上的分组。这些步骤假定您已经添加了页面报表模板,将其连接到数据源并创建了数据集。有关详细信息,请参阅快速入门和连接到数据源。

详细信息分组在“列表”和“表”数据区域中可用。当您不想在详细信息中重复值时,它很有用。设置详细信息分组时,该值将针对分组表达式的每个不同结果(而不是每行数据)重复。
例如,如果使用 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 函数。此函数缩进文本并进一步阐明父数据和子数据之间的关系。为此,请在要缩进的文本框的“Padding - Left”属性中设置一个表达式。

例如,在表数据区域中,对于上面的递归层次结构示例,可以在包含 Title 的文本框的 Padding - Left 属性中设置以下表达式,以根据级别缩进值:
=Convert.ToString(2 + (Level()*10)) & “pt”
