渲染擴充概覽

渲染擴充是報告伺服器的一個元件或模組,用來將報告資料和版面資訊轉換成特定裝置的格式。 SQL Server Reporting Services 包含多種渲染擴充功能:HTML、Excel、Word、PowerPoint、CSV 或文字、XML、影像、資料饋送及 PDF。 你可以建立其他渲染擴充套件來產生其他格式的報告。

Note

要判斷可用的渲染擴充功能,可以查看 RSReportServer.config 檔案中已安裝的擴充功能清單。

下表說明了隨 Reporting Services 所包含的渲染擴充功能。

擴充功能名稱 說明
WORDOPENXML 在 Microsoft Word 中以 DOCX 檔案呈現報表。 格式在報告工具列的匯出下拉選單中以 Word 顯示。
真是太棒了 在 Microsoft Word 中將報告以 DOC 檔案呈現。 該格式不會顯示在報告工具列的匯出下拉選單中,因為它是為了向下相容而包含的。
EXCELOPENXML 在 Microsoft Excel 中以 XLSX 檔案呈現報表。 格式在報告工具列的匯出下拉選單中以 Excel 顯示。
EXCEL 在 Microsoft Excel 中以 XLS 檔案呈現報告。 該格式不會顯示在報告工具列的匯出下拉選單中,因為它是為了向下相容而包含的。
PPTX 在 PowerPoint 中將報告渲染成 PPTX 檔案。 格式在報告工具列的匯出下拉選單中以 PowerPoint 顯示。
PDF 以 PDF 格式呈現報告。
圖像 以頁面導向格式呈現報告。 格式在報告工具列的匯出下拉選單中以 TIFF 檔案 顯示。
MHTML (HTML 渲染擴充的一部分) 以 MHTML 呈現報告。 報告會在瀏覽器中開啟。 格式在報告工具列的匯出下拉選單中以 MHTML(網頁檔案庫) 顯示。
CSV 以逗號分隔格式呈現報告。 報告會在與 CSV 檔案格式相關的檢視工具中開啟。 格式在報告工具列的匯出下拉選單中以 CSV(逗號分隔 )顯示。
XML 以 XML 呈現報告。 報告會在瀏覽器中開啟。 對這些 XML 輸出施加額外的轉換,可能是避免自行開發渲染擴充的經濟實惠方法。 格式以 XML 檔案 顯示,報告資料並顯示於報告工具列的匯出下拉選單中。
原子 以資料饋送格式呈現報告,格式為 ATOMSVC 檔案。 格式在報告工具列的匯出下拉選單中顯示為 資料饋送 。
HTML4.0 (HTML 渲染擴充套件的一部分) 如果瀏覽器不支援 HTML5,則使用 HTML4.0。
HTML5 (HTML 渲染擴充的一部分) HTML5 是瀏覽器中最初呈現報告的格式。 如果你的瀏覽器支援 HTML5,那就是會用的格式。 否則,則使用 HTML 4.0。
RPL RPL 是報表伺服器使用的中介格式,也是預設的渲染擴充功能。
NULL 它不會將報告呈現成特定格式。 此渲染擴充功能用於將報告放入快取。 空渲染應該用於排程執行或傳送。

欲了解更多推薦格式及其用途,請參閱匯出報告(Report Builder 與 SSRS)。

Microsoft 實作並隨 Reporting Services 附帶的每個渲染擴充套件都使用一組通用介面。 這組共通介面確保每個擴充功能實作相當的功能,並降低報告伺服器核心渲染程式碼的複雜度。

渲染物件模型

當報表被處理時,結果會是一個公開暴露的物件模型,稱為渲染物件模型(Rendering Object Model,ROM)。 渲染物件模型是一組類別,用來定義已處理報告的內容、版面配置與資料。 ROM 供希望設計、開發及部署自訂渲染擴充功能的開發者使用 Reporting Services。 ROM 是在報告伺服器處理報告的 XML 定義以及使用者自訂的報告資料時產生的。 處理完成後,渲染擴充會使用公開物件模型來定義報告的輸出。 ROM 可用的公開類別是在 Microsoft 中定義的。ReportingServices.OnDemandReportRendering 命名空間。

撰寫自訂渲染擴充

在決定建立自訂渲染擴充功能之前,應該先評估更簡單的替代方案。 您可以:

  • 透過指定現有擴充功能的裝置資訊設定,自訂渲染輸出。

  • 透過結合 XSL 轉換(XSLT)與 XML 渲染格式的輸出,加入自訂格式與呈現功能。

寫自訂渲染擴充功能很困難。 渲染擴充功能通常必須支援所有可能的報告元素組合,並要求實作數百個類別、介面、方法與屬性。 如果你必須以 Reporting Services 未包含的格式呈現報告,並決定撰寫自己的管理程式碼實作渲染擴充功能,該渲染擴充程式碼必須實作 Microsoft。ReportingServices.OnDemandReportRendering.IRenderingExtension 介面,這是報告伺服器所必需的。