DateAdd 到 return 值和空白的 SSRS 表达式

SSRS Expression for DateAdd to return value and blank

大家好,我在 SSRS 中有一个表达式可以根据上次拟合测试计算截止日期。如果上次拟合检验有日期,则数据正确。但是,如果上次拟合测试为 Null 或空白,则会给出错误“########”(它假定 return 为空或空白)。我该如何修复该表达式?

=IIF(IsNothing(Fields!LastFitTest.Value) = True,"",DateAdd(DateInterval.Year,1,Fields!LastFitTest.Value))

试试这个...

=IIF(
    IsNothing(Fields!LastFitTest.Value),
    "",
    DateAdd(DateInterval.Year,1,IIF(IsNothing(Fields!LastFitTest.Value), '1900-01-01', Fields!LastFitTest.Value))
    )

问题是 IIF 总是评估 true 和 false 条件,所以当你在 LastFitTest 中没有值时,错误的一面无法评估,即使它永远不会被使用。

我们在这里所做的就是使在 DateDiff 函数中处理的日期始终 return 成为有效日期。 1900 年 1 月 1 日没有任何意义,您可以在其中输入您喜欢的任何日期,因为它永远不会用于最终结果。

唯一的其他更改是删除 = TrueIsNothing returns True/False 所以你不必明确地说 =True.