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