Мультик был такой в интернете (давно и не очень популярный). Про композитора Ушами. К сожалению играть на нервах ушами я не умею, зато ушами отлично получается делать финты.
Все начиналось с простой задачи. Сделать индикатор в виде светофора. Это должно быть после списка в котором отображается картинка (красная, зеленая или желтая). Если документ просрочен, то отображается красная картинка, если до срока осталось 3 дня -то желтая, иначе зеленая.
Сначала решили сделать в списке Calculated поле. Сделать формулу труда не составило. Все условия есть, функций для работы с числами и датами много. Только вот одно но. Не рекомендуется использовать Today. А следовательно в реальном времени (без пересохрания элемента списка) сменить картинку индикатора нам не удастся при наступлении следующих суток картинка останется прежняя не зависимо от дат.
Бросила я затею с Calculated полем и решила сделать на основе Computed. В нем можно использовать Today. Поле перерисовыввается без пересохранения элемента списка, то есть в реальном времени. Только вот одно но (да, опять и еще одно). Нету у него нормальной работы с условиями. Можно проверять только на "=", а вот например на ">=" или "<=" нельзя.
И тут пришла идея поместить в тэг <HTML><![CDATA[ ]]></HTML> самый настоящий javascript, который бы проводил все рассчеты с датами и выводил бы картинку.
Когда это первый раз заработало описание поля в schema.xml выглядело следующим образом:
<Field ID="{FC9947C8-F094-45ff-854D-A6F7E9E5CF4C}"
Name="Indicator"
StaticName="Indicator"
Type="Computed"
ReadOnly = "TRUE"
DisplayName="$Resources:dplists, dpincdocfieldindicator;"
Required="TRUE" Filterable="FALSE">
<FieldRefs>
<FieldRef Name="ID"/>
<FieldRef Name="EndDate"/>
</FieldRefs>
<DisplayPattern>
<HTML><![CDATA[<img src="http://blogs.technet.com/_layouts/images/kpidefault-2.gif" name="indicator]]></HTML>
<Column Name="ID" />
<HTML><![CDATA[" id="indicator]]></HTML>
<Column Name="ID" />
<HTML><![CDATA[" border="0" />]]></HTML>
<HTML><![CDATA[<script type='text/javascript'>]]></HTML>
<HTML><![CDATA[var myImg = document.getElementById("indicator"+]]></HTML>
<Column Name="ID" />
<HTML><![CDATA[); ]]></HTML>
<HTML><![CDATA[var today = new Date(); ]]></HTML>
<HTML><![CDATA[var threedaysafter= new Date( (new Date()).setDate(today.getDate() + 3) ); ]]></HTML>
<HTML><![CDATA[var enddate_arr = "]]></HTML>
<Column Name="EndDate" />
<HTML><![CDATA[".split(".");]]></HTML>
<HTML><![CDATA[var enddate = new Date(Date.parse(enddate_arr[2]+"/"+enddate_arr[1]+"/"+enddate_arr[0])); ]]></HTML>
<HTML><![CDATA[enddate = new Date(enddate.setTime(enddate.getTime()+86399990)); ]]></HTML>
<HTML><![CDATA[if(enddate >= today && enddate <= threedaysafter ) { ]]></HTML>
<HTML><![CDATA[myImg.src = "/_layouts/images/kpidefault-1.gif"; } else ]]></HTML>
<HTML><![CDATA[if(enddate > today ) {]]></HTML>
<HTML><![CDATA[myImg.src = "/_layouts/images/kpidefault-0.gif"; }]]></HTML>
<HTML><![CDATA[</script>]]></HTML>
</DisplayPattern>
</Field>
В результате получилась вот такая вот штуковина:

Ссылки:
Calculated Field Formulas: http://msdn.microsoft.com/en-us/library/bb862071.aspx
Schema.xml: http://msdn.microsoft.com/en-us/library/ms459356.aspx
Field Element: http://msdn.microsoft.com/en-us/library/ms437580.aspx