SharePoint Designer 2010 - 使用条件格式确定今天的日期是否在开始日期列的x天内

时间:2011-03-10 16:43:40

标签: sharepoint sharepoint-2010 sharepoint-designer conditional-formatting

我正在使用SPD 2010和Sharepoint Server 2010.

使用条件格式我正在尝试格式化列表,以便如果今天的日期超过开始日期列的3天,则单元格将变为红色。

直接比较两个日期列(以查看今天是否在开始日期之后)运作良好 -

ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($ thisNode / @StartDate )))< DDWRT:DateTimeTick(DDWRT:GenDisplayName(串(的 $今天)))

但是,如果我添加一个数字,它将在SPD设计视图中有效,但在实际的SharePoint网站上却无效。

ddwrt:DateTimeTick(ddwrt:GenDisplayName(字符串($ thisNode / @StartDate )))+ 3 < DDWRT:DateTimeTick(DDWRT:GenDisplayName(串(的 $今天)))

我尝试将3转换为刻度 - > 8,640,000 /天并使用该值,但这也不起作用(并且在SPD设计视图中不起作用)。

如果我创建一个计算日期为“StartDate + 3”的列,然后直接比较它,我可以使格式化工作,但是,如果列不可见并且我宁愿不创建它也不起作用附加列。

有什么想法吗?

谢谢你的帮助。

2 个答案:

答案 0 :(得分:5)

以下对我有用:

number(ddwrt:FormatDateTime(ddwrt:FormatDate(string($ thisNode / @ StartDate),1033,1),1033,'yyyyMMdd')+ 3)< = number(ddwrt:FormatDateTime(ddwrt:FormatDate(string) ($今天),1033,1),1033, '年月日'))

答案 1 :(得分:1)

我不知道为什么,但这对我不起作用。第二个FormatDateTime参数 - 'yyyyMMdd' - 不断抛出错误。

这终于奏效了:

number(translate(substring-before(@StartDate,'T'),'-',''))+3 <= number(translate(substring-before($Today,'T'),'-',''))