共用方式為


第 4 課:加入串聯參數 (報表產生器 2.0)

串聯參數會提供一種管理大量報表資料的方法。 在使用串聯參數時,某參數的值清單會視前一個參數所選擇的值而定。

在這一課,您將使用主資料集查詢來建立新的報表,該查詢會針對服裝類別目錄的子類別目錄和產品定義查詢參數。 您將針對每個串聯參數定義兩個額外的資料集來提供可用的值。

若要建立新的報表定義檔案並將它儲存在報表伺服器上

  1. 按一下 [開始]、依序指向 [程式集][Microsoft SQL Server 2008 報表產生器],然後按一下 [報表產生器 2.0]

  2. 在設計介面上,按一下 [請按這裡加入標題],然後輸入串聯參數。

  3. 報表產生器的按鈕中,按一下 [另存新檔]

  4. 按一下 [最近使用的網站和伺服器]

  5. 按一下您有權儲存報表之報表伺服器的名稱。

  6. [名稱] 中,輸入串聯參數。

  7. 按一下 [儲存]

    您已將新的報表儲存至報表伺服器。

若要加入資料來源參考

  1. 在 [報表資料] 窗格工具列中,按一下 [新增],然後按一下 [資料來源]

  2. 選取 [使用共用連接或報表模型]

  3. 瀏覽或選擇您在<教學課程:建立基本資料表報表 (報表產生器 2.0)>中建立之 AdventureWorks2008 範例資料庫的資料來源。

  4. 按一下 [確定]。

    您已經加入 AdventureWorks2008 資料庫之資料來源的參考。 

若要使用查詢和查詢參數來建立主資料集

  1. 在 [報表資料] 窗格的工具列中,按一下 [新增],然後按一下 [資料集]

  2. [名稱] 中,輸入 SalesbyCategory。

  3. 在查詢窗格下方按一下 [查詢設計工具]

  4. 按一下 [當成文字編輯]

  5. 在 [查詢] 窗格中,貼上下列查詢:

    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 的查詢參數,以便建立一組串聯值的主查詢。

  6. 按一下 [執行] (!) 查看結果集。 [定義查詢參數] 對話方塊隨即開啟。

  7. 請使用下表,在 [參數值] 資料行中輸入每個查詢參數的值。

    參數名稱

    參數值

    @StartDate

    20010101

    @EndDate

    20030101

    @Subcategory

    Gloves

    @Product

    Full-Finger Gloves, M

  8. 按一下 [確定]。 

    此結果集包含指定之手套類型的銷售訂單號碼清單。

    當您執行查詢時,每個查詢參數都會產生相對應的報表參數。 按兩次 [確定],結束查詢設計工具和對話方塊。

  9. (選擇性) 在 [報表資料] 窗格中,展開 [參數] 節點,然後確認下列報表參數是否出現:StartDate、EndDate、Subcategory 和 Product。

  10. (選擇性) 每個資料集查詢參數的值都會繫結至相同名稱的報表參數。 若要進行確認,請在 [報表資料] 窗格中,以滑鼠右鍵按一下 SalesbyCategory,然後按一下 [資料集屬性]

    1. 按一下 [參數]

    2. [參數名稱] 資料行中,確認名稱為 @StartDate、@EndDate、@Subcategory, 和 @Product。

    3. [參數值] 資料行中,確認值為 [@StartDate]、[@EndDate]、[@Subcategory] 和 [@Product]。

      這些簡單的運算式會參考您在 [報表資料] 窗格中所見的報表參數。

    下一步,您將建立資料集,以便提供 @Subcategory@Product 的值。 每個新的資料集都會針對參數填入可用的值和預設值。

若要設定日期參數的資料類型和預設值

  1. 在 [報表資料] 窗格中,以滑鼠右鍵按一下 StartDate,然後按一下 [參數屬性]

  2. [資料類型] 中,選取 [日期/時間]

  3. 按一下 [預設值]

  4. 選取 [指定值] 選項。

  5. 按一下 [加入]

  6. 在 [值] 中,輸入 2001-01-01。

  7. 按一下 [確定]。

  8. 在 [報表資料] 窗格中,以滑鼠右鍵按一下 EndDate,然後按一下 [參數屬性]

  9. [資料類型] 中,選取 [日期/時間]

  10. 按一下 [預設值]

  11. 選取 [指定值] 選項。

  12. 按一下 [加入]

  13. 在 [值] 中,輸入 2003-01-01。

  14. 按一下 [確定]。

這樣就會設定日期參數的資料類型和預設值。

若要加入報表參數 Subcategory 的值資料集

  1. 在 [報表資料] 窗格的工具列中,按一下 [新增],然後按一下 [資料集]

  2. [名稱] 中,輸入 SubcategoryValues。

  3. 按一下 [查詢設計工具],然後按一下 [當成文字編輯]

  4. 在 [查詢] 窗格中,貼入下列查詢文字:

    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'
    
  5. 按兩次 [確定],結束查詢設計工具和對話方塊。

  6. SubcategoryValues 資料集會出現在 [報表資料] 窗格中。 Subcategory 欄位具有 8 個列出服裝類別目錄之子類別目錄的資料列。

    接下來,請將報表參數 @Subcategory 的屬性設定為針對其可用值和預設值使用此查詢的值。

設定報表參數 Subcategory 的可用值和預設值

  1. 在 [報表資料] 窗格的 [參數] 資料夾中,以滑鼠右鍵按一下 Subcategory,然後按一下 [參數屬性]

  2. 按一下 [可用的值]

  3. 按一下 [從查詢取得值]

  4. [資料集] 中,從下拉式清單按一下 [SubcategoryValues]。

  5. [值] 欄位中按一下 [Subcategory]。

  6. [標籤] 欄位中按一下 [Subcategory]。

  7. 按一下 [預設值]

  8. 按一下 [指定值]

  9. 按一下 [加入]

  10. 在 [值] 中,輸入 Gloves。

  11. 按一下 [確定]。

    接下來,建立相依於 @Subcategory 值的 @Product 參數。

若要加入報表參數 Product 的值資料集

  1. 在 [報表資料] 窗格的工具列中,按一下 [新增],然後按一下 [資料集]

  2. [名稱] 中,輸入 ProductValues。

  3. 按一下 [查詢設計工具],然後按一下 [當成文字編輯]

  4. 在 [查詢] 窗格中,貼入下列查詢文字:

    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))
    
  5. 按兩次 [確定],結束查詢設計工具和對話方塊。

    名為 ProductValues 的資料集 (具有一個名為 Product 的欄位) 隨即加入至 [報表資料] 窗格。

接下來,請將參數 @Product 的屬性設定為針對其可用值和預設值使用此查詢的值。

設定報表參數 Product 的可用值和預設值

  1. 在 [報表資料] 窗格的 [參數] 資料夾中,以滑鼠右鍵按一下 Product,然後按一下 [參數屬性]

  2. 選取 [允許多個值]

  3. 按一下 [可用的值]

  4. 按一下 [從查詢取得值]

  5. [資料集] 中,從下拉式清單按一下 [ProductValues]。

  6. [值] 欄位中按一下 [Product]。

  7. [標籤] 欄位中按一下 [Product]。

  8. 按一下 [預設值]

  9. 按一下 [從查詢取得值]

  10. [資料集] 中,從下拉式清單按一下 [ProductValues]。

  11. [值] 欄位中按一下 [Product]。

  12. 按一下 [確定]。

  13. 按一下 [執行] 預覽報表。

  14. 從 Subcategory 下拉式清單中選取 Jerseys。

    請注意,Product 的下拉式清單只會顯示屬於 Jerseys 的產品。

  15. 在報表檢視器工具列上,按一下 [檢視報表]

    報表中的資料表和圖表所顯示的銷售訂單包括您已選取的產品,而且受到報表參數銷售訂單日期和星期幾所限制。

後續步驟

您已使用依子類別目錄進行篩選的串聯參數,成功地建立針對特定產品顯示銷售訂單的新報表。 在下一課,您將學習傳遞參數到鑽研報表。 請參閱<第 5 課:加入傳遞至鑽研報表的參數 (報表產生器 2.0)>。