表达在SSRS中给出错误

时间:2014-10-01 11:24:49

标签: reporting-services

我在SSRS中使用以下表达式但未给出预期结果。

=IIf(Fields!Completed_Date.Value Is Nothing,
    Nothing,
    IIf(First(Fields!TIMEFORMAT.Value,"dsPreferences") = True,
        Format(DateAdd("n",Parameters!UTCOffset.Value,Fields!Completed_Date.Value),"MM/dd/yyyy hh:mm:ss tt"),
        Format(DateAdd("n",Parameters!UTCOffset.Value,Fields!Completed_Date.Value),"MM/dd/yyyy HH:mm:ss")
    )
)

它必须检查Date是否为null。如果它为null,则将字段留空。如果它不为null,则它必须根据从另一个数据集获取的时区值返回值。此表达式工作正常存在非空日期但是当存在空日期时它返回#error。

1 个答案:

答案 0 :(得分:1)

尝试使用以下语法:

=IIf(IsNothing(Fields!Completed_Date.Value), "", <yourFalsePart>)

此语法可能无法解决您的问题,因为Completed_Date也用于false部分。在决定使用哪个表达式之前,IIf运算符始终会对这两个表达式进行评估:因此如果Completed_DateNothing,它将会破坏您的表达式。

尝试使用自定义函数,如下所述:SSRS expression giving error with iif condition