第 4 課:加入串聯參數 (報表產生器 2.0)
串聯參數會提供一種管理大量報表資料的方法。 在使用串聯參數時,某參數的值清單會視前一個參數所選擇的值而定。
在這一課,您將使用主資料集查詢來建立新的報表,該查詢會針對服裝類別目錄的子類別目錄和產品定義查詢參數。 您將針對每個串聯參數定義兩個額外的資料集來提供可用的值。
若要建立新的報表定義檔案並將它儲存在報表伺服器上
按一下 [開始]、依序指向 [程式集] 和 [Microsoft SQL Server 2008 報表產生器],然後按一下 [報表產生器 2.0]。
在設計介面上,按一下 [請按這裡加入標題],然後輸入串聯參數。
在報表產生器的按鈕中,按一下 [另存新檔]。
按一下 [最近使用的網站和伺服器]。
按一下您有權儲存報表之報表伺服器的名稱。
在 [名稱] 中,輸入串聯參數。
按一下 [儲存]。
您已將新的報表儲存至報表伺服器。
若要加入資料來源參考
在 [報表資料] 窗格工具列中,按一下 [新增],然後按一下 [資料來源]。
選取 [使用共用連接或報表模型]。
瀏覽或選擇您在<教學課程:建立基本資料表報表 (報表產生器 2.0)>中建立之 AdventureWorks2008 範例資料庫的資料來源。
按一下 [確定]。
您已經加入 AdventureWorks2008 資料庫之資料來源的參考。
若要使用查詢和查詢參數來建立主資料集
在 [報表資料] 窗格的工具列中,按一下 [新增],然後按一下 [資料集]。
在 [名稱] 中,輸入 SalesbyCategory。
在查詢窗格下方按一下 [查詢設計工具]。
按一下 [當成文字編輯]。
在 [查詢] 窗格中,貼上下列查詢:
SELECT SH.OrderDate ,DATENAME(weekday, SH.OrderDate) as Weekday ,SH.SalesOrderNumber ,SD.OrderQty ,SD.LineTotal ,P.Name AS [Product] ,PS.Name AS [Subcategory] FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader AS SH ON SP.BusinessEntityID = SH.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product AS P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory AS PS ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PS.ProductCategoryID WHERE PC.Name = 'Clothing' AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND PS.Name = (@Subcategory) AND P.Name IN (@Product)
此時,已經加入 @StartDate、@EndDate、@Subcategory, 和 @Product 的查詢參數,以便建立一組串聯值的主查詢。
按一下 [執行] (!) 查看結果集。 [定義查詢參數] 對話方塊隨即開啟。
請使用下表,在 [參數值] 資料行中輸入每個查詢參數的值。
參數名稱
參數值
@StartDate
20010101
@EndDate
20030101
@Subcategory
Gloves
@Product
Full-Finger Gloves, M
按一下 [確定]。
此結果集包含指定之手套類型的銷售訂單號碼清單。
當您執行查詢時,每個查詢參數都會產生相對應的報表參數。 按兩次 [確定],結束查詢設計工具和對話方塊。
(選擇性) 在 [報表資料] 窗格中,展開 [參數] 節點,然後確認下列報表參數是否出現:StartDate、EndDate、Subcategory 和 Product。
(選擇性) 每個資料集查詢參數的值都會繫結至相同名稱的報表參數。 若要進行確認,請在 [報表資料] 窗格中,以滑鼠右鍵按一下 SalesbyCategory,然後按一下 [資料集屬性]。
按一下 [參數]。
在 [參數名稱] 資料行中,確認名稱為 @StartDate、@EndDate、@Subcategory, 和 @Product。
在 [參數值] 資料行中,確認值為 [@StartDate]、[@EndDate]、[@Subcategory] 和 [@Product]。
這些簡單的運算式會參考您在 [報表資料] 窗格中所見的報表參數。
下一步,您將建立資料集,以便提供 @Subcategory 和 @Product 的值。 每個新的資料集都會針對參數填入可用的值和預設值。
若要設定日期參數的資料類型和預設值
在 [報表資料] 窗格中,以滑鼠右鍵按一下 StartDate,然後按一下 [參數屬性]。
在 [資料類型] 中,選取 [日期/時間]。
按一下 [預設值]。
選取 [指定值] 選項。
按一下 [加入]。
在 [值] 中,輸入 2001-01-01。
按一下 [確定]。
在 [報表資料] 窗格中,以滑鼠右鍵按一下 EndDate,然後按一下 [參數屬性]。
在 [資料類型] 中,選取 [日期/時間]。
按一下 [預設值]。
選取 [指定值] 選項。
按一下 [加入]。
在 [值] 中,輸入 2003-01-01。
按一下 [確定]。
這樣就會設定日期參數的資料類型和預設值。
若要加入報表參數 Subcategory 的值資料集
在 [報表資料] 窗格的工具列中,按一下 [新增],然後按一下 [資料集]。
在 [名稱] 中,輸入 SubcategoryValues。
按一下 [查詢設計工具],然後按一下 [當成文字編輯]。
在 [查詢] 窗格中,貼入下列查詢文字:
SELECT DISTINCT PSC.Name AS Subcategory FROM Production.ProductSubcategory AS PSC INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE PC.Name = 'Clothing'
按兩次 [確定],結束查詢設計工具和對話方塊。
SubcategoryValues 資料集會出現在 [報表資料] 窗格中。 Subcategory 欄位具有 8 個列出服裝類別目錄之子類別目錄的資料列。
接下來,請將報表參數 @Subcategory 的屬性設定為針對其可用值和預設值使用此查詢的值。
設定報表參數 Subcategory 的可用值和預設值
在 [報表資料] 窗格的 [參數] 資料夾中,以滑鼠右鍵按一下 Subcategory,然後按一下 [參數屬性]。
按一下 [可用的值]。
按一下 [從查詢取得值]。
在 [資料集] 中,從下拉式清單按一下 [SubcategoryValues]。
在 [值] 欄位中按一下 [Subcategory]。
在 [標籤] 欄位中按一下 [Subcategory]。
按一下 [預設值]。
按一下 [指定值]。
按一下 [加入]。
在 [值] 中,輸入 Gloves。
按一下 [確定]。
接下來,建立相依於 @Subcategory 值的 @Product 參數。
若要加入報表參數 Product 的值資料集
在 [報表資料] 窗格的工具列中,按一下 [新增],然後按一下 [資料集]。
在 [名稱] 中,輸入 ProductValues。
按一下 [查詢設計工具],然後按一下 [當成文字編輯]。
在 [查詢] 窗格中,貼入下列查詢文字:
SELECT DISTINCT P.Name AS Product FROM Production.Product P INNER JOIN Production.ProductSubcategory AS PSC ON P.ProductSubcategoryID = PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE (PC.Name = 'Clothing' AND PSC.Name = (@Subcategory))
按兩次 [確定],結束查詢設計工具和對話方塊。
名為 ProductValues 的資料集 (具有一個名為 Product 的欄位) 隨即加入至 [報表資料] 窗格。
接下來,請將參數 @Product 的屬性設定為針對其可用值和預設值使用此查詢的值。
設定報表參數 Product 的可用值和預設值
在 [報表資料] 窗格的 [參數] 資料夾中,以滑鼠右鍵按一下 Product,然後按一下 [參數屬性]。
選取 [允許多個值]。
按一下 [可用的值]。
按一下 [從查詢取得值]。
在 [資料集] 中,從下拉式清單按一下 [ProductValues]。
在 [值] 欄位中按一下 [Product]。
在 [標籤] 欄位中按一下 [Product]。
按一下 [預設值]。
按一下 [從查詢取得值]。
在 [資料集] 中,從下拉式清單按一下 [ProductValues]。
在 [值] 欄位中按一下 [Product]。
按一下 [確定]。
按一下 [執行] 預覽報表。
從 Subcategory 下拉式清單中選取 Jerseys。
請注意,Product 的下拉式清單只會顯示屬於 Jerseys 的產品。
在報表檢視器工具列上,按一下 [檢視報表]。
報表中的資料表和圖表所顯示的銷售訂單包括您已選取的產品,而且受到報表參數銷售訂單日期和星期幾所限制。
後續步驟
您已使用依子類別目錄進行篩選的串聯參數,成功地建立針對特定產品顯示銷售訂單的新報表。 在下一課,您將學習傳遞參數到鑽研報表。 請參閱<第 5 課:加入傳遞至鑽研報表的參數 (報表產生器 2.0)>。