2009-04-17 16 views
2

一部の値が非表示になるようにグループフィルタを使用してテーブルを作成しました。 ただし、上記の値の合計()を示す行は、フィルタリングされた値をカウントします。合計から非表示テーブル行を除外

通常はフィルタをクエリに適用しますが、同じデータセットを同じレポートの別のテーブルでも使用しているため、これはオプションではありません。

ここで何か不足しているのですか、これはMS Reporting Servicesの欠陥ですか?

答えて

4

これは、データテーブルの詳細セクションをレンダリングする前にテーブルヘッダーとフッターの値を計算するため、SSRSの「機能」と思われます。

これを回避する方法の1つは、フィルタが必要なテーブルから行を除外するかどうかを示す(データソースがSQL Server、CASE文などを使用していると仮定して)データセットに派生ブール型列を追加することです。

テーブルフィルタを変更してインジケータを確認し、式を使用して条件付き合計を実行して正しい合計を集計できます。

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

ブリリアント!どうもありがとう。私はsum()の中にiif()を置くことを考えなかった。私はクエリを変更する必要はありませんでした。私のフィルターは空のタイトルのみをチェックしていたので、iifにフィルターを入れるだけで問題は解決しました。 – Rob1n

0

ような何かがそれはあなたが行が行のみグループレベルで隠されているかどうかを知っていれば、この問題を解決するためにどのように...

答えよりも疑問の多くのですか?

つまり、この行グループで合計をフィルタリングしている場合、つまり、データセットで行が除外されているかどうかを示すフィールドを持つことはできません。

例:私は1ヶ月あたり合計があるARエージングレポートを持っています。私は患者1人当たりの負の合計を除外する必要がありますが(患者の行グループ)、月単位でも列グループがあるので、データセットごとに患者ごとの細分性ができないため、SSRSが隠すか、行は行グループレベルにあります...

0

私は同じ問題がありましたが、Iif()を入力する場所が多すぎます。 グループからフィルタを削除し、Tablixのプロパティダイアログボックス(Tablixを選択、左上の灰色のボックスを右クリックしてTablixcのプロパティを選択)にフィルタを置くことで解決しました。

関連する問題