微軟SQL Server 2000 Reporting Services介紹(五)
[摘要 ] 本文主要介紹了如何綜合利用Report Designer和修改rdl文件來快速、靈活的實
現報表氐憬步饬似渲?lt;/SPAN>Matrix格式和Toggle功能的實現
[關鍵字] Reporting Services,.Net Framework.,rdl文件,Matrix格式,Toggle功能
n 如何實現Matrix
上圖是Reporting Services中提供的一個例子,縱向為一個公司的產品類別和子類別,橫向為年份和季度,這種顯示模式在很多的報表中都可以套用,例如一般的集團公司會在縱向顯示出所有分子公司和部門。下面從rdl文件的角度分析該例子是如何實現的,首先來看看其中的查詢語句
AdventureWorks//指定數據源名稱
SELECT ProductCategory.Name AS ProdCat, //產品類別ProductSubCategory.Name AS SubCat, //產品子類別
DATEPART(yy, SalesOrderHeader.OrderDate) AS OrderYear, //年份
'Q' + DATENAME(QQ, SalesOrderHeader.OrderDate) AS OrderQtr, //季度SUM(SalesOrderDetail.UnitPrice * SalesOrderDetail.OrderQty) AS Sales//銷售數據
FROM ProductSubCategory INNER JOIN
………………….
WHERE (SalesOrderHeader.OrderDate BETWEEN '1/1/2002' AND '12/31/2003')//時間范圍
//這裡的GROUP BY保證數據的層次關系
GROUP BY
DATEPART(yy, SalesOrderHeader.OrderDate), ProductCategory.Name, ProductSubCategory.Name, 'Q' + DATENAME(QQ,
SalesOrderHeader.OrderDate), ProductSubCategory.ProductSubCategoryID
下面再來看看rdl中是如何指定季度列隱藏在年份下面的
//該動態列的名稱為OrderQtr
=FIElds!OrderQtr.Value
//這一段實現了季度列的隱藏,並和OrderYear建立了Toggle關系,