s-s-rS 工作日表达

Posted

技术标签:

【中文标题】s-s-rS 工作日表达【英文标题】:s-s-rS Weekday Expressions 【发布时间】:2015-06-15 18:23:25 【问题描述】:

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

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

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

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


我的进步


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

表达式:[Due_Date] 数据类型:日期/时间 操作员: 值:=Today()

表达式:=IsNothing(Fields!Due_Date.Value) 数据类型:布尔值 操作员:= 值:假

我已经为截止日期文本框自定义了背景颜色,并使用了以下表达式:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于s-s-rS 工作日表达的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS - 多值参数表达式

s-s-rS - 视觉工作室

s-s-rS 条形图日期格式

s-s-rS:计算字段中的表达式

s-s-rS 表达式在 SUM 和 IIF 时给出 #Error

s-s-rS/报表生成器 datediff 以工作日为单位