呈现扩展插件概述

呈现扩展插件是将报表数据和布局信息转换为设备特定格式的报表服务器的组件或模块。 SQL Server Reporting Services 包括多个呈现扩展插件:HTML、Excel、Word、PowerPoint、CSV 或文本、XML、图像、数据馈送和 PDF。 可以创建其他呈现扩展插件以生成其他格式的报表。

注意

若要确定哪些呈现扩展插件可用,您可以在 RSReportServer.config 文件中查看已安装的扩展插件列表。

下表介绍随 Reporting Services 提供的呈现扩展插件。

扩展名称 说明
WORDOPENXML 在 Microsoft Word 中将报表呈现为 DOCX 文件。 格式在报表工具栏的“导出”下拉列表中显示为 Word
WORD 在 Microsoft Word 中将报表呈现为 DOC 文件。 格式不会显示在报表工具栏的“导出”下拉列表中,因为它包含在后向兼容性中。
EXCELOPENXML 将 Microsoft Excel 中的报表呈现为 XLSX 文件。 格式在报表工具栏的“导出”下拉列表中显示为 Excel
EXCEL 将 Microsoft Excel 中的报表呈现为 XLS 文件。 格式不会显示在报表工具栏的“导出”下拉列表中,因为它包含在后向兼容性中。
PPTX 将 PowerPoint 中的报表呈现为 PPTX 文件。 格式在报表工具栏的“导出”下拉列表中显示为 PowerPoint
PDF 在 PDF 中呈现报表。
IMAGE 以面向页面的格式呈现报表。 格式在报表工具栏的“导出”下拉列表中显示为 TIFF 文件
MHTML(HTML 呈现扩展插件的一部分) 以 MHTML 格式呈现报表。 报表将在浏览器中打开。 格式在报表工具栏的“导出”下拉列表中显示为 MHTML (Web 存档)。
CSV 以逗号分隔的格式呈现报表。 报表在与 CSV 文件格式关联的查看工具中打开。 格式在报表工具栏的“导出”下拉列表中显示为 CSV(逗号分隔 )。
XML 以 XML 格式呈现报表。 报表在浏览器中打开。 应用于此 XML 输出的额外转换可能是避免开发自己的呈现扩展插件的一种经济高效方法。 格式显示为 XML 文件,其中包含报表工具栏的“导出”下拉列表中的报表数据
ATOM 以 ATOMSVC 文件的形式呈现数据馈送格式的报表。 格式在报表工具栏的“导出”下拉列表中显示为 “数据馈送 ”。
HTML4.0 (HTML 呈现扩展插件的一部分) 如果浏览器不支持 HTML5,则使用 HTML4.0。
HTML5 (HTML 呈现扩展插件的一部分) HTML5 是用于最初在浏览器中呈现报表的格式。 如果浏览器支持 HTML5,则表示所使用的格式。 否则,将使用 HTML 4.0。
RPL RPL 是报表服务器使用的中间格式,是默认呈现扩展插件。
NULL 不会将报表呈现为特定格式。 这一呈现扩展插件用于将报表放到缓存中。 Null 呈现应与计划的执行或传递一起使用。

有关建议的格式及其用法的详细信息,请参阅导出报表(报表生成器和 SSRS)。

由 Microsoft 实现或随 Reporting Services 提供的每个呈现扩展插件都使用一组通用的接口。 此常见接口集可确保每个扩展实现可比较的功能,并减少报表服务器核心中呈现代码的复杂性。

呈现对象模型

当处理报表时,结果是公开的对象模型,称为呈现对象模型 (ROM)。 呈现对象模型是定义已处理报表的内容、布局和数据的各个类的集合。 ROM 可供希望为 Reporting Services 设计、开发和部署自定义呈现扩展插件的开发人员使用。 当报表服务器处理报表的 XML 定义以及用户定义的报表数据时,将生成 ROM。 当完成处理后,呈现扩展插件使用公共对象模型以定义报表的输出。 ROM 的可用公共类在 Microsoft.ReportingServices.OnDemandReportRendering 命名空间中定义。

编写自定义呈现扩展插件

在决定创建自定义呈现扩展插件之前,应评估更为简单的替代方法。 可以:

  • 通过为现有扩展插件指定设备信息设置,自定义呈现的输出。

  • 通过将 XSL 转换 (XSLT) 与 XML 呈现格式的输出结合起来,添加自定义格式和演示功能。

编写自定义呈现扩展插件的过程困难重重。 呈现扩展插件通常必须支持报表元素的所有可能组合,并要求您实现许许多多的类、接口、方法和属性。 如果必须以 Reporting Services 不包含的格式呈现报表,并决定编写自己的呈现扩展插件托管代码实现,则呈现扩展插件代码必须实现 报表服务器所需的 Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension 接口。