2

我使用SPD 2010和SharePoint Server 2010的SharePoint Designer 2010中 - 确定是否今天的日期使用条件格式

使用条件格式我试图格式化一个列表,以便为内开始日期列的X天如果今天的日期大于开始日期列的3天以后,单元格将变为红色。

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

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

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

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

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

如果我创建一个计算日期为“StartDate + 3”的列,然后直接进行比较,则可以使格式生效,但是,如果该列不可见,则不起作用,我宁可不创建额外的列。

任何想法?

感谢您的帮助。

回答

5

以下为我工作:

号(DDWRT:的FormatDateTime(DDWRT:FormatDate(字符串($ thisNode/@起始日期),1033,1),1033, 'YYYYMMDD')+ 3)= <数(ddwrt:FormatDateTime(ddwrt:FormatDate(string($ Today),1033,1),1033,'yyyyMMdd'))

+0

你应该剔接受这个答案,表示问题被关闭(尽可能晚回答者像我一样有用)。 :) – 2011-05-11 12:25:40

+0

谢谢斯图尔特,我很担心这是一个StackOverflow错误接受你自己的答案。 – Ben 2011-05-12 14:43:23

+0

幸运的是,不幸的是,你不能获得+15接受的答案奖金。 – 2011-05-12 21:59:10

1

我不知道为什么,但这并不适用于我。第二个FormatDateTime参数 - 'yyyyMMdd' - 一直抛出一个错误。

这最后的工作:

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