3

SSRS レポートでゼロで除算するときに #error を排除しようとしています。私はまだ#errorを与える次の式を持っています

=IIf(IsNothing(Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")),
88 , Fields!QTY_AVL.Value * 100 / 
Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models"))

ただし、以下のように / を * に切り替えると、値 88 が正しく取得されます

=IIf(IsNothing(Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models")), 
88 , Fields!QTY_AVL.Value * 100 * 
Lookup(Fields!id.Value, Fields!id2.Value, Fields!Stock.Value, "Models"))

どちらの場合でも、ルックアップ値> 0である正しい値が得られます

(Fields!QTY_AVL and Fields!Stock come from different sources)

明らかな何かが欠けていますか?これについての洞察は大歓迎です。

4

1 に答える 1

8

[レポート プロパティ] に移動して [コード] をクリックすると、安全な除算関数を追加できます。これを式で として参照し、CODE.SafeDivide(Value1, Value2)必要に応じてパラメーターを追加します。

この関数は #error メッセージを表示する代わりに 0 を返します。

Public Function SafeDivide(ByVal Numerator As Decimal, ByVal Denominator As Decimal) As Decimal
    If Denominator = 0 Then
        Return 0
    End If
    Return (Numerator / Denominator)
End Function
于 2012-11-12T15:25:20.170 に答える