2013年12月6日 星期五

[SQL Server 2008R2][SSRS] 報表模型 (一)

SSRS 2008 R2 報表產生器也到了 3.0 的版本,可供專業開發人員及一般使用者都可以使用它來設計預先設計的報表或是隨選查詢報表。另外與 2.0 版的差別是,還可以發行與使用報表組件。
讓使用者可以藉由報表產生器自行建立所需要的報表之前,開發者必須先建立報表模型,先利用報表模型定義出未來使用者可用之中繼資料架構,包含資料表實體、一般資料欄位、彙總資料欄位與資料表實體間的關係。使用者就可以利用報表產生器使用報表模型來建立自己所需要的報表,以減少開發人員的負擔。


在 Visual Studio 2008 新增一個專案,在範本中選擇「報表模型專案」。


在方案總管的資料來源,按右鍵「加入新的資料來源」。


新增「資料連線」





資料來源檢視是資料物件的中繼資料集合,可以視為一個虛擬的資料倉儲,用以維護所有資料表的資料結構以及欄位邏輯。還可以利用具名計算或具名查詢新增新的欄位或資料表,還可以利用友善命名的方式,將難懂的欄位名稱轉換為可以理解的意義。

接下來要新增「資料來源檢視 ( Data Source View )」。


點選要連線的資料來源。


選取要建立資料來源檢視所需要用到的資料表與檢視表

輸入名稱,即完成初步設定。


點擊開啟剛才建立的資料來源檢視檔案。


如果資料庫原先並未為資料表索引鍵以及設定資料表間的主鍵外鍵關聯性時,可利用以下功能處理:

  • 設定邏輯主索引鍵:當資料表在資料庫未設定主索引鍵時,可以點選欲作為主索引鍵的欄位按右鍵透過「設定邏輯主索引鍵」選項來做設定。
  • 新增關聯性:直接利用滑鼠點選外鍵欄位,然後拖曳至主鍵欄位即可產生關聯性。


當點選資料表或欄位時,可以在屬性視窗中的「FriendlyName」屬性,將原先系統管理員才能理解的資料表名稱或欄位名稱,改為讓分析者清楚易懂的代稱



原始資料結構不一定適合用來作分析,例如,生日欄位可能就不具有分析價值,如果在報表模型中轉為年齡比較有利日後分析使用。因此可以利用「具名計算」的方式將欄位進行轉換。
點選含生日欄位的資料表,按右鍵選取「新增具名計算」,以輸入年齡轉換的邏輯。

輸入轉換的邏輯

 具名計算欄位名稱前會有個計算機的小圖示。


新增資料來源檢視之後,根據此資料來源檢視的資料結構進行報表模型處理。在方案總管的表模型圖示按右鍵,點選「加入新的報表模型」。




在「選取報表模型產生規則」畫面中,選取之前建立好的資料來源檢視。一般採用預設值即可。




報表模型設計畫面最左側的清單中,列舉了報表模型的實體 ( Entity ) 清單,所謂的實體就等於是「資料表」。

預設產生的報表模型中繼資料中可能會包含許多用不到的項目,例如使用者不會用來分析的欄位或是不會用到的彙總方法,同時預設的命名可能不符合使用者的習慣,需要利用人工調整後再發佈。
若確定模型中的實體或欄位不會使用到,可以將它刪除;若不確定未來會不會使用到,可先將屬性視窗中「Hidden」屬性設為 True,將實體或欄位隱藏起來,讓使用者在報表檢視器中無法看到
「SortAttributes」:實體中的資料按照什麼欄位排序。
「Binding」:繫結至資料庫中的哪個資料表。
「InstanceSelection」:根據預期產生的資料列筆數,決定用戶端應用程呈現實體資料列的方式。

  • Dropdown : 如果資料列筆數很少,能夠放入下拉選單中,就使用此選項。
  • List : 如果資料列筆數稍多,無法放入下拉式選單中,但是又不需要預先篩選,則使用此選項。
  • FilteredList : 如果資料列筆數偏多,使用者可能會先篩選值,才執行報表,則使用此選項。
  • MandatoryFilter : 如果資料列筆數很多,若是未經篩選,使用者根本無法在這個實體上執行報表,則使用此選項。



沒有留言: