我正在尝试在SSRS报告中设置默认参数值。我想测试当前日期,看它是否等于一周的第一天(在我的情况下是星期一)。如果它是一周的第一天,那么我希望默认值为当前日期减去2天,如果它不是一周的第一天,那么我希望默认值为当前日期减去1天。
我似乎有语法问题,但它没有告诉我在哪里。我的参数是StartDate
和EndDate
。
这是我尝试过的:
=iif(weekday(Today(),FirstDayOfWeek.Monday)==1,DateAdd("d",-2,today(),DateAdd("d",-1,today())
这是我得到的一般错误:
The value expression for the report parameter 'StartDate' contains eror:[BC30201] Expression expected.
我哪里错了?
答案 0 :(得分:1)
看来你在if语句的第一个逻辑部分之后缺少一个右括号,而另一个用来关闭语句。
=iif(weekday(Today(),FirstDayOfWeek.Monday)==1,DateAdd("d",-2,today()),DateAdd("d",-1,today()))
答案 1 :(得分:1)
您正尝试在SSRS VBA表达式中使用Sql语法。 SSRS VBA允许对Sql进行日期操作的非常相似的表达式,主要区别在于使用DateInterval枚举。
所以你的表达式需要使用VBA语法:
=IIF(Weekday(Today, FirstDayOfWeek.Monday) = 1, DateAdd(DateInterval.Day, -2, Today), DateAdd(DateInterval.Day, , -1, Today))