2

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

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

直接比较两个日期列(查看今天是否在开始日期之后)效果很好 -

ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($thisNode/ @StartDate ))) < ddwrt:DateTimeTick(ddwrt:GenDisplayName(string( $Today )))

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

ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($thisNode/ @StartDate ))) + 3 < ddwrt:DateTimeTick(ddwrt:GenDisplayName(string( $Today )))

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

如果我创建一个计算日期为“StartDate+3”的列,然后直接比较它,我可以让格式工作,但是,如果该列不可见,它就不起作用,我宁愿不创建其他列。

有任何想法吗?

谢谢你的帮助。

4

2 回答 2

5

以下对我有用:

number(ddwrt:FormatDateTime(ddwrt:FormatDate(string($thisNode/@StartDate),1033,1),1033,'yyyyMMdd')+3) <= number(ddwrt:FormatDateTime(ddwrt:FormatDate(string($Today) ,1033,1),1033,'yyyyMMdd'))

于 2011-03-10T22:26:43.277 回答
1

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

这终于奏效了:

number(translate(substring-before(@StartDate,'T'),'-',''))+3 <= number(translate(substring-before($Today,'T'),'-',''))
于 2012-02-01T18:06:21.063 回答