Функция потолка в запросе SharePoint CAML

Я пытаюсь создать настраиваемое представление для списка sharepoint, подобное тому, которое описано здесь:

http://msdn.microsoft.com/en-us/library/ms916812.aspx

У меня есть столбец, который представляет собой числовое поле со значениями от 0 до 100.

Мне нужно создать стиль представления, который будет отображать изображение в столбце на основе значения столбца вместо отображения значения.

Если значение находится в диапазоне от 0 до 25, мне нужно отобразить изображение 25.gif Если значение находится в диапазоне от 25 до 50, мне нужно отобразить изображение 50.gif ..... и так далее.

Используемый здесь расчет - это функция ПОТОЛОК, CEILNG (NumberColumn, 25).

Проблема в том, что мне нужно указать это в CAML, в файле VWSTYLES.XML.

Как я могу указать функцию Ceilnig в CAML?


person ashwnacharya    schedule 19.03.2009    source источник


Ответы (2)


Некоторые другие варианты могут быть:

Поскольку VWSTYLES.XML - это просто очень неудобный способ визуализации html, вы можете закодировать некоторый javascript в свой VWSTYLES.XML для визуализации тега изображения с правильным источником.

В качестве альтернативы разработайте элемент управления ascx и получите VWSTYLES.XML для визуализации элемента управления вместо HTML. Пока вы можете правильно зарегистрировать элемент управления на странице.

person Nat    schedule 19.03.2009
comment
привет ... Не могли бы вы подробнее рассказать, как это сделать с помощью javascript? В частности, как выбрать правильный источник изображения? Я предполагаю, что будет функция javascript, которая возвращает источник изображения на основе значения столбца. Но как передать значение столбца функции? - person ashwnacharya; 20.03.2009
comment
Javascript будет так сильно зависеть от того, на что похож ваш html, я бы даже не смог направить вас на верный путь. Посмотрите на VWSTYLES.XML и посмотрите, как отображается Javascript. Если это не пугает вас и заставляет поступить иначе, возможно, с вами все в порядке. - person Nat; 21.03.2009

CEILING используется для округления десятичных значений. Поскольку у вас всего несколько изображений, я бы просто использовал вложенные IF функции:

=IF([NumberColumn]>76, "100.gif", IF([NumberColumn]>51, "75.gif",
 IF([NumberColumn]>26,  "50.gif", "25.gif")))

Вы также можете использовать функцию MOD для преобразования 0-24 в 0 , 25-49 к 1 и т. Д. И рассчитайте свое изображение оттуда.

person dahlbyk    schedule 19.03.2009
comment
Привет, спасибо за ответ. По указанной вами ссылке ссылки на формулы для вычисляемых столбцов. Мне нужно изменить файл VWSTYLES.xml. Это работает в CAML? - person ashwnacharya; 19.03.2009
comment
Не могли бы вы создать вычисляемое поле в своем списке, а затем ссылаться на него из CAML? - person dahlbyk; 19.03.2009
comment
Нет, я не должен использовать вычисляемое поле. Мне нужно сделать это из самого файла VWSTYLES.XML. - person ashwnacharya; 19.03.2009
comment
Я не верю, что есть способ делать расчеты внутри самого CAML. Вы можете использовать элемент Switch с корпусом 101, но это будет не очень весело. Не уверен, что есть способ лучше. - person dahlbyk; 19.03.2009
comment
Мне он нужен и для работы с десятичными знаками ... Не хватает переключателей .. :( - person ashwnacharya; 19.03.2009