Business Intelligence 2008でSSRSでテーブルを作成しています。テーブルに使用されている値の1つとして日付を文字列として使用しています。この値には日付を表す文字列が含まれている場合もあれば、空白の場合もあります。値がある場合は、別の方法で値を書式化します。今、私はそれが表示されているセルのためのこの表現を持っています:SSRS - IIFステートメントで無効な値を無視する方法
=IIf(Fields!MyDate.Value = Nothing, "", Format(CDate(Fields!MyDate.Value), "dd-MM-yyyy"))
フィールドが値を持つ場合、これは完全に動作します。ただし、フィールドが空白の場合、セルには#Error
が入力されます。 Format
の機能があれば意味がありますが、IIf
はそれを空白の値で実行しようとしないように思われます。私はこの表現でそれをテストした:
=IIf(Fields!MyDate.Value = Nothing, "No value", "Value")
...そして案の定、ブランク値が文の正しい一部を入力し、「値なし」のプリント。表現の第2部分(使用されていない部分)がエラーを引き起こす理由はわかりません。エラーを起こさない、これを書き換える方法はありますか?おかげ
EDIT:しかし、これは同様にブランク値のため#Error
を返さ
=Switch(Fields!MyDate.Value = Nothing, "", Fields!MyDate.Value <> Nothing, Format(CDate(Fields.MyDate.Value), "dd-MM-yyyy"))
:私はコメントで述べたように、私はまた、このようなswitch文を試してみました。
可能な重複についての編集:IIfの短絡の有無を尋ねる質問にこれを重複して表示しないでください。私はそこを見て、それは別の質問をし、私が必要とするもののために働く答えを与えない。
:!
別のオプションは、がショートしないことをカスタム関数を作成することです"値なし"、 "値") ' – Lamak
' IIF'を使わずにフィールドの書式文字列を設定しようとしましたか? –
@Lamak問題は、IIFが短絡しないため、2番目のオプションを評価する際にエラーが発生することです。 –