2009-04-17 55 views
2

我使用組過濾器創建了一個表格,所以一些值保持隱藏狀態。 但是,顯示上述值的sum()的行仍然計算過濾的值。從總數中排除隱藏的表格行

通常我會將過濾器應用於查詢,但我也在同一報表的其他表中使用相同的數據集,因此這不是一個選項。

我在這裏錯過了什麼,或者這是MS Reporting Services中的一個缺陷?

回答

4

這似乎是SSRS的「特徵」,顯然是因爲它在呈現數據表的詳細信息部分之前計算表格頁眉和頁腳中的值。

解決此問題的一種方法是將派生布爾列添加到數據集(假設您的數據源是SQL Server,使用CASE語句或類似語句),以顯示是否應將該行從需要過濾器的表中排除。

然後,您可以更改表格過濾器來檢查指標,並使用表達式執行條件總和來彙總正確的總數。喜歡的東西

=SUM(Iif(Fields!ExcludeRow.Value = True,0,Fields!ValueToSum.Value)) 
+0

太棒了!非常感謝。我從來沒有想過在sum()中放入一個iif()。我甚至不必更改查詢。我的過濾器只是檢查空的標題,所以只要將過濾器放入iif中,問題就解決了。 – Rob1n 2009-04-17 13:39:35

0

它比回答的問題......

,如果你知道行是否被隱藏或不如何解決這個問題只在行集團層面?

即,如果您要通過此行組篩選總計,即不能有指示排除行或不在數據集中的字段。

例如:我有AR老化報告,每個月都有患者總數。我需要篩選出每名患者(患者排隊)的負總數,但我也有列組 - 每月,因此我的數據集不能按每個患者的粒度排列,因此,唯一的地方SSRS可以決定是否隱藏或顯示行在行組級...

0

我有同樣的問題,但我有太多的列總數在哪裏進入IIF()。 我通過從組中刪除過濾器並將過濾器放入Tablix屬性對話框(選擇Tablix,右鍵單擊左上角的灰色框並選擇Tablixc屬性)來解決此問題。