1

MSSQL 2008ReportingServices用のレポートビルダー3を使用して作成されたレポートがいくつかあります。レポートの一部のフィールドに「#Error」が表示されていますが、これではなく、単純な「-」のみを表示したいと思います。これを克服するための組み込み関数またはカスタムコードはありますか?

4

1 に答える 1

0

私はまだあなたの式を見たいと思っていますが、あなたはそれを示さないように決心しているようです. 現在の行のフィールドを前の行のフィールドで割るようなことをしていると思います。ただし、これはInfinity最初の行ではなく、#Error何か他のことが起こっていることを意味します。しかし、数式がないので、とにかくこれで実行しましょう。

これを解決する最も一般的な方法は、Previous 関数に対して Nothing が返されているかどうかを確認することです。これは通常、最初の行にいることを示します (フィールドに常にデータがあると仮定します)。これには、値を持つことが保証されていないフィールドでも機能するという利点があります。

 =IIF(IsNothing(Previous(Fields!MyField.Value)), "-", Fields!MyField.Value / Previous(Fields!MyField.Value))

行番号を使用してそれを行う別の方法を次に示します。これは、関係なく常に最初の行をチェックします。

=IIF(RowNumber(Nothing) = 1, "-", Fields!MyField.Value / Previous(Fields!MyField.Value))

これは、前の行がない場合に無効な Format、Color などの他のプロパティに式を適用するなどの他のメカニズムではなく、Value 式によってエラーが発生していることを前提としています。

于 2012-10-11T00:59:12.800 に答える