Настройки фильтрации¶
Фильтры используются в виджетах, отчетах, планировщике, иерархии задач.
ℹ️ Настройки фильтрации работают только для следующих типов виджетов: Smart Html, График, Таблица, Блок поиска задач. Для остальных типов вкладка неактивна
ℹ️ Инструмент фильтрации только формирует условия отбора данных. Чтобы отбор работал, разработчик должен обеспечить прием и обработку параметров фильтра в хранимой процедуре, которая является источником данных
Для настройки фильтров в интерфейсе администратора перейдите во вкладку Открыть настройки фильтрации. Вы можете выбрать один из преднастроенных в системе фильтров, при необходимости отредактировать его или создать новый фильтр.
Для создания нового фильтра нажмите кнопку Создать и в открывшемся окне введите его название. После создания фильтра выберите его из списка доступных.
Если настройка Сохранять значения фильтра активна, то выбранное значение фильтра будет сохраняться при повторном открытии объекта. Если настройка не активна, то выбранный фильтр будет сброшен при повторном открытии.
Фильтр может содержать одно или несколько условий отбора. Один и тот же фильтр может применяться к различным объектам системы: виджетам, отчетам, иерархиям, данным планировщика. Поэтому имеет смысл давать фильтрам значимые названия, которые облегчат их дальнейшее использование.
Для настройки параметров фильтра нажмите кнопку Редактировать справа от названия.
При редактировании фильтра открывается окно настройки параметра фильтра.
Для создания нового параметра нажмите кнопку Добавить параметр. Набор дополнительных параметров меняется в зависимости от типа параметра.
Название
Описание
Название
Название параметра для отображения в фильтре в пользовательском интерфейсе
Параметр
Название параметра для передачи в объект, с которым связан фильтр
Тип фильтра
Возможные значения:
-
Строка
-
Число
-
Дата
-
Период
-
Выпадающий список
-
Категория (выбор категорий\разделов)
-
Пользователь (выбор пользователей)
-
Группа (выбор групп)
-
Оргструктура (выбор элемента оргструктуры)
-
Скрытый (скрытый фильтр, задаваемый смарт-выражением)
Обязательное значение¶
Если настройка активна, то без указания значения отчет не будет формироваться
Только для чтения
Если настройка активна, то параметр отображается, но недоступен для изменения
Дополнительные параметры (набор дополнительных параметров меняется в зависимости от типа параметра)
Свой \ Смарт-выражение
Переключатель отображается только для параметров типа "Выпадающий список". В значении "Свой" список значений для выбора формируется вручную, в значении "Смарт-выражение" — возвращается смарт-выражением. Подробнее см. здесь
Отложенная загрузка
Отображается только для параметров типа "Выпадающий список" со списком значений из смарт-выражения. Рекомендуется включать для списков с несколькими десятками и сотнями значений. Если параметр включен, то список будет подгружаться асинхронно, не влияя на загрузку содержимого объекта
Отображается только для параметров типа "Выпадающий список". Если настройка активна, то параметр может возвращать сразу несколько выбранных значений.
Для параметров типа "Пользователь", "Группа", "Оргструктура", "Категория" режим мультивыбора включен по умолчанию и не отображается для выбора
Значение по умолчанию
Значение, которое передается при открытии в портальный блок или отчет, с которым связан фильтр
Для сохранения заданных параметров отбора нажмите кнопку Добавить.
Для перехода к редактированию уже существующего параметра нажмите на соответствующую строку таблицы.
Для удаления параметра щелкните правой кнопкой мыши по строке таблицы и выберите пункт Удалить в контекстном меню.
При нажатии кнопки Копировать параметр создается дубликат выбранного параметра внутри настроек активного фильтра, копия добавляется в конец таблицы.
Особенности настройки разных типов фильтров
Период
Если настраивается отбор по периоду, вы можете выбрать один из преднастроенных периодов, таких как текущая неделя, текущий месяц, последние три месяца, текущий год и т.п., или указать произвольный период.
Начальное и конечное значение задается в календаре, который открывается по нажатию на кнопку справа от поля.
Кроме того, вы можете вычислять период с помощью смарт-выражения. В общем случае смарт-выражение должно возвращать список из двух дат: { ДатаОт, ДатаДо }.
Если начало периода не ограничено, то вместо первой даты должно стоять значение null: { null, ДатаДо }. Если конец периода не ограничен, то смарт-выражение может возвращать список из одной даты { ДатаОт } или просто одну дату, без списка.
Если смарт-выражение задано как запрос TSQL, то запрос должен возвращать одну или две строки, и первая колонка должна быть датой. Значение первой колонки в первой строке интерпретируется как начало периода, а во второй строке (если она есть) — как конец периода.
Дата¶
Значение по умолчанию для параметра Дата должно быть отформатировано.
Выпадающий список¶
Если настраивается отбор с помощью выпадающего списка, вы можете сформировать свой выпадающий список, перечислив все его элементы.
Нажмите на кнопку Добавить элемент и укажите название и значение элемента. Удаление элемента осуществляется нажатием на крестик справа от поля.
Формирование выпадающего списка может быть выполнено так же с помощью смарт-выражения.
Смарт-выражение должно возвращать выборку элементов. В этом случае поле Свойство значения должно идентифицировать такой элемент (например, возвращать его ID), а поле Свойство названия должно содержать описание элемента так, как его увидит пользователь.
Значение по умолчанию для параметра отбора может быть задано как фиксированное или вычисляться с помощью смарта.
Если отмечен параметр Мультивыбор, то пользователь сможет выбрать несколько значений из списка. Для больших списков (сотни записей) рекомендуется включать параметр Отложенная загрузка — тогда загрузка списка не будет замедлять работу с системой.
Параметр типа Выпадающий список, который формируется с помощью смарт-выражения, может зависеть от значений, выбранных в других параметрах. Например, если один параметр задает категорию, то в другом параметре можно выбрать только статусы, которые есть в данной категории. Или если один параметр задает пользователя, а другой — задачи, где этот пользователь является заказчиком. Такие параметры называют зависимыми.
ℹ️ В настоящее время зависимым может быть только параметр типа "Выпадающий список", значения которого формируются смарт-фильтром. Для зависимого параметра нужно включить опции отложенная загрузка и мультивыбор
Рассмотрим фильтр с тремя параметрами. Пусть второй параметр зависит от значения, выбранного в первом параметре.
В опции Зависит от параметра должен быть выбран один или несколько параметров из состава текущего фильтра, от которых будет зависеть работа и отображение выпадающего списка.
Значения родительских параметров передаются в смарт-выражение в параметре @eventParam2 в виде JSON следующей структуры:
select [value] as id from openjson (@eventParam2, '$."{ID}"') where key = 'value'
В качестве {ID} указывается ID родительского параметра.
JSON так же может быть задан следующим образом:
select json_value (@eventParam2, '$."{ID}".value') as id
В качестве {ID} указывается ID родительского параметра.
Ключ родителя (для статического набора)
Отображается только для параметра типа "Выпадающий список" — статического набора (Свой) с заданной зависимостью. Каскадная зависимость для статического набора настраивается через поле Ключ родителя у каждого элемента списка. Укажите в этом поле значение из родительского параметра, при котором данный элемент должен быть доступен для выбора. Например, если родительский параметр выбирает раздел, а текущий — категорию, то в поле «Ключ родителя» у каждой категории укажите ID соответствующего раздела.
Колонка родителя (для смарт-набора)
Отображается только для параметра типа "Выпадающий список" — смарт-набора (Смарт-выражение). Вместо ключа у каждого элемента задаётся Колонка родителя — имя столбца в результате смарт-выражения, который содержит ключ привязки к родительскому значению. Например, если смарт-выражение возвращает таблицу с полями ID, Name, CategoryID, то в поле «Колонка родителя» нужно указать CategoryID. Система вычитывает этот столбец из результата и передаёт его в интерфейс для построения каскадной связи.
Колонка доступности¶
Отображается только для параметра типа "Выпадающий список" — смарт-набора с заданными зависимостями (в поле «Зависит от параметров» выбран хотя бы один параметр). Укажите имя столбца в результате смарт-выражения, который содержит признак доступности элемента. Система вычитывает этот столбец из результата и передаёт его в интерфейс, позволяя отображать часть элементов как недоступные в зависимости от контекста или выбора в родительском параметре.
Пользователь, Группа, Оргструктура¶
Если фильтры типа Пользователь, Группа или Оргструктура не выбраны, то в параметр передается пустая строка.
Множественный выбор¶
Если используется выпадающий список со множественным выбором или фильтры типа Пользователь, Группа, Оргструкутра, Категория, то в параметр передается строка, в которой через запятую перечислены ID выбранных элементов. Если в фильтре Категория выбран раздел, то возвращаются ID всех входящих в него категорий.
Скрытый отбор¶
Если необходимо дополнительно отфильтровать выводимые в блоке данные по значению определенного параметра, используйте тип фильтра Скрытый. В нем вы можете задать условие с помощью фиксированного значения или с помощью смарт-выражения.
Использование фильтров в хранимых процедурах¶
Параметры из фильтров могут обрабатываться в хранимых процедурах, которые являются источниками данных для портальных блоков, отчетов, иерархий задач, планировщиков.
Параметры передаются в хранимую процедуру в формате XML. Для периода передаются два значения From и To, для остальных параметров передается одно значение Value.
Пример использования параметров фильтра в тексте хранимой процедуры:
...
declare @StartDate date = (select cast(value as date) from dbo.fn_rep_params(@XmlParam) where name = 'StartDate')
declare @Filial date = (select cast(value as date) from dbo.fn_rep_params(@XmlParam) where name = 'Filial')
...