Данная статья описывает набор доступных типов фильтров в системе для фильтрации данных в списках. В абсолютном большинстве случаев их использование сводится к прописыванию типа фильтра, в конфигурационном файле префикса, в параметре 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'),
),
),
),