web-dev-qa-db-ja.com

ssrsのIIF式で複数の条件(ANDを使用)を使用する方法

数量がゼロのSSRSレポートの行を非表示にしたいだけです。開始在庫、発送済、振替、数量販売、在庫調整、在庫クローズなどの複数の数量列があります。次の式を使用してこのタスクを実行しています。 。

    =IIF(Fields!OpeningStock.Value=0 AND Fields!GrossDispatched.Value=0 AND 
Fields!TransferOutToMW.Value=0 AND Fields!TransferOutToDW.Value=0 AND 
Fields!TransferOutToOW.Value=0 AND Fields!NetDispatched.Value=0 AND Fields!QtySold.Value=0 
AND Fields!StockAdjustment.Value=0 AND Fields!ClosingStock.Value=0,True,False)

ただし、行の可視性でこの式を使用すると、レポートは合計行を除くすべての行を非表示にします。レポートには、上記の列の数量を持つ行が表示されるはずです。合計値は正しく表示されます。

注:この行の可視性の式を詳細行に設定します。

式を使用しない場合の結果は次のとおりです。

最初の2行では、すべての数量が0(ゼロ)であるため、これら2行を非表示にしたいです。

enter image description here

この問題を修正するにはどうすればよいですか、または必要な結果を得るにはどの式を使用する必要がありますか?

事前に助けてくれてありがとう。

6
almond eyes

これを試してもらえますか?

=IIF((Fields!OpeningStock.Value=0) AND (Fields!GrossDispatched.Value=0) AND 
(Fields!TransferOutToMW.Value=0) AND (Fields!TransferOutToDW.Value=0) AND 
(Fields!TransferOutToOW.Value=0) AND (Fields!NetDispatched.Value=0) AND (Fields!QtySold.Value=0) 
AND (Fields!StockAdjustment.Value=0) AND (Fields!ClosingStock.Value=0),True,False)

注:HiddenをFalseに設定すると、行が表示されます

13
PeterRing

ここでは、IIF()はまったく必要ありません。とにかく、比較はtrueまたはfalseを返します。

また、この行の可視性はグループ行にあるため、行のフィールドで使用するのと同じ集計関数をフィールドで使用するようにしてください。したがって、グループ行に合計が表示される場合、これをHiddenプロパティに配置します。

=Sum(Fields!OpeningStock.Value) = 0 And
Sum(Fields!GrossDispatched.Value) = 0 And 
Sum(Fields!TransferOutToMW.Value) = 0 And
Sum(Fields!TransferOutToDW.Value) = 0 And
Sum(Fields!TransferOutToOW.Value) = 0 And
Sum(Fields!NetDispatched.Value) = 0 And
Sum(Fields!QtySold.Value) = 0 And
Sum(Fields!StockAdjustment.Value) = 0 And
Sum(Fields!ClosingStock.Value) = 0

ただし、上記のバージョンでは、1つのレコードの値が1で、1つの値の値が-1で、他のすべてのレコードがゼロの場合、合計もゼロになり、行が非表示になります。それが望んでいない場合、より複雑な式を書くことができます:

=Sum(
    IIF(
        Fields!OpeningStock.Value=0 AND
        Fields!GrossDispatched.Value=0 AND
        Fields!TransferOutToMW.Value=0 AND
        Fields!TransferOutToDW.Value=0 AND 
        Fields!TransferOutToOW.Value=0 AND
        Fields!NetDispatched.Value=0 AND
        Fields!QtySold.Value=0 AND
        Fields!StockAdjustment.Value=0 AND
        Fields!ClosingStock.Value=0,
        0,
        1
    )
) = 0

これは基本的に、フィールドがゼロでない行の数を数えるのに便利な方法です。グループ内のすべての行ですべてのフィールドがゼロの場合、式はtrueを返し、行は非表示になります。

3
JC Ford

以下に例を示します。

=IIF(First(Fields!Gender.Value,"vw_BrgyClearanceNew")="Female" and 
(First(Fields!CivilStatus.Value,"vw_BrgyClearanceNew")="Married"),false,true)

データの送信元のデータソース名またはテーブル名を特定する必要があると思います。

0
roger bulawan