SSRS 表达式 - 嵌套的 IIF,默认日期



我有一个带有日期参数的 SSRS 报告,该参数定义了我们希望报告的一周的开始。我希望此参数的默认日期根据嵌套的 IIF 语句显示如下,该语句使用一周中的当前日期来确定参数应显示为默认值的日期(我在括号中包含了 1 月的示例日期):

    星期一(
  • 18日)=上周星期一(11日)
  • 星期二(19日)=上周星期一(11日)
  • 星期三(20日)=上周星期一(11日)
  • 星期四(21日)=上周星期一(11日)
  • 星期五(22日)=本周星期一(18日)
  • 星期六(23日)=本周星期一(18日)
  • 星期日(24日)=本周星期一(18日)

试图编写一个表达式来完成此操作,但到目前为止,我无法根据需要显示参数。我写的表达是:

=IIF(DateInterval.Weekday = 1, 'Monday = Monday Last Week
DateAdd(DateInterval.Day, 2-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today)),
    IIF(DateInterval.Weekday = 2, 'Tuesday = Monday Last Week
        DateAdd(DateInterval.Day, 2-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today)),
            IIF(DateInterval.Weekday = 3, 'Wednesday = Monday Last Week
                DateAdd(DateInterval.Day, 2-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today)),
                    IIF(DateInterval.Weekday = 4, 'Thursday = Monday Last Week
                        DateAdd(DateInterval.Day, 2-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today)),
                            IIF(DateInterval.Weekday = 5, 'Friday = Monday This Week
                                DATEADD("d", 1 - DATEPART(DateInterval.WeekDay, Today,FirstDayOfWeek.Monday), Today),
                                    IIF(DateInterval.Weekday = 6, 'Saturday = Monday This Week
                                        DATEADD("d", 1 - DATEPART(DateInterval.WeekDay, Today,FirstDayOfWeek.Monday), Today),
                                            IIF(DateInterval.Weekday = 7, 'Sunday = Monday This Week
                                                DATEADD("d", 1 - DATEPART(DateInterval.WeekDay, Today,FirstDayOfWeek.Monday), Today),
                                                Today
                                            )
                                    )
                            )
                    )
            )
    )
)

我正在尝试的可能吗?如果是这样,我哪里出错了?另外,我知道注释会导致表达式出错,我在示例代码中添加了注释以使其更具可读性。

以下内容将适合您:

=DateAdd("ww", Datediff("ww", CDate("1900-01-01"), DateAdd("d", -5, Today)), CDate("1900-01-01"))

前提是它找到固定时间点(1900 年 1 月 1 日)和 5 天前(让默认周在星期五更改)之间的周数,然后将该周数添加到同一固定点,给出当前一周的开始,如果是星期一到星期四,则为前一周。

最新更新