对报表中的数据进行分组(Visual Studio 报表设计器)

表、矩阵和列表数据区域中的数据可以按字段和表达式进行分组。您可以使用表内的组为表中的数据提供逻辑区域。还可以向组头或组尾添加小计和其他表达式。在矩阵中,组显示为动态的列或行。您可以将组嵌套在其他组中,并添加小计。可以使用列表在报表中提供单独的组,也可以将列表放在列表中形成嵌套组。

设置数据区域的组属性

数据区域是用于显示重复数据行的数据绑定报表项。可以设置任意数据区域的组属性,来组织数据的显示方式。

递归层次结构

递归层次结构是一种数据层次结构,其中所有父子关系都以数据表示。例如,可以使用递归层次结构创建显示经理 - 员工关系的组织图表。在这种层次结构中,表中包括员工 ID 列和经理 ID 列。经理 ID 会引用其他员工的员工 ID,从而建立员工的层次结构。

若要建立递归层次结构,必须为数据区域中的组设置某些属性。使用包含唯一 ID(如员工 ID)的字段作为组表达式,然后在 Parent 属性中使用包含父 ID(如经理 ID)的字段。定义为递归层次结构的组(即使用 Parent 属性的组)只能有一个组表达式。

执行下列步骤可使用 AdventureWorks 数据库中的 Employee 表创建一个递归层次结构。本教程假设您已了解如何创建报表、数据集、查询和表。有关这些功能的信息,请参阅相关文档。

  1. 基于从下面的查询中返回数据的 AdventureWorks 数据库创建数据集:

    SELECT FirstName, LastName, EmployeeID, ManagerID

  2. 向项目中添加客户端报表定义 (.rdlc) 文件,然后以图形设计模式打开报表。

  3. 向报表布局中添加一个表数据区域。

  4. 在表的第一个详细信息单元格中,键入下面的表达式:

    =Fields!FirstName.Value & " " & Fields!LastName.Value

  5. 右击表的角部,然后单击**“属性”**。

  6. 在**“组”选项卡上,单击“详细信息分组”**。

  7. 在**“常规”选项卡的“表达式”**框中,键入或选择下面的表达式:

    =Fields!EmployeeID.Value

  8. 在**“父组”**框中,键入或选择下面的表达式:

    =Fields!ManagerID.Value

Level 函数

可以在填充文本框时使用 Level 函数,根据员工在层次结构中的级别来缩进员工姓名。若要对上一示例中的表执行该操作,请在第一个详细信息单元格的文本框左填充中使用下面的表达式:

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

填充属性都需要一个 nnxx 格式的字符串,其中 nn 为数字,xx 是度量单位。默认情况下,文本框的填充是 2pt。上面的表达式将生成一个使用 Level 函数并根据级别增加填充大小的字符串。例如,级别为 1 的行会产生 12pt (2 + (1*10)) 的填充,而级别为 3 的行会产生 32pt (2 + (3*10)) 的填充。

有关可用函数的信息,请参见用于报表的内置函数(Visual Studio 报表设计器)

另请参见

任务

如何:在报表中筛选数据(Visual Studio 报表设计器)

概念

在报表中使用表达式(Visual Studio 报表设计器)