データベースから文字列として返される値がありますが、それは である可能性があり、 であるdecimal
場合はdecimal
として表示しdecimal
、特定の方法でフォーマットしたいdecimal
です。戻ってくる。
これが私のコードです:
=Iif
(
IsNothing(Fields!Amount.Value) Or Len(Trim(Fields!Amount.Value)) < 1,
Fields!Amount.Value, //have even tried to do CStr(Fields!Amount.Value) in case conversion below makes the report expect decimals for all values
Iif
(
IsNumeric(Fields!Amount.Value),
CDec(Fields!Amount.Value),
Fields!Amount.Value
)
)
上記のコメントはコードの一部ではありません。とにかく、上記に基づいて、すべての 10 進数は正常に 10 進数に変換され、正常に表示されますが、空の文字列または数値以外の値を保持する文字列はすべて #Error として表示されます。
結果の表示例を次に示します。
72.00
95.00
#Error
20.00
この表現の何が問題になっていますか? なぜ SSRS は VB の代わりに C# を使用できなかったのでしょうか?!!?
更新:問題は変換に関係しており、値が何もないか、1文字未満か、数値かをチェックするロジックではないことを知っています。これは、次のように機能するためです。
=Iif
(
IsNothing(Fields!Amount.Value) Or Len(Trim(Fields!Amount.Value)) < 1,
"is nothing or less than 1",
Iif
(
IsNumeric(Fields!Amount.Value),
"is numeric",
"is not numeric"
)
)
これは正しく表示されます:
is numeric
is numeric
is nothing or less than 1
is numeric