0

次の SSRS 値式を検討してください。

=IIF(First(Fields!MyCol.Value, "MyDataSet")=0, "yes", "no")

MyCol は Nullable 列です。MyCol が 0 の場合のみ "yes" が出力されるようにします。上記のコードは、MyCol が 0 の場合に "yes" と正しく評価されます。ただし、MyCol が Nothing (つまり、SQL Server では NULL) の場合も "yes" と評価されます。これは予想される動作ですか?

目的の結果を得るには、次の長い式に頼る必要がありました。

=IIF(Not(First(Fields!MyCol.Value, "MyDataSet") is Nothing) And First(Fields!MyCol.Value, "MyDataSet")=0, "yes", "no")

これも機能する短いバージョンはありますか?

4

1 に答える 1

1

これは VB.NET の動作によるもので、SSRS の動作によるものではないようです。

たとえば、ここにいくつかのストレートな VB.NET コードがあります。

Dim obj As Object = Nothing

If (obj = 0) Then
    MessageBox.Show("obj = 0 : true")
End If

If (obj Is Nothing) Then
    MessageBox.Show("Obj is nothing")
End If

これにより、実行時に両方のメッセージが表示されます。

于 2012-04-12T00:23:59.130 に答える