3

SSRS 2008R2 を使用してレポートを作成しています。データソースは、webservice からの xml 応答です。データがない場合は空の文字列を返したいのですが、データのある行がある場合は別の日時形式に変換したいです。

私は次のような IIF 構造を使用しています。

=IIF
(
    LEN(Fields!DateOfReg.Value) <= 0,
    "",
    FORMAT(CDATE(DateTime.ParseExact(Fields!DateOfReg.Value,"M/d/yyyy hh:mm:ss tt",
    System.Globalization.CultureInfo.InvariantCulture)), "dd.MM.yyyy HH:mm:ss")
)

データがない場合、テキスト ボックスと出力に#Errorが表示されます。

文字列は有効な DateTime として認識されませんでした

IIF 構造が TRUE ステートメントと FALSE ステートメントの両方を計算するということですか? もしそうなら、どうすればそれを短絡させて、データがない場合に行を変換しないことができますか?

4

2 に答える 2

1

次のことを試してください。

=IIF
(
    Fields!DateOfReg.Value= "",
    "",
    Datevalue(Cstr(Fields!DateOfReg.Value))
)
于 2013-02-05T12:45:58.450 に答える
1

はい、あなたは正しいです - IIF は両方のステートメントを計算します。ただし、IIF を使用して空の文字列を "Nothing" に変換し、次のようにフォーマットしてみてください。

Format(IIF(Fields!DateOfReg.Value = "", Nothing, Fields!DateOfReg.Value), "yyyy/MM/dd")

フォーマット関数は、空の文字列を渡すと例外を引き起こしますが、"Nothing" を渡すと空の文字列を返します。

于 2013-02-06T13:51:31.593 に答える