вторник, 10 июля 2012 г.

Выделение строки списка цветом, условие по полю с датой, XSLT

Есть список Задачи в нем нужно подсвечивать пророщенные задачи красным.
В SharePoint Designer можно отредактировать представление списка, добавить условное форматирование для строки. 
image
Щелкаем по элементу внутри таблицы, далее условное форматирование –> формат строки делаем условие и задаем стиль.
image
Казалось бы все, но это не работает для дат в русском формате(для других типов полей все работает).
Исправим.
Найдем в представление кода

<xsl:attribute name="style">
   <xsl:if test="ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($thisNode/@DueDate))) &lt; ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($Today)))" ddwrt:cf_explicit="1">background-color: #FF3300;</xsl:if>
   <xsl:if test="$Collapse">display:none;</xsl:if>
</xsl:attribute>
 Заменим на условие на 
number(concat(substring(string(@DueDate),7,4), substring(string(@DueDate),4,2), substring-before(string(@DueDate),'.'))) &lt; translate(substring-before(ddwrt:TodayIso(),'T'),'­-','')
Получим.
<xsl:attribute name="style">
 <xsl:if test="number(concat(substring(string(@DueDate),7,4), substring(string(@DueDate),4,2), substring-before(string(@DueDate),'.'))) &lt; translate(substring-before(ddwrt:TodayIso(),'T'),'­-','')" ddwrt:cf_explicit="1">background-color: #FFC8C8;</xsl:if>
 <xsl:if test="$Collapse">display:none;</xsl:if>
</xsl:attribute>
image