SSRS平日表达

时间:2015-06-15 18:23:26

标签: sql-server date reporting-services ssrs-2008 ssrs-tablix

我在 SQL Server 2008 R2 Report Builder 3.0 中有两个表,每个表都有相同的三列:任务,分配给和截止日期。

我的目标是使用表达式构建器向我显示每个表的特定日期范围。

在第一个表格中,我只想显示截止日期早于或等于上周五的记录/行。上周(周一至周五)显示的所有记录必须将Fields!Due_Date.value突出显示为黄色。如果Fields!Due_Date.value是星期五或更早的星期五,则记录将突出显示为红色。

第二个表包含与第一个表相同的列。在此表中,我只想显示截止日期值在当前周(周一至周五)内的记录。不需要有颜色。

我的进展

第一个表格中有两个过滤器:

  • 表达:[Due_Date]
  • 数据类型:日期/时间
  • 接线员:<
  • 价值:=今天()

  • Expression:= IsNothing(Fields!Due_Date.Value)
  • 数据类型:布尔值
  • 接线员:=
  • 价值:假

我为截止日期TextBox定制了背景颜色,并使用以下表达式:

=IIF(Fields!Due_Date.Value <= DateAdd("d", -8(today()), "Red", "Yellow")

这些表达式和过滤器只会在当天是星期一时给出我想要的结果。

重申一下,我希望该表显示截止日期小于今天的记录,以及当该值为上周的任何一天时,截止日期单元格的背景颜色为黄色,并且如果截止日期为两个过去的星期五或更早,然后背景颜色为红色。

1 个答案:

答案 0 :(得分:0)

您需要按星期几(使用DATEPART)调整今日,并将星期日(-2 ...星期日 - 2 =星期五)标准化:

=IIF(Fields!Due_Date.Value <= DateAdd("d", -2 - DATEPART("dw", TODAY), TODAY), "Red", "Yellow")

我不确定这会做你想要的 - 记录上周五比(或=)更早的日期是红色而不是旧的黄色。它可能需要一些调整,但应该让你朝着正确的方向前进。