【问题标题】:Date Parameters Defaults in SSRSSSRS 中的日期参数默认值
【发布时间】:2015-02-25 19:35:04
【问题描述】:

我正在努力做以下事情。

我有两个日期参数,开始日期和结束日期。

我希望在开始日期中默认为从您运行报告之日起上个月的第一个星期一。

结束日期我希望默认为当前月份第一个星期一之前的日期,即您运行报告的日期。

所以如果我今天运行它,11 月的第一个星期一是 03/11/14。 12 月第一个星期一的前一天是 2014 年 11 月 30 日,因此这将是结束日期。 另一个例子,如果我在明年 1 月的某个时间运行报告 - 它将默认为开始日期 - 2014 年 1 月 12 日(12 月的第一个星期一),结束日期将是 2015 年 4 月 1 日(2015 年第一个星期一的前一天一月)

希望以上内容有意义吗?

【问题讨论】:

  • 这应该会有所帮助:stackoverflow.com/questions/22471805/…
  • 这显示的是一周中的第一个星期一,而不是一个月 - 抱歉,我无法弄清楚我需要做什么才能实现我的目标?

标签: date reporting-services parameters


【解决方案1】:

我使用长 IIF() 表达式来实现您的目标。将下面的表达式放入您的参数默认值中。

从今天起上个月的第一个星期一:

=IIF(Weekday(DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1)))=2,
DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1)),
DateAdd("d",9-Weekday(DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1))),DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1))))

当前月份第一个星期一的前一天:

=IIF(Weekday(DateSerial(Year(Now()), Month(Now()), 1))=2,
DateAdd("d",-1,DateSerial(Year(Now()), Month(Now()), 1)),
DateAdd("d",8-Weekday(DateSerial(Year(Now()), Month(Now()), 1)),DateSerial(Year(Now()), Month(Now()), 1))) 

上面的表达式已经过测试。由于分数低,我目前无法分享屏幕截图。

【讨论】:

  • 我不知道如何从中挑选骨头 - 但它有效!!!!非常感谢,非常感谢。
  • 嗨,我今天已经运行了我的报告 - 但开始日期是 2 月 9 日而不是 2 月 2 日,开始日期是 3 月 8 日而不是 3 月 1 日 -为什么会这样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多