我有一份报告(SSRS 2008 r2),它有两个参数,@ StartDate和@EndDate。两个参数都设置为类型:日期/时间并允许NULL值。现在,@ EndDate默认为NULL(我在处理SP中的NULL值),在我的报告中,我有一些文本框,其中显示了报告中使用的开始和结束日期范围。
对于显示结束日期的文本框,我使用一个表达式,如果参数为null或空白,则显示当前日期,但如果用户选择结束日期,则文本框应显示所选的结束日期。这是我遇到问题的地方。
我使用以下表达式来显示结束日期。
=IIF(IsNothing(Parameters!EndDate.Value) OR Parameters!EndDate.Value = "", Format(Now(), "MMM - dd, yyyy"), Format(Parameters!EndDate.Value, "MMM - dd, yyyy"))
如果结束日期参数为NULL,则表达式有效,但如果我选择结束日期,则表达式始终返回 #Error
我创建了单独的文本框来尝试此表达式的不同部分。两个:
Format(Now(), "MMM - dd, yyyy")
和
Format(Parameters!EndDate.Value, "MMM - dd, yyyy")
自己工作得很好。当我尝试将它们放入IIF块以根据EndDate参数为空时有条件地返回一个或另一个时,或者当它出错时是否为空。
答案 0 :(得分:4)
这应该有用..
=IIF(IsNothing(Parameters!EndDate.Value) OR (NOT IsDate(Parameters!EndDate.Value)), Format(Now(), "MMM - dd, yyyy"), Format(Parameters!EndDate.Value, "MMM - dd, yyyy"))