Опубликован SPListViewFilter 1.2

SPListViewFilter 1.6
SPListViewFilter 1.5
SPListViewFilter 1.2

Вчера я опубликовал очередную версию SPListViewFilter. Предыдущие версии я не описывал, потому сегодня я опишу на что способен SPListViewFilter и как он работает.

SPListViewFilter 1.2

What is SPListViewFilter

SPListViewFilter - это веб-часть, предназначенная для фильтрации и поиска данных в списке/библиотеке документов SharePoint 2010.

SPListViewFilter учитывает типы полей и поддерживает следующие типы полей:

  • Однострочный текст
  • Многострочный текст
  • Выбор
  • Число
  • Дата
  • Денежный
  • Подстановка
  • Да/Нет
  • Пользователь или группа
  • Гиперссылка
  • Управляемый метаданные

И вот типы контролов, отображаемые в интерфейсе:

  • Текстовое поле - содержится ли указанное значение (Contains);
  • Текстовое поле с параметрами - выбор типа фильтрации ("равно", "не равно", "содержит", "начинается с"):
  • Дата:
  • Интервал дат
  • Выпадающий список
  • Выпадающий список со множественным выбором
  • Пользователь или группа;
  • Метаданные
  • Метаданные со множественным выбором;

Соотношение между типом поля и возможными элементами интерфейса:

Как работает SPListViewFilter

SPListViewFilter подключается к веб-части представления списка и модифицирует CAML-запрос, используемый для получения данных, исходя из заданных значений фильтра. При этом уже указанные параметры выбора данных (фильтр, группировка данных) не изменяются.

Настройка SPListViewFilter

Для работы SPListViewFilter надо сделать две вещи: подключить его к веб-части представления списка и настроить используемые поля для фильтрации.

Пример работы

В моем примере при указании вот таких значений фильтра:

Исходный CAML-запрос

  1. <View>
  2.   <ViewFields>
  3.     <!-- FieldRefs -->
  4.   </ViewFields>
  5.   <Query>
  6.     <GroupBy Collapse="TRUE" GroupLimit="30">
  7.       <FieldRef Name="Lookup" />
  8.     </GroupBy>
  9.     <OrderBy>
  10.       <FieldRef Name="Title" />
  11.       <FieldRef Name="Tags" />
  12.     </OrderBy>
  13.     <Where>
  14.       <Neq>
  15.         <FieldRef Name="Choice" />
  16.         <Value Type="Text">PHP</Value>
  17.       </Neq>
  18.     </Where>
  19.   </Query>
  20. </View>

Был изменен SPListViewFilter'ом и в итоге стал вот таким:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <View>
  3.   <ViewFields>
  4.     <!-- FieldRefs -->
  5.   </ViewFields>
  6.   <Query>
  7.     <GroupBy Collapse="TRUE" GroupLimit="30">
  8.       <FieldRef Name="Lookup" />
  9.     </GroupBy>
  10.     <OrderBy>
  11.       <FieldRef Name="Title" />
  12.       <FieldRef Name="Tags" />
  13.     </OrderBy>
  14.     <Where>
  15.       <And>
  16.         <And>
  17.           <And>
  18.             <And>
  19.               <Neq>
  20.                 <FieldRef Name="Choice" />
  21.                 <Value Type="Text">PHP</Value>
  22.               </Neq>
  23.               <Eq>
  24.                 <FieldRef Name="Boolean" LookupId="FALSE" />
  25.                 <Value Type="Boolean">1</Value>
  26.               </Eq>
  27.             </And>
  28.             <And>
  29.               <Eq>
  30.                 <FieldRef Name="Choice" LookupId="FALSE" />
  31.                 <Value Type="Text">SQL Server 2005</Value>
  32.               </Eq>
  33.               <Or>
  34.                 <Or>
  35.                   <Eq>
  36.                     <FieldRef Name="ChoiceMulti" LookupId="FALSE" />
  37.                     <Value Type="Text">ASP VBScript</Value>
  38.                   </Eq>
  39.                   <Eq>
  40.                     <FieldRef Name="ChoiceMulti" LookupId="FALSE" />
  41.                     <Value Type="Text">ASP.NET 1.1</Value>
  42.                   </Eq>
  43.                 </Or>
  44.                 <Eq>
  45.                   <FieldRef Name="ChoiceMulti" LookupId="FALSE" />
  46.                   <Value Type="Text">ASP.NET 3.0</Value>
  47.                 </Eq>
  48.               </Or>
  49.             </And>
  50.           </And>
  51.           <And>
  52.             <And>
  53.               <Geq>
  54.                 <FieldRef Name="Date" LookupId="FALSE" />
  55.                 <Value Type="DateTime">2012-05-09T00:00:00Z</Value>
  56.               </Geq>
  57.               <Leq>
  58.                 <FieldRef Name="Date" LookupId="FALSE" />
  59.                 <Value Type="DateTime">2012-05-24T00:00:00Z</Value>
  60.               </Leq>
  61.             </And>
  62.             <And>
  63.               <Or>
  64.                 <Or>
  65.                   <Eq>
  66.                     <FieldRef Name="MultiTags" LookupId="FALSE" />
  67.                     <Value Type="TaxonomyFieldMultiValue">SharePoint 2003</Value>
  68.                   </Eq>
  69.                   <Eq>
  70.                     <FieldRef Name="MultiTags" LookupId="FALSE" />
  71.                     <Value Type="TaxonomyFieldMultiValue">SharePoint 2010</Value>
  72.                   </Eq>
  73.                 </Or>
  74.                 <Or>
  75.                   <Eq>
  76.                     <FieldRef Name="MultiTags" LookupId="FALSE" />
  77.                     <Value Type="TaxonomyFieldMultiValue">SharePoint 2007</Value>
  78.                   </Eq>
  79.                   <Eq>
  80.                     <FieldRef Name="MultiTags" LookupId="FALSE" />
  81.                     <Value Type="TaxonomyFieldMultiValue">SharePoint Foundation</Value>
  82.                   </Eq>
  83.                 </Or>
  84.               </Or>
  85.               <Eq>
  86.                 <FieldRef Name="Tags" LookupId="FALSE" />
  87.                 <Value Type="TaxonomyField">SharePoint 2003</Value>
  88.               </Eq>
  89.             </And>
  90.           </And>
  91.         </And>
  92.         <And>
  93.           <Eq>
  94.             <FieldRef Name="UserMulti" LookupId="TRUE" />
  95.             <Value Type="User">1</Value>
  96.           </Eq>
  97.           <Eq>
  98.             <FieldRef Name="_UIVersionString" LookupId="FALSE" />
  99.             <Value Type="Text">1.0</Value>
  100.           </Eq>
  101.         </And>
  102.       </And>
  103.     </Where>
  104.   </Query>
  105. </View>

Примерно вот так.

Виталий Жуков

Виталий Жуков

Техлид, Архитектор, Разработчик, Microsoft MVP. Более 20 лет опыта в области системной интеграции и разработки программного обеспечения. Специализируюсь на проектировании и внедрении масштабируемых высокопроизводительных программных решений в различных отраслях.

Смотрите также

Global Microsoft 365 Developer Bootcamp 2020

Global Microsoft 365 Developer Bootcamp 2020

Я MVP в категории Office Development

Я MVP в категории Office Development

Global Azure Bootcamp 2019

Global Azure Bootcamp 2019

Первая встреча Office 365 Community Moscow

Первая встреча Office 365 Community Moscow

Global Office 365 Developer Bootcamp

Global Office 365 Developer Bootcamp

SharePoint List Filter 3.03

SharePoint List Filter 3.03

Новый List Filter для SharePoint 2013

Новый List Filter для SharePoint 2013

SharePoint List Filter 2.2

SharePoint List Filter 2.2

Новая версия фильтра для SharePoint 2013

Новая версия фильтра для SharePoint 2013

SharePoint 2013 List View Filter 2.0 Server

SharePoint 2013 List View Filter 2.0 Server

SharePoint 2010 List View Filter 1.9 и 2.0

SharePoint 2010 List View Filter 1.9 и 2.0

SPListViewFilter 1.7

SPListViewFilter 1.7

SPListViewFilter 1.6

SPListViewFilter 1.6

SPListViewFilter 1.5

SPListViewFilter 1.5