将数字转换为货币时,SSRS 报告显示#Error

SSRS Report Shows #Error When Converting Number to Currency

我正在尝试让报告显示用户在参数中输入的购买价格。如果用户没有输入任何内容,它会说“未公开”,否则我希望它以货币形式显示购买价格。我尝试了以下方法:

=IIF(Parameters!PurchasePrice.Value = "", "Undisclosed", Cstr(Format(Parameters!PurchasePrice.Value, "C")))

=IIF(Parameters!PurchasePrice.Value = "", "Undisclosed", Format(Parameters!PurchasePrice.Value, "C"))

=IIF(Parameters!PurchasePrice.Value = "", "Undiscloded", FormatCurrency(Parameters!PurchasePrice.Value,0))

=IIF(Parameters!PurchasePrice.Value = "", "Undiscloded", FormatNumber(Parameters!PurchasePrice.Value,0))

我可以显示“Undisclosed”,但每次输入数字时它都会显示 #Error

我会稍微不同地处理这个问题。这将避免 SSRS 尝试将非数字格式化为货币。 IIF 将评估真假结果,即使每个实例只有一个结果为真。

我会将显示购买价格的文本框设置如下...

设置Value表达式为

=VAL(Parameters!PurchasePrice.Value)

如果参数值保留为 blank/empty 字符串

,这将 return 为零

然后将文本框的Format属性设置为

$#.00;-$#.00;Undisclosed

假设您想要 $ 作为货币符号。此格式字符串会将正数和负数的数字格式化为两位小数,并在 $ 符号前添加前缀,但对于零值,它将显示作品“Undisclosed”

您可以尝试以下解决方案:

 =IIF(IsNumeric(Parameters!PurchasePrice.Value), Format(Val(Parameters!PurchasePrice.Value), "C"), "Undisclosed")