一部の値が非表示になるようにグループフィルタを使用してテーブルを作成しました。 ただし、上記の値の合計()を示す行は、フィルタリングされた値をカウントします。合計から非表示テーブル行を除外
通常はフィルタをクエリに適用しますが、同じデータセットを同じレポートの別のテーブルでも使用しているため、これはオプションではありません。
ここで何か不足しているのですか、これはMS Reporting Servicesの欠陥ですか?
一部の値が非表示になるようにグループフィルタを使用してテーブルを作成しました。 ただし、上記の値の合計()を示す行は、フィルタリングされた値をカウントします。合計から非表示テーブル行を除外
通常はフィルタをクエリに適用しますが、同じデータセットを同じレポートの別のテーブルでも使用しているため、これはオプションではありません。
ここで何か不足しているのですか、これはMS Reporting Servicesの欠陥ですか?
これは、データテーブルの詳細セクションをレンダリングする前にテーブルヘッダーとフッターの値を計算するため、SSRSの「機能」と思われます。
これを回避する方法の1つは、フィルタが必要なテーブルから行を除外するかどうかを示す(データソースがSQL Server、CASE文などを使用していると仮定して)データセットに派生ブール型列を追加することです。
テーブルフィルタを変更してインジケータを確認し、式を使用して条件付き合計を実行して正しい合計を集計できます。
=SUM(Iif(Fields!ExcludeRow.Value = True,0,Fields!ValueToSum.Value))
ような何かがそれはあなたが行が行のみグループレベルで隠されているかどうかを知っていれば、この問題を解決するためにどのように...
答えよりも疑問の多くのですか?
つまり、この行グループで合計をフィルタリングしている場合、つまり、データセットで行が除外されているかどうかを示すフィールドを持つことはできません。
例:私は1ヶ月あたり合計があるARエージングレポートを持っています。私は患者1人当たりの負の合計を除外する必要がありますが(患者の行グループ)、月単位でも列グループがあるので、データセットごとに患者ごとの細分性ができないため、SSRSが隠すか、行は行グループレベルにあります...
私は同じ問題がありましたが、Iif()を入力する場所が多すぎます。 グループからフィルタを削除し、Tablixのプロパティダイアログボックス(Tablixを選択、左上の灰色のボックスを右クリックしてTablixcのプロパティを選択)にフィルタを置くことで解決しました。
ブリリアント!どうもありがとう。私はsum()の中にiif()を置くことを考えなかった。私はクエリを変更する必要はありませんでした。私のフィルターは空のタイトルのみをチェックしていたので、iifにフィルターを入れるだけで問題は解決しました。 – Rob1n