【问题标题】:SSRS expression fails for IIF date with #errorIIF 日期的 SSRS 表达式失败并出现 #error
【发布时间】:2015-02-17 17:43:00
【问题描述】:

存储过程包含在 rdl 类型的报告生成器文件中。存储过程有很多字段。其中一个字段返回日期(不是日期时间)。报告中的预期结果是仅显示日期,如果没有返回日期则为空字段。

只有字段值,当日期为空时结果显示为空字段,否则显示带有日期时间值的日期。

使用 IIF 检查“无”的值,如下所示。

=IIF(Fields!myDate.Value Is Nothing,"",Fields!myDate.Value)

输出是一样的。当日期可用时显示日期时间值。

尝试使用 shortDateString() 函数会在日期存在时产生正确结果,但在日期不存在时会产生 #Error。这是声明:

=IIF(Fields!rlsPromoDate.Value Is Nothing, "", 
Fields!rlsPromoDate.Value.ToShortDateString())

尝试了以下版本。没有出现错误,但是没有返回日期,但这是“Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.FieldImpl”。

=IIF(Fields!myDate.Value Is Nothing,"", String.Format("{0:MM/dd/yyyy}", 
Fields!myDate))

如果有解决办法,请告知。

【问题讨论】:

    标签: date datetime reporting-services conditional-statements ssrs-2008-r2


    【解决方案1】:

    尝试以下方法:

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

    或您实际想要使用的任何日期格式。

    【讨论】:

    • 至于为什么...IIF() 是一个函数,就像调用任何其他函数一样,传递给它的所有参数总是评估之前 通话。这包括您尝试调用 toShortDateString() 方法,该方法失败,因为它被调用的值是 Nothing。
    • 谢谢 JC 福特。这是最重要的信息。我因此浪费了几个小时。
    猜你喜欢
    • 2016-07-28
    • 2021-11-26
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2023-03-20
    相关资源
    最近更新 更多