【第238期 August 4, 2017】
 

研發新視界

SQL Server Report Services

作者/沈慧翰

[發表日期:2017/8/4]


Reporting Services 簡介

Reporting Services 是以伺服器為基礎的報表平台,可針對各種資料來源提供完整的報表功能。Reporting Services 包含一組建立、管理和傳遞報表的完整工具,以及可讓開發人員在自訂應用程式中整合或擴充資料和報表處理的 API。Reporting Services 工具會在 Microsoft Visual Studio 環境下運作,而且會與 SQL Server 工具和元件完整地整合在一起。

我們可以使用 Reporting Services從關聯式、多維度或以 XML 為基礎的資料來源,建立互動式、表格式、圖形或自由形式報表。也可以發行報表、排程報表處理,或是視需要存取報表。Reporting Services 還可以根據預先定義的模型建立特定報表,以及以互動方式瀏覽模型中的資料。從各種檢視格式進行選取、將報表匯出到其他應用程式,以及訂閱已發行的報表。利用已建立的報表可透過以 Web 為基礎的連接來檢視,或是當做 Microsoft Windows 應用程式或 SharePoint 網站的一部分來檢視。Reporting Services提供Web方式管理報表,相當方便實用,可以直接使用Web方式編輯存取瀏覽權限,排程訂閱發信和產生報表,Cache報表設定等都可以直接在Web方式操作。Reporting Services 提供了商務資料的關鍵所在。

如何使用Reporting Service製作報表

一、建立報表伺服器專案

在 [檔案] 功能表 > [新增] > [專案]。先從左方的[專案類型]中選擇[商務智慧],再從右方的[範本]按一下 [報表伺服器專案]。


《圖一》專案建立


二、設定資料來源(Data Source)

定義資料來源,這是報表用來存取資料從關聯式資料庫、多維度資料庫或另一個來源的連接資訊。分為兩種類型:

1.共用資料來源:公用範圍包括資料提供者類型、連接字串以及連結至資料的安全性設定。

2.內嵌資料來源:內容一樣包含資料提供者類型、連接字串以及連結至資料的安全性設定,但資料來源並非獨立於報表儲存,而是內嵌於報表定義之中,只能提供單一資料集使用。


《圖二》資料來源建立與測試



《圖三》新增一報表


當定義資料來源之後,就需要定義資料集。在Reporting Services 中,報表所用的資料是包含在「資料集」中。資料集含有指向資料來源的指標和報表要用的查詢,以及計算的欄位和變數。

從[工具列]中拖拉[資料表]物件至報表主體,在套用之前已經設定好的共用資料來源,於彈出的查詢設計工具鍵入T-SQL查詢語法,即可產生需要的資料集。


《圖四》新增資料集



《圖五》新增資料集資料來源



《圖六》定義資料集


三、版面設計(Layout)

定義資料集之後,就可以開始設計報表。將資料區域、文字方塊、影像和我們要包含在報表中的其他項目拖放至設計介面來建立報表配置。包含基礎資料集之重複資料列的項目稱為「資料區域」。


《圖七》設計報表


預覽報表可以讓我們不必先將報表發行到報表伺服器,就可以在設計階段檢視轉譯過的報表。此外,預覽報表也會針對設計和資料連接執行驗證,讓您能夠先更正錯誤和問題,然後再將報表發行至報表伺服器。


《圖八》預覽報表


四、輸出轉譯(Render)

支援的匯出格式取決於報表伺服器上安裝的轉譯延伸模組。轉譯器有三種類型:

1.資料轉譯器(CSV、XML):資料轉譯器會從報表移除所有格式與版面配置資訊,而僅顯示資料。所產生的檔案可用於將原始報表資料匯入到其他檔案類型、其他資料庫、XML 資料訊息,或是自訂應用程式。

2.自動分頁轉譯器(Microsoft Excel、Microsoft Word、網頁封存 (MHTML),以及 ReportViewer 控制項):會維持報表的版面配置和格式。所產生的檔案最適合使用螢幕檢視與傳遞,例如,使用網頁或 ReportViewer 控制項。

3.手動分頁轉譯器(TIFF 和 PDF):會維持報表的版面配置和格式。所產生的檔案最適合一致的列印結果,或者以書本格式線上檢視報表。


《圖九》輸出轉譯


以上幾個步驟,即可快速建立一些常用且簡單的報表,如果進一步熟悉群組的使用或搭配精靈設計其他類型的報表,很快就能設計出實用的報表格式。

sharepoint 的整合

一、報表伺服器設定為在 SharePoint 產品的部署內執行,並且針對報表和其他Reporting Services內容類型使用SharePoint的共同作業和集中式文件管理功能。SharePoint 整合需要在 SharePoint Web前端安裝正確版本的Reporting Services增益集。將報表伺服器當做SharePoint部署的一部分來執行可提供下列整合層級:
1.共用儲存。
2.共用安全性。
3.從同一網站存取所有的商務文件,包括報表、報表模型和共用資料來源。

二、伺服器整合架構

將報表伺服器與 SharePoint 產品的執行個體整合時,項目和屬性會儲存在SharePoint內容資料庫中。這可以為將會影響內容的儲存、安全性和存取方式的伺服器技術之間,提供更深層級的整合。

將報表項目和屬性儲存在 SharePoint 內容資料庫中,可以讓您進行下列作業:瀏覽 SharePoint 程式庫以取得報表伺服器內容類型、使用與SharePoint網站上所主控之其他商務文件存取控制相同的權限層級和驗證提供者來保護項目的安全性、使用共同作業和文件管理功能來簽入及簽出報表以進行修改、使用警示以便在項目變更時獲得通知,以及在應用程式內的網頁和網站上內嵌或自訂報表檢視器 Web 組件。如果您在SharePoint站台內有足夠的權限,您也可以從共用資料來源產生報表模型,並使用報表產生器來建立報表。

報表伺服器會繼續提供所有的資料處理、轉譯和傳遞,也支援快照和報表記錄所有已排程的報表處理。以下圖表顯示伺服器元件如何一起運作:


《圖十》


從SharePoint網站開啟報表時,報表伺服器端點會連接到報表伺服器、建立工作階段、準備報表處理作業、擷取資料、將報表合併至報表配置中,然後在報表檢視器 Web 組件中加以顯示。當報表為開啟狀態時,您可以將其匯出為不同的應用程式格式,或藉由鑽研基礎數字或按選相關的報表,與資料進行互動。匯出和報表互動作業都是在報表伺服器上執行。

報表伺服器會與SharePoint同步處理作業和資料,並追蹤所處理之檔案的相關資訊。當您修改任何報表伺服器項目的屬性或設定時,變更會儲存在SharePoint資料庫中,然後再複製到可以為報表伺服器提供內部儲存的報表伺服器資料庫。

參考文章

https://docs.microsoft.com/zh-tw/sql/reporting-services/create-deploy-and-manage-mobile-and-paginated-reports

http://caryhsu.blogspot.tw/

https://blog.miniasp.com/post/2010/07/21/SQL-Server-2008-R2-Reporting-Services-Report-Builder-Crash-Course.aspx