我們舉一個級聯參數的例子,用SQL Server 2005自帶的AdventureWorks數據庫作為數據源。AW里面有三張表:Product, ProductSubcategory和ProductCategory。
我們現在就來實現級聯參數的報表,報表最終會有兩個參數:Category和Subcategory。用戶首先要選擇Category,然后Subcategory參數列表中就只會有被選擇的Category下的Subcategory,用戶選擇Subcategory,然后報表就會顯示選定Subcategory下的產品信息。
第一步:
為Category參數準備一個數據集“Category”作為參數的數據源,數據集的查詢代碼相當簡單:
SELECT ProductCategoryID, Name
FROM Production.ProductCategory
將新建的數據集綁定到Category參數上,并指定Category參數的Label為Name,Value為ProductCategoryID。如下圖:
第二步:
為Subcategory參數準備一個數據集“Subcategory”作為參數的數據源,這個數據集的查詢就要使用Category參數來對數據進行過濾,查詢代碼如下:
SELECT ProductSubcategoryID, Name
FROM Production.ProductSubcategory
WHERE ProductCategoryID = @categoryID
將新建的數據集綁定到Subcategory參數上,并指定Subcategory參數的Label為Name,Value為ProductSubcategoryID。如下圖:
第三步:
現在可以寫報表的數據源定義了,這個就更簡單了:
SELECT Production.Product.Name, Production.Product.StandardCost, Production.Product.ListPrice
FROM Production.Product
WHERE Production.Product.ProductSubcategoryID = @subcategoryID
然后就是拖一個Table數據控件,綁定上數據源就OK了。