2014年2月25日 星期二

[SQL Server 2008R2][SSRS] 報表訂閱與派送(標準訂閱與資料導向訂閱)

以上相關準備事項完成後,進入報表訂閱的畫面。

使用報表管理員設定標準訂閱

  • 傳遞者:電子郵件
  • 收件者:必填選項
  • 副本、密件副本、回覆至:可選擇性的填寫
  • 主旨:@ReportName 是指報表名稱,@ExecutionTime 是指執行時間
  • 包含報表:報表資料是否包含在郵件中。如果有勾選,則「轉譯格式」可以選擇以什麼檔案格式存在於郵件中。「網頁封存」代表報表資料直接包含於郵件主體中,其他格式選項則以檔案附件方式包含在郵件中。
  • 包含連結:將報表的 URL 連結包含在郵件中,讓收件者可以透過 URL 連結至報表。
  • 優先權:設定這封郵件的優先權。
  • 註解:其他要寫於郵件主體訊息的文字。
  • 訂閱處理選項:選擇使用共用排程以及自訂排程。
  • 報表參數值:可以設定訂閱報表時所需的報表參數。


完成後,可從報表管理員的訂閱頁面看到剛才設定的標準訂閱。


可查詢訂閱狀態



至於使用「Windows 檔案共用」模式的設定
  • 傳遞者:Windows 檔案共用
  • 檔案名稱:指定儲存位至資料夾時的報表名稱。
  • 勾選建立檔案時加入副檔名:如果想要在報表的檔案名稱後自動附加副檔名,請勾選此選項。
  • 路徑:共用資料夾所在位置,路徑必須符合統一命名慣例 ( UNC ) 格式,若是無效路徑會顯示錯誤訊息。
  • 轉譯格式:指定報表儲存成檔案的格式。
  • 用於存取檔案共用的認證:輸入可供存取共用資料夾的使用者名稱及密碼。
  • 覆寫選項:提供三種覆寫模式
    • 以較新版本覆寫現有檔案
    • 如果舊版存在,不要覆寫檔案
    • 加入較新版本時,遞增檔案名稱
  • 訂閱處理選項:選擇使用共用排程以及自訂排程。
  • 報表參數值:可以設定訂閱報表時所需的報表參數。


使用資料管理員設定資料導向訂閱

如果報表是參數化報表,不同使用者可能會需要不同的參數。若是要針對各種傳送模式、傳送位置、轉譯格式以及參數的排列組合去一一設定標準訂閱是複雜且難以管理,此時,可改用資料導向訂閱技術來達到客製化訂閱的效果。前提是 SSRS Enterprise Edition 才可以使用此功能

資料導向訂閱在執行時,從外部資料來源讀取資料,存取訂閱所需要的相關資訊,資料來源必須以資料表的形式提供。每一筆代表一筆訂閱,而每個欄位是用來動態指定每個訂閱的訂閱屬性。資料導向訂閱在以下狀況是很有用的。
  • 訂閱清單不固定且經常變動。
  • 根據不同使用者使用不同參數過濾資料,在執行時才讀取參數值。
  • 需要針對不同使用者設定不同的轉譯格式以及傳送模式,或是每次執行可能會採用變動的格式與傳送模式。

資料導向訂閱前置準備
須先建立一個資料表以儲存之後在資料導向訂閱設定中所指定的值。根據派送方法不同,則需要不同的訂閱欄位,以下列舉資料導向訂閱所需要的資料表格規格,其中欄位名稱不一定要一樣,只要方便辨識就可以了,但資料內的值必須配合可用值規範。

電子郵件資料導向訂閱所需資料規格
欄位名稱 欄位意義 資料型態 備註
TO 收件人 nvarchar(50) 電子郵件地址
CC 副本收件人 nvarchar(50) 電子郵件地址
BCC 密件收件人 nvarchar(50) 電子郵件地址
REPLY_TO 收件人回覆 nvarchar(50) 電子郵件地址
INCLUDE_REPORT 包含報表 bit True、False
RENDER_FORMAT 轉譯格式 nvarchar(50) XML、CSV、PDF、Excel、Word、IMAGE、MHTML、HTML4.0、HTML3.2
PRIORITY 優先權 nvarchar(50) HIGH、NORMAL、LOW
SUBJECT 主旨 nvarchar(50)
COMMENT 註解 nvarchar(50)
INCLUDE_LINK 包含連結 bit True、False
ProductCategory 報表參數1 nvarchar(50)
ProductSubcategory 報表參數2 nvarchar(50)



檔案分享驅動訂閱所需資料規格
欄位名稱 欄位意義 資料型態 備註
FILE_NAME 檔案名稱 nvarchar(50)
EXTENSION 建立檔案時加入副檔名 bit True、False
FILE_PATH 路徑 nvarchar(50) 字串欄位以儲存UNC路徑資料:\\電腦名稱\共用資料夾
FILE_FORMAT 轉譯格式 nvarchar(50) 電子郵件地址
USER_NAME 使用者名稱 nvarchar(50) XML、CSV、PDF、Excel、Word、IMAGE、MHTML、HTML4.0、HTML3.2
PASSWORD 密碼 nvarchar(50)
OVERWRITE_MODE 覆寫選項 nvarchar(50) None、OverWrite、AutoIncrement
ProductCategory 報表參數1 nvarchar(50)
ProductSubcategory 報表參數2 nvarchar(50)


先點入欲設定資料導向訂閱的報表,然後切換至「訂閱」頁籤,按下「新增資料導向訂閱」。



以「電子郵件」資料導向訂閱
步驟 1 :
在「描述」方格中輸入資料導向訂閱的名稱
並將「指定通知收件者方式」選為「電子郵件」
「指定包含收件者資訊的資料來源」指定為「僅為此訂閱指定」,代表為這個資料導向訂閱單獨設定資料來源。


步驟 2 :
下一步是指定資料導向訂閱所要引用的訂閱資料表連線資訊:
連接類型:Microsoft SQL Server
連接字串:Data Source=localhost;Initial Catalog=ASIAMIER_SSRS
點選「安全地儲存在報表伺服器中的認證」,並輸入「使用者名稱及密碼」
勾選「連接到資料來源時作為 Windows 認證」
比較麻煩的是「連接字串」必須自行輸入,沒有畫面協助設定。 ^_^"|



也可以指定「共用資料來源」



步驟 3 :
在指定傳回收件者清單的命令或查詢方格中,輸入查詢語法後( SELECT * FROM [ASIAMINER_SSRS].[SalesReport].[DataDrivenEMail] ),按下「驗證」,檢查是否正確。


步驟 4 :
在指定 Report Server Email 的傳遞延伸模組設定頁面中,可以使用三種方式指定訂閱方式的參數值。

  • 指定靜態值:在方格中輸入固定的值。
  • 從資料庫取值:藉由資料表欄位的值來動態設定。
  • 沒有值:不做設定。

依照訂閱屬性逐一進行設定。轉譯格式若是 MHTML 會將資料嵌入在信件內文中;其他格式只能在附件中。



步驟 5 :
在報表參數值畫面中,也可以選擇「指定靜態值」或是「從資料庫取值」的模式,指定報表執行時的報表參數。


步驟 6 :
指定處理訂閱的時間有三個選項:

  • 更新報表伺服器上的報表資料時:如果報表設定為當作執行快照集執行,就會在重新整理快照集時連動執行訂閱。
  • 在為此訂閱建立的排程上:為此資料導向訂閱設定報表特定排程。
  • 在共用排程上:使用指定的共用排程處理。


在此選擇「在共用排程上」,在下拉選單中選取,按下「完成」按鈕,即完成整個資料導向訂閱的設定。



以「檔案分享」資料導向訂閱
步驟 1 ~ 步驟 3 同「電子郵件」資料導向訂閱的步驟,步驟 1 指定通知收件者的方式,選 「Windows 檔案共用」。


步驟 3 的查詢語法改為
SELECT * FROM [ASIAMINER_SSRS].[SalesReport].[DataDrivenFileShare]

步驟 4 依訂閱的屬性逐一進行設定



運用資料導向訂閱預先載入快取

資料導向訂閱除了可以將報表依使用者需求利用分享資料夾或是電子郵件方式,動態指定參數值以傳遞至報表使用者外,同時也可以協助動態指定報表參數,並排程事先於報表伺服器上排程產生報表快取,如此一來,當使用者上線瀏覽該報表且輸入此參數組合時,無須等待即可產生報表結果。

其設定方式與先前說明的資料導向訂閱相同,唯一不同的地方是,要將傳遞方式選為「Null 傳遞提供者」,設定自動載入快取。「Null 傳遞提供者」沒有屬性設定畫面,只有後續的參數設定畫面。


在這個步驟可使用只有包含參數欄位的資料表。




可以設計每個主管客製化的權限控管,快取會隨著參數差異而不同,使用者身分是參數,來設定每位主管的快取模式。

沒有留言: