问题描述
大家好,我在SSRS中有一个表达式,可以根据“上次拟合测试”来计算截止日期。如果上一次验配测试有日期,则该数据是正确的。但是,如果“上一次拟合测试”为空或空白,则会给出错误“ #########”(假定返回空或空白)。如何修复该表达式?
=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总是评估真假条件,因此,如果您在LastFitTest
中没有任何值,那么即使永远不会使用,假面也无法评估。
我们在这里所做的所有事情都是使在DateDiff函数中处理的日期始终返回有效日期。 1900年1月1日一无是处,您可以在其中输入任何日期,因为它将永远不会用在最终结果中。
唯一的其他更改是删除了= True
。 IsNothing
返回True / False,因此您不必明确地说= True。