(Difference between revisions)
 
															Данная статья описывает набор доступных типов фильтров в системе для фильтрации данных в списках. В абсолютном большинстве случаев их использование сводится к прописыванию типа фильтра, в конфигурационном файле префикса, в параметре filter_block в ключе Grids индивидуально для каждого поля. Исключением является фильтр grid_picker_filter, который применяется совместно с блоком inp_edit_picker и классом EditPickerHelper.
| Изображение
 | Название блока
 | Описание
 | 
| 
 |  grid_empty_filter
 |  Данный фильтр используется для тех полей, фильтрация данных в которых не предусмотрена. Например, когда содержание поля формируется в шаблоне, в процессе распечатки списка.
 | 
| 
 |  grid_like_filter
 | 
 Использование: Поиск в текстовых полях. 
Возможные данные: Произвольный текст с содержанием специальных символов. 
Что фильтрует: Позволяет найти записи, которые содержат либо любое из слов, либо всю фразу целиком. 
Формат: Запрос может быть составлен в следующих вариантах:
 
-  Строка, заключённая в двойные кавычки (пример: "Вася пупкин") - ищет всю подстроку целиком.
 -  Строка, не заключённая в двойные кавычки (пример: Вася пупкин) - ищет любое из слов, заданных в строке.
 -  Строка в любом из выше перечисленном вариантах с содержанием специальных символов, обозначающих: 
? - любой один символ, % - любое количество любых символов.
 -  Символ "+" перед словом или словосочетанием, заключённым в двойные кавычки, указывает на обязательное присутствие данного слова или словосочетания в результатах.
 -  Символ "-" перед словом или словосочетанием, заключённым в двойные кавычки, указывает на обязательное отсутствие данного слова или словосочетания в результатах.
  
Форматтер: Отсутствует. 
Ограничения: Не возможно задать поиск по точному совпадению, т.к. ищет заданную комбинацию в любой части строки.
 
 | 
   Фильтр списка типа LIKE с подсказкой  
 |  grid_like_combo_filter
 | 
 Использование: Поиск в текстовых полях c предложением вариантов из существующих значений при наборе критерия поиска. 
Возможные данные: Произвольный текст с содержанием специальных символов. 
Что фильтрует: Позволяет найти записи, которые содержат либо любое из слов, либо всю фразу целиком. 
Формат: Запрос может быть составлен в следующих вариантах:
 
-  Строка, заключённая в двойные кавычки (пример: "Вася пупкин") - ищет всю подстроку целиком
 -  Строка, не заключённая в двойные кавычки (пример: Вася пупкин) - ищет любое из слов, заданных в строке
 
 -  Строка в любом из выше перечисленном вариантах с содержанием специальных символов, обозначающих: 
? - любой один символ, % - любое количество любых символов
 -  Символ "+" перед словом или словосочетанием, заключённым в двойные кавычки, указывает на обязательное присутствие данного слова или словосочетания в результатах.
 -  Символ "-" перед словом или словосочетанием, заключённым в двойные кавычки, указывает на обязательное отсутствие данного слова или словосочетания в результатах.
  
Форматтер: Отсутствует. 
Ограничения: Не возможно задать поиск по точному совпадению, т.к. ищет заданную комбинацию в любой части строки.
Модифицирование поведения: При подсказывании значений вызывается событие OnSuggestValues в котором происходит выборка значений для подсказки. Переопределив данное событие в обработчике события можно реализовать собственную логику подсказывания значений.
 
 | 
| 
 |  grid_options_filter
 | 
 Использование: Поиск в полях с набором заданных значений. 
Возможные данные: Набор заданных значений. 
Что фильтрует: Позволяет найти записи с полем, установленным в конкретное значение из набора возможных значений. 
Формат: Выпадающий список с набором заданных значений. 
Форматтер: kOptionsFormatter - отвечает за формирование списка опций в выпадающем списке фильтра. 
Ограничения: Только полное совпадение и только по одному значению.
 
 | 
   Фильтр списка из опций типа Picker  
 |  grid_picker_filter
 | 
 Использование: Поиск в полях для заполнения которых использовались блоки inp_edit_picker или inp_edit_checkboxes, а также полей, данные в которых храняться в виде "|ID1|ID2|...|IDN|". 
Возможные данные: Набор заданных значений. 
Что фильтрует: Позволяет найти записи, содержащие конкретное значение в установленном наборе значений. 
Формат: Выпадающий список с набором заданных значений. 
Форматтер: kOptionsFormatter - отвечает за формирование списка опций в выпадающем списке фильтра. 
Ограничения: Нельзя найти записи, которые содержат только указанную опцию, т.е. поиск по полному совпадению не возможен.
 
 | 
   Фильтр списка по точному совпадению  
 |  grid_equals_filter
 | 
 Использование: Поиск в полях с текстом либо числами. 
Возможные данные: Текст либо числа. 
Что фильтрует: Позволяет найти записи у которых фильтруемое поле равно заданной строке или числу. 
Формат: Текстовая строка либо число. 
Форматтер: Отсутствует. 
Ограничения: Только полное совпадение по конкретному значению.
 
 | 
   Фильтр списка по целым числам с фильтрацией по интервалу  
 |  grid_range_filter
 | 
 Использование: Фильтрация полей с целыми числами. 
Возможные данные: Целые числа. 
Что фильтрует: Позволяет найти записи, где фильтруемое поле равно:
 
-  Если введено значение только в одно из полей, то ищется точное совпадение заданному значению.
 -  Если введены значения в оба поля, то ищутся значения, попадающие в заданный интервал значений.
  
Формат: Одно или два целых числа. 
Форматтер: Отсутствует. 
Ограничения: Поиск только целых чисел.
 
 | 
   Фильтр списка по дробным числам с фильтрацией по интервалу  
 |  grid_float_range_filter
 | 
 Использование: Фильтрация полей с дробными числами. 
Возможные данные: Дробные числа. 
Что фильтрует: Позволяет найти записи, где фильтруемое поле равно:
 
-  Если введено значение только в одно из полей, то ищется точное совпадение заданному значению.
 -  Если введены значения в оба поля, то ищутся значения, попадающие в заданный интервал значений.
  
Формат: Одно или два дробных числа. 
Форматтер: Отсутствует. 
Ограничения: Поиск только в полях с дробными числами.
 
 | 
   Фильтр списка по датам с фильтрацией по интервалу  
 |  grid_date_range_filter
 | 
 Использование: Поиск в полях с датами. 
Возможные данные: Дата, время или дата с временем. 
Что фильтрует: Позволяет найти записи, где фильтруемое поле равно:
 
-  Если введена дата только в одно из полей, то ищется точное совпадение дате.
 -  Если введены даты в оба поля, то ищутся даты, попадающие в заданный интервал.
  
Формат: Системный (опция input_format из описания поля) либо переопределён пользователем (параметр "calendar_format" указанный при добавлении поля в список). Возможны только те форматы, которые обрабатывает форматтер kDateFormatter. 
Форматтер: kDateFormatter - отвечает за преобразование даты из внутреннего формата хранения в заданный формат либо формат по умолчанию. 
Ограничения: Поиск только по полям, содержащими дату в формате timestamp.
 
 | 
'Grids' => Array (
	'Default' => Array (
		'Icons' => Array ('default' => 'icon16_sample.gif'),
		'Fields' => Array (
			'ExampleId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'),
			'ExampleName' => Array ('title' => 'la_col_ExampleName', 'filter_block' => 'grid_like_filter'),
			'ExampleAmount' => Array ('title' => 'la_col_ExampleAmount', 'filter_block' => 'grid_range_filter'),
			'ExampleSum' => Array ('title' => 'la_col_ExampleSum', 'filter_block' => 'grid_float_range_filter'),
			'ExampleDate' => Array ('title' => 'la_col_ExampleDate', 'filter_block' => 'grid_date_range_filter'),
			'ExampleEditPicker' => Array ('title' => 'la_col_ExampleEditPicker', 'data_block' => 'grid_picker_td', 'filter_block' => 'grid_options_filter'),
		),
	),
),