我正在使用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”的列,然后直接比较它,我可以使格式化工作,但是,如果列不可见并且我宁愿不创建它也不起作用附加列。
有什么想法吗?
谢谢你的帮助。
答案 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'),'-',''))