0

SSRS 2008 R2 を使用しています。私の RDL にはいくつかのサブレポートがあり、すべてこの親 RDL からのみ 1 つのフィールド値を入力として受け取ります。この 1 つのフィールド値は「people_id」と呼ばれます。ただし、親 RDL から返されるレコードが 0 の場合もあります。この場合、親 RDL からこのレポートを実行すると、次のエラーが発生します。

An error occurred during local report processing.  Object reference not set to an instance of an object.

サブレポートのパラメーター値を両方に設定しようとしましたが、

people_id

=iif(isnothing(Fields!people_id.Value),"",Fields!people_id.Value)

レコードがない場合にこのエラーを回避するにはどうすればよいですか?

4

2 に答える 2

1

手遅れだと思いますが、他の誰かを助ける場合に備えて。

式の一部の値は、レポートの処理時に null または未定義と評価される場合があります。これにより、実行時エラーが発生し、評価された式ではなくテキスト ボックスに #Error が表示される場合があります。If-Then-Else ステートメントとは異なり、IIF ステートメントの各部分は (関数呼び出しを含めて) 評価されてから、true または false をテストするルーチンに渡されるため、IIF 関数はこの動作に特に敏感です。ステートメント =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) は、Fields!Sales.Value が NOTHING の場合、レンダリングされたレポートで #Error を生成します。

http://msdn.microsoft.com/en-us/library/ms157328.aspxから

同様の問題があり、カスタム関数を作成することになりました。

于 2014-05-13T05:31:15.887 に答える
0

=iif(isnothing(Fields!people_id.Value),"",Fields!people_id.Value) の代わりに、=iif(isnothing(Fields!people_id.Value),NOTHING,Fields!people_id.Value) を試すことができますか?

于 2012-09-22T05:13:37.937 に答える