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 工作日表达的主要内容,如果未能解决你的问题,请参考以下文章