使用报表设计器设计 Reporting Services 分页报表 (SSRS)

适用于: SQL Server 2016 (13.x) Reporting Services 及更高版本

可使用报表设计器创建功能齐全的 SQL Server Reporting Services (SSRS) 分页报表和报表解决方案。 报表设计器提供:

  • 定义数据源、数据集和查询的方法。
  • 设计和自定义数据区域和字段布局的功能。
  • 交互式功能,如参数和协同工作的报表集。

报表设计器是 SQL Server Data Tools (SSDT) 的一项功能,后者是一种用于创建商业智能解决方案的 Microsoft Visual Studio 环境。

SSDT 安装

SQL Server 中不包含 SSDT。 无需单独安装 SSDT。 有关说明,请参阅使用 Visual Studio 安装 SSDT

若要使用报表设计器模板,还需要安装适用于 Visual Studio 的 SSRS 扩展。 有关说明,请参阅为 Analysis Services、Integration Services 和 Reporting Services 安装扩展

报表项目的优点

在报表设计器中,可使用项目来整理报表。 报表项目充当报表定义和资源的容器。 可使用项目执行以下任务:

  • 在一个容器中整理报表和相关项。
  • 在本地测试包含报表和相关项的报表解决方案。
  • 将相关项部署在一起。 可使用项目属性和配置管理将项目部署到多个环境。
  • 为报表和相关项保留一组主副本,因为部署后,已发布的报表可能会被意外修改。

可使用本文中的信息为 SSDT 解决方案中的单个报表项目设计分页报表和相关项。 有关 SSDT 中的解决方案和多个项目的详细信息,请参阅 SQL Server Data Tools (SSDT) 中的 Reporting Services

共享数据源和数据集

SSDT 提供了一种为报表解决方案定义和部署共享数据源和共享数据集的方法。

  • 若要独立于项目中的其他项部署共享数据源,可使用 OverwriteDataSourcesTargetDataSourceFolder 属性。
  • 若要独立于项目中的其他项部署共享数据集,可使用 OverwriteDatasetsTargetDatasetFolder 属性。

有关详细信息,请参阅设置部署属性 (Reporting Services)

在报表设计器中,可在“报表数据”窗格和解决方案资源管理器中定义在报表中使用的数据源和共享数据集。 有关更多信息,请参阅报表数据窗格

如果数据源已发布到报表服务器或 SharePoint 站点,但未包含在 SSDT 解决方案中,则无法使用 SSDT 打开该数据源。 同样,不能使用 SSDT 直接从报表服务器或 SharePoint 站点打开已发布的数据集。 若要在这些情况下打开数据源或数据集,可使用报表生成器。 有关详细信息,请参阅报表生成器创作环境 (SSRS)。 对于数据集,在共享数据集模式下使用该环境。

SSDT 是一种客户端工具。 你可以用其执行以下操作:

  • 在本地计算机上测试报表解决方案。
  • 将报表解决方案部署到测试环境中来测试服务器解决方案。
  • 将报表解决方案部署到生产环境中。
  • 使用 SSDT 查询设计器的预览功能,在本地创建和测试查询结果。

部署后:

有关在分页报表中包含数据的详细信息,请参阅在报表生成器中创建数据连接字符串

分页报表

分页报表是报表项目中存储的文件。 可将分页报表文件用作独立报表、子报表或主报表中钻取操作的目标。 若要独立于项目中的其他项部署报表,可使用 TargetReportFolder 属性和其他属性。 有关详细信息,请参阅设置部署属性 (Reporting Services)

注意

如果在 SharePoint 模式下发布到报表服务器,则无法在报表设计器项目中测试某些报表解决方案功能。 对报表、子报表和钻取报表的引用必须使用全限定的 URL,此类 URL 只能在部署报表项目后进行测试。 有关详细信息,请参阅报表服务器上项目的 URL 示例 - SharePoint 模式

如果在 Visual Studio 中安装 SSRS 扩展,如前面 SSDT 安装中所述,可使用报表服务器项目模板创建新项目。 然后,可通过以下任一方式将报表添加到项目中:

  • 使用报表向导。 按照向导中的说明逐步创建报表。 报表向导将数据定义和报表设计简化为一系列步骤,生成完成的报表。 您可以添加样式以便为自己的组织自定义向导。 有关详细信息,请参阅使用报表向导添加新报表

  • 添加报表类型的新项。 一个空报表将在报表设计器中打开。 有关详细信息,请参阅添加新的空白报表

  • 添加现有项。 现有报表定义 (.rdl) 文件在报表设计器中打开。 使用旧版本的 SSRS 打开报表或项目可能会自动将项目升级到当前版本,并将报表自动升级到当前架构。 有关更多信息,请参阅升级报表 (SSRS)

  • 导入 Microsoft Access 报表。 导入过程从 Access 数据库(.mdb、.accdb)或项目 (.adp) 文件中导入所有报表。 报表设计器将数据库或项目文件中的每个报表转换为报表定义语言 (RDL),然后将其保存在报表项目中。 并非 Access 报表的所有功能都会转移到报表定义 (.rdl) 文件。 有关详细信息,请参阅从 Microsoft Access (Reporting Services) 导入报表

    注意

    若要使用导入功能,必须将 Access 2002 或更高版本与报表设计器安装在同一台计算机上。 在导入 Access 报表时,必须能够使用报表的数据源。

  • 直接使用 RDL 文件。 报表以 XML 格式保存为 RDL 文件。 可在报表设计器、文本编辑器或任何 XML 编辑器中编辑此文件。

    在报表设计器中编辑报表定义源时,使用的是已安装开发工具的 SQL Server 版本的当前 RDL 架构。 在生成项目时,架构版本可能会根据您的部署属性而发生变化。 有关详细信息,请参阅 SQL Server Data Tools (SSDT) 中的部署和版本支持

    直接编辑 RDL 可能导致报表无法发布到报表服务器,或者无法运行。 与任何 XML 文件一样,确保对元素中使用的 XML 特定字符进行正确编码。 发布报表时,报表服务器会使用该架构来验证 RDL 文件中的 XML。

    若要包含不属于 RDL 模式的架构的元素,请将其放置于自定义元素中。 自定义呈现扩展插件可读取自定义元素。 但 SSRS 提供的呈现扩展插件会忽略该元素。 例如,可使用自定义元素在报表中存储注释。

    有关详细信息,请参阅报表定义语言 (SSRS)

报表部件

注意

SQL Server Reporting Services 2019 之后的所有 SQL Server Reporting Services 版本,以及 Power BI Report Server September 2022 之后的所有 Power BI Report Server 版本已弃用报表部件。

在报表设计器中,可以在项目中创建表、图表和其他分页报表项。 创建后,可以将其作为“报表部件”发布到报表服务器或者与报表服务器相集成的 SharePoint 站点上。 此操作允许你和其他人在其他报表中对其重复使用。 有关详细信息,请参阅报表设计器中的报表部件 (SSRS)

若要独立于项目中的其他项部署报表部件,可使用 TargetReportPartFolder 属性和其他属性。 有关详细信息,请参阅设置部署属性 (Reporting Services)

资源

您可以将与您的项目相关、但报表服务器尚未处理的文件添加到您的项目中。 例如,可以添加图像,也可以为空间数据添加 Environmental Systems Research Institute, Inc. (ESRI) 形状文件。 有关详细信息,请参阅资源

分页报表布局

若要创建报表布局,请将报表项和数据区域从报表设计器工具箱拖到设计图面,然后进行排列。 将数据集字段拖到设计图面上的项之后,就可以向报表添加数据。 若要在 Tablix 数据区域中按组整理数据,请将数据集字段拖至“分组”窗格。 由于报表创作工具质上是一种创建报表定义的方法,因此报表生成器和报表设计器中的报表设计方法类似。

预览分页报表

可使用“预览”视图来验证报表数据和布局设计。 预览报表时,报表处理器会验证报表定义架构和表达式语法。 并将列出“输出”窗口中的问题。

注意

在预览报表时,报表数据将缓存到本地计算机上的文件中。 使用相同的查询、参数和凭据再次预览同一报表时,报表设计器将检索缓存副本,而不是重新运行查询。 数据文件将在报表定义文件所在的同一目录中另存为 <report-name>.rdl.data。 关闭报表设计器时,不会删除该文件。

您可以通过以下方式预览报表:

  • “预览”视图。 如果选择“预览”选项卡,报表将在本地运行。 它使用的报表处理和呈现功能与报表服务器提供的功能相同。 显示的报表是交互式图像。 可选择参数、选择链接、查看文档结构图、展开和折叠报表的隐藏区域。 您还可以使用所安装的任意一种呈现格式将报表导出。

  • 独立预览。 可在浏览器中运行本地报表。 通过使用调试配置,您还可以使用此模式调试您撰写的自定义程序集。 在调试模式下运行项目有以下三种方法:

    • 在“调试”菜单中,选择“开始调试”
    • 在 Visual Studio 标准工具栏上,选择“开始”按钮。
    • 可选择 F5

    如果使用生成报表但不进行部署的项目配置,则在当前配置的 StartItem 属性中指定的报表会在单独的预览窗口中打开。

    注意

    若要使用调试模式,必须设置开始项。 若要设置开始项,请转到解决方案资源管理器,右键单击报表项目,然后选择“属性”。 然后,在 StartItem 中,选择要显示的报表名称。

    如果要预览不是项目的开始项的特定报表,可选择生成报表但不进行部署的配置。 例如,使用 DebugLocal 配置。 然后右键单击报表,选择“运行”。 必须选择不部署报表的配置。 否则,报表将发布到报表服务器,而不是在本地预览窗口中显示。

  • 打印预览。 首次在预览模式下或在预览窗口中查看报表时,报表视图类似于 HTML 呈现扩展插件生成的报表。 虽然预览并非 HTML 格式,但报表的布局和分页与 HTML 格式的输出类似。

    可通过切换到打印预览模式,查看报表的打印效果。 在“预览”工具栏上选择“打印预览”时,报表就会像在物理页上一样显示。 此视图与图像和 PDF 呈现扩展插件生成的输出类似。 打印预览并非图像或 PDF 文件,但报表的布局和分页与这些格式的输出类似。 你可以选择报表图像的大小,例如,设置页面的宽度。

    打印预览有助于识别在打印报表时可能遇到的呈现问题。 常见的呈现问题包括:

    • 由于报表太宽,无法容纳你为报表指定的纸张大小,导致产生多余的空白页。
    • 由于报表包含的矩阵动态扩展,超出指定的纸张宽度,导致产生多余的空白页。
    • 组与组之间的分页符不符合预期。
    • 页眉和页脚未按预期显示。
    • 需要修改的报表布局,以便在打印格式中更好地显示。

保存和部署分页报表

在报表设计器中,您可以在本地保存报表和其他项目文件,或者将它们部署到报表服务器或 SharePoint 站点。 共享数据源、共享数据集、报表、报表资源和报表部件可以单独部署或一起部署,具体部署方式取决于您配置的项目部署属性。 有关更多信息,请参阅配置和部署属性

在报表设计器中,可使用 SSDT 中当前版本的 SSRS 支持的报表定义架构来设计报表。 可以为特定报表服务器或 SharePoint 站点设置项目部署属性。 保存报表时,报表设计器将报表定义保存到架构中与目标报表服务器上的版本匹配的生成目录中。 若要创建报表,以在使用旧版本 SSRS 的报表服务器上发布,报表设计器会删除目标架构中不存在的报表项。 此操作会自动发生,无需提示。 在发生此操作时,原始报表定义将保留在项目文件夹中。 报表设计器部署的修改后的报表定义位于生成文件夹中。

注意

对于调试表达式和部署错误,您必须在生成文件夹中查看报表定义。 在这种情况下,不要使用报表文件快捷菜单上的“查看代码”来查看报表定义。 选择“查看代码”后,可从项目文件夹中打开报表定义源。

有关详细信息,请参阅 SQL Server Data Tools (SSDT) 中的部署和版本支持

本地保存报表

在报表设计器中处理报表或其他项目项时,文件将保存到本地计算机或你有权访问的其他计算机上的文件共享中。

如果使用源控件软件,则保存报表的操作可能会将其签入源控件服务器。 有关详细信息,请参阅源代码管理

部署或发布分页报表

可通过 SSDT 将报表或其他项目项部署到多个版本的 SSRS 报表服务器。 使用项目配置可以控制将报表定义升级到与目标报表服务器兼容的架构版本。 项目配置控制某些属性,包括目标报表服务器,生成过程临时存储预览和部署报表定义的文件夹,以及错误级别。 有关更多信息,请参阅配置和部署属性设置部署属性 (Reporting Services)

将分页报表导出为不同的文件格式

报表可导出为各种格式。 这些格式会影响某些报表布局和交互功能的运行。 有关各种输出格式的设计注意事项的详细信息,请参阅导出分页报表(报表生成器)

报表验证和错误级别

在预览之前和在部署过程中对报表进行验证。 生成报表时可能会出现很多问题。 例如,报表可能包含与项目配置指定的 SSRS 版本不兼容的字符串(比如表达式或查询)。

使用 ErrorLevel 属性管理生成警告和错误。 可为 ErrorLevel 属性分配一个 0 到 4(含 4)之间的值。 此值确定将哪些生成问题报告为错误,以及将哪些生成问题报告为警告。 默认值为 2。 警告和错误将写入 SSDT“输出”窗口。

严重级别小于或等于 ErrorLevel 值的问题将报告为错误。 其他问题则报告为警告。

下表列出了错误级别。

错误级别 描述
0 最严重的生成错误,会阻止预览和部署报表。
1 严重的生成错误,会彻底更改报表布局。
2 不太严重的生成错误,会大幅更改报表布局。
3 微小的生成问题,会轻微更改报表布局,但不明显。
4 关于发布问题的警告

可尝试预览或部署包含 SSRS 版本不支持的报表项的报表。 但这些报表项有时会从报表中删除,并发出 2 级错误。 如果 ErrorLevel 属性设置为默认值 2,则在此情况下,生成将会失败。

可将 ErrorLevel 值更改为 0 或 1 来解决此问题。 然后,当删除该项时,会发出警告,生成过程将继续。