Report Builder 分页报表中的表、矩阵和列表

适用于: Microsoft Report Builder (SSRS) Power BI Report Builder SQL Server Data Tools 中的 Report Designer

在报表生成器中,表、矩阵和列表是在以行和列形式组织的单元中显示分页报表数据的数据区域。 单元格通常包含文本数据,例如文本、日期和数字。 但它们也可以包含仪表、图表或报告项(如图像)。 表、矩阵和列表通常被称为 Tablix 数据区域。

表、矩阵和列表模板是在 Tablix 数据区域的基础上建立的,Tablix 数据区域是可以在单元中显示数据的灵活的网格。 在表和矩阵模板中,单元将组织成行和列的形式。 模板是基础泛型 Tablix 数据区域的变体。 因此可以结合模板格式显示数据,并且在开发报表时更改表、矩阵或列表以便包括其他数据区域的功能。 例如,如果添加了表且发现它不能满足需求,则可以添加列组以使表成为矩阵。

表和矩阵数据区域可以通过包括嵌套的表、矩阵、列表、图表和仪表,显示复杂的数据关系。 表和矩阵具有表格形式的布局,并且其数据来自在单个数据源基础上建立的单个数据集。 表和矩阵之间的主要差异在于,表只能包含行组,但矩阵可具有行组和列组。

列表有所不同。 它们支持自由布局,可以包含多个对等表或矩阵,其中每个表或矩阵使用来自不同数据集的数据。 列表也可以用于发票之类的表单。

下图显示了带有表、矩阵或列表的简单报表:

屏幕截图显示了表、矩阵和列表的不同标记示例。

若要开始使用表、矩阵和列表,请参阅这些教程:

注意

可以将表、矩阵和列表作为报表部件与报表分开发布。 有关详细信息,请参阅 报表部件(报表生成器和 SSRS)。 但是,SQL Server Reporting Services 2019 之后的所有 SQL Server Reporting Services 版本已弃用报表部件,并且它们从 SQL Server Reporting Services 2022 和 Power BI 报表服务器开始停止支持。

使用表

使用表显示详细数据、按行组组织数据或同时执行这两项操作。 模板包含三个列和一个表头行和一个数据详细信息行。 下图显示了在设计图面上选择的初始模板:

屏幕截图显示了 Report Builder 中的空表。

可以按单个字段、多个字段或通过编写自己的表达式来对数据进行分组。 可以创建嵌套的组或独立的相邻组和显示分组数据的聚合值,或将合计添加到组。 例如,如果表有名为 Category 的行组,则可以为每个组添加小计以及报表的总计。 为了改进表的外观和突出显示要强调的数据,可以合并单元并将格式应用于数据和表标题。

可以最初隐藏详细信息或分组数据,并包含向下钻取切换,让用户选择显示多少数据。

有关详细信息,请参阅分页报表中的表 (Report Builder)

使用矩阵

使用矩阵显示按行和列进行分组的聚合数据汇总,类似于数据透视表或交叉表。 每行和每列组的唯一值数量决定了行数和列数。 下图显示了在设计图面上选择的初始矩阵模板:

屏幕截图显示了 Report Builder 中的空矩阵。

您可以按行组和列组中的多个字段或表达式对数据进行分组。 在运行时,当报表数据和数据区域合并时,随着为列组添加列以及为行组添加行,矩阵会在页面上水平和垂直增长。 矩阵单元显示仅限于单元所属行组和列组的交集的聚合值。 例如,你可能有一个矩阵,其中有一个名为“类别”的行组和两个名为“区域”和“年份”的列组,用于显示销售总额。 报表显示两个单元格,其中包含“类别”组中每个值的销售总额。 两个交集处的单元格均有范围限定。 一个单元格是“类别和区域”,另一个是“类别和年份”。矩阵可以包含嵌套组和相邻组。 嵌套组具有父子关系,相邻组具有对等关系。 可以添加矩阵内嵌套行组和列组的任何级别的小计。

为使矩阵数据更具可读性并突出显示想要强调的数据,可以合并单元格或水平和垂直拆分它们。 可将格式应用于数据和组标题。

还可包括最初隐藏详细信息数据的向下钻取切换开关。 然后,用户可以选择切换开关来根据需要显示更多或更少详细信息。

有关详细信息,请参阅在分页报表中创建矩阵 (Report Builder)

使用列表

使用列表创建自由格式布局。 不用局限于网格布局,因此可以在列表中自由放置字段。 可以使用列表设计用于显示多个数据集字段的表单,也可以将其用作容器以便并排显示分组数据的多个数据区域。 例如,可以为列表定义一个组。 可以添加表、图表和图像。 可以以表和图形形式显示每个组值的值,就像员工或患者记录一样。

屏幕截图显示了 Report Builder 中的空列表。

有关详细信息,请参阅在分页报表中创建带列表的发票和表单(报表生成器)

准备数据

表、矩阵和列表数据区域显示来自数据集的数据。 您可以在检索数据集数据的查询中准备数据,也可以通过设置表、矩阵或列表中的属性来准备数据。

用于检索报表数据集数据的查询语言(如 Transact-SQL)可用于准备数据,方法是使用筛选器以仅包含数据的子集。 此操作将 null 值或空白替换为常量,使报表更具可读性,并对数据进行排序和分组。

如果您选择在报表的表、矩阵或列表数据区域中准备数据,则可以对数据区域或数据区域内的单元设置属性。 如果要筛选数据或对数据进行排序,则对数据区域设置属性。 例如,若要对数据进行排序,则可以指定要依据其进行排序的列以及排序方向。 如果要为某一字段提供可选值,您可以设置显示该字段的单元文本的值。 例如,若要在某一字段为空或 null 时显示空白,请使用表达式来设置值。

有关详细信息,请参阅准备在分页报表的 Tablix 数据区域中显示的数据 (Report Builder)

生成和配置表、矩阵或列表

向报表添加表或矩阵时,可以使用表和矩阵向导。 或者,可以从 Report Builder 和 Report Designer 提供的模板手动生成它们。 而列表是根据列表模板手动生成的。

该向导将指导您一步步地快速生成并配置表或矩阵。 完成向导或自行生成表后,可以进一步配置和优化它们。 通过数据区域上的右键单击菜单访问的对话框,可以轻松设置最常用的属性:

  • 分页符
  • 可重复性
  • 页眉和页脚可见性
  • 显示选项
  • filters
  • sorting

Tablix 数据区域提供大量其他属性,这些属性只能在 Report Builder 的“属性”窗格中设置。 例如,如果想要在表、矩阵或列表的数据集为空时显示一条消息,请在“属性”窗格的 NoRowsMessage Tablix 属性中指定消息文本。

Tablix 模板之间的更改

不用局限于初始 tablix 模板选择。 添加组、总计和标签时,您可能希望修改 Tablix 设计。 例如,您可能会从表开始,然后删除详细信息行和添加列组。 有关详细信息,请参阅了解分页报表中 Tablix 数据区域的灵活性 (Report Builder)

通过添加任何 Tablix 功能,可以继续开发表、矩阵或列表。 Tablix 功能包括显示行和列中的分组数据的详细信息数据或聚合。 可以创建嵌套组、独立的相邻组或递归组。 可以对分组数据进行筛选和排序,并通过在组定义中包括多个组表达式来方便地组合组。

可以为组添加总计,或者为数据区域添加总计。 可以隐藏行或列以简化报表,并使用户能够切换显示隐藏数据,这与明细报表中相同。 有关详细信息,请参阅控制 Tablix 数据区域在分页报表页上的显示 (Report Builder)

使用 Tablix 数据区域

下表提供了有关使用 Tablix 数据区域的描述的文章:

文章 说明
分页报表中的 Tablix 数据区域(报表生成器) 解释与 Tablix 数据区域相关的关键概念:Tablix、详细信息和分组数据、列组和行组以及静态和动态行和列。
在分页报表的 tablix 数据区域中添加数据 (Report Builder) 提供与向 Tablix 数据区域添加详细和分组数据、小计和总计以及标签有关的信息。
控制 Tablix 数据区域在分页报表页上的显示 (Report Builder) 介绍 Tablix 数据区域的属性,可以修改这些属性以便更改在报表中查看它时该数据区域的显示方式。
控制分页报表中的行标题和列标题 (Report Builder) 介绍当表、矩阵或列表数据区域水平或垂直跨越多页时如何控制行和列标题。
在分页报表中创建递归层次结构组(报表生成器) 介绍如何显示递归数据,其中字段表示数据集中父级和子级之间的关系。
Report Builder 分页报表中的组 说明什么是组以及何时使用它们,并介绍可用于不同 Tablix 数据区域的组。