報表中分組聚合的展開和收起效果與處理不規則層次結構的技巧(沒有子元素的時候不展開, 刪除+符號)
分組聚合的展開和收起效果在SSRS Report中非常常用,並且有時還要處理一些比較特別的情況。比 如分組合並時有的層次結構是不規則的,有的組有兩層,遇到這種情況應該如何處理?
注意到下面的這個需求,如果 France 下面沒有其它的子層級,就不顯示 + 號,如果 United States - Utah/Minnesota 州沒有城市的子層次那麼它們也不顯示 + 號.
這樣的需求在 SSRS Report 中會偶爾碰到,可以理解為如何處理非對稱層次結構中的顯示和隱藏問 題.
下面展示的技巧先回顧了如何垂直分組,使用的是Table這個控件,而沒有使用Tablix. 最後展現了 在沒有子層次結構的時候如何不顯示 + 號,以免給用戶以誤導做出無謂的點擊。
使用的Demo數據庫是 AdventureWorks2012, 為了展示不規則層次帶來的問題,把Dataset中的SQL給 故意寫成這樣-
SELECT CountryRegionName, CASE WHEN CountryRegionName = 'France' THEN '' ELSE StateProvinceName END AS StateProvinceName, CASE WHEN CountryRegionName = 'France' THEN '' WHEN City = 'Nevada' THEN '' WHEN City = 'Duluth' THEN '' ELSE City END AS City, SalesQuota, SalesYTD, SalesLastYear FROM Sales.vSalesPerson WHERE CountryRegionName IN ('United States','United Kingdom','France')
下面開始先創建一個報表,以及添加DataSource, DataSet和 Table控件並填充數據