2011年7月6日 星期三

Reporting Service2008 R2 Lookup Function 的使用

我們在做報表的時候通常會遇到一個問題,報表的Table物件只能使用一個DataSet,在Reporting Service 2008 R2新增的Function(Lookup、MultiLookup與LookupSet),可以讓我們在Table物件使用兩個DataSet。
首先看一下兩個DataSet的資料結構:
我們有FactSaleTable與DimCity兩個TABLE,這兩個TABLE是以CityID做關聯。
接下來我們拖拉一個TABLE物件,並且拉入FactSaleTable的CityID與SaleAmount兩個欄位至TABLE物件,這時候TABLE的DataSet為FactSaleTable。
接著我們在城市代號與欄位金額中間增加一個空白欄位,並在該欄位的運算式打上
在Lookup這個FUNCTION,其中第一個Fields!CityID.Value為原來的FactSaleTable的 CityID,第二個Fields!CityID.Value為DimCity的CityID,它會與第一個的 Fields!CityID.Value做比對(Mapping),第三個Fields!CityIDName.Value為顯示的欄位內容,而"DimCity"就是第二個DataSet。

完成後TABLE如下

預覽內容
我們看到中間的程式名稱的是DimCity DataSet的內容,而城市代號與銷售金額是FactSaleTable DataSet的內容,這表示同一個Table可以一次使用兩個DataSet。
下一篇我將講解如何使用MultiLookup。

2 則留言:

  1. 你好 請問Microsoft SQL Server Reporting Services 設計師 版本 10.0.2531.0 是不是 R2版? 我Lookup一直無法使用 是否願意幫忙解惑一下 感謝

    回覆刪除
    回覆
    1. 10.0.2531.0是SQL SERVER 2008版本,R2是10.50開頭。
      你可以在下SELECT @@VERSION檢視你的版本。
      另外以下是SQL SERVER的版本清單網址:
      http://sqlserverbuilds.blogspot.tw/
      給你參考囉。^^

      刪除