Параметр типа "Фильтр" в структуре привязки

Параметр типа "Фильтр" может использоваться в привязках типа "Список", "Дерево", "BAND", "Фильтр". С его помощью можно отфильтровать список объектов этих привязок так, чтобы в отчет выводились только нужные объекты. В привязках типа "Секция" фильтр используется как условие показа секции.

Фильтром в структуре привязки служит фильтр, который рекомендуется настроить заранее, до настройки привязки. Фильтры создаются в справочнике "Хранимые фильтры" (Главное меню → Отчеты → Хранимые фильтры). Для фильтра привязки можно использовать любой доступный вид фильтра (см. Хранимые фильтры).

Условия фильтра могут быть статическими или динамическими. Поле "Значение" статического условия предопределено заранее при создании фильтра и не меняется во время формирования отчета. В динамическое условие в поле "Значение" можно передавать значения параметров объекта, от которого вызван отчет. Таким образом, в зависимости от выбора объекта в отчете будет получен тот или иной результат фильтра. В одном фильтре можно использовать одновременно статические и динамические условия.

Внимание!

В случае, если требуется использовать в пользовательских отчетах фильтры из поставляемых с Business Studio отчетов (такая ситуация возникает, например, если пользовательский отчет создавался копированием отчета, поставляемого с Business Studio) рекомендуется делать копии этих фильтров, перемещать эти копии за пределы папки "Фильтры отчетов\СТУ" (например, в папку "Пользовательские фильтры"), назначить для соответствующих привязок отчета эти копии вместо поставляемых с Business Studio фильтров и работать в дальнейшем с копиями фильтров. Разработчик Business Studio оставляет за собой право перезаписывать фильтры при обновлении программы.

Выбор фильтра привязки

Выбрать фильтр привязки можно следующими способами:

  1. Сначала создать фильтр, а затем на странице настройки сложной привязки с помощью кнопки Настроить группы Дополнительные настройки перейти на страницу настройки фильтра и нажатием на кнопку выбрать этот фильтр. При этом должны быть соблюдены условия:
    • если фильтр будет работать в привязке типов "Список", "Дерево" или "BAND", то он должен создаваться для того класса, к которому принадлежит параметр объекта привязки;
    • Если фильтр будет работать в привязке типа "Фильтр", то он может создаваться для любого класса;
    • Если фильтр будет работать в корневой привязке типа "Секция", то он может создаваться для любого класса. Если в некорневой - то он должен настраиваться для класса вышележащей привязки.
  2. Создать фильтр для уже готовой привязки, с помощью пункта Создать фильтр по классу параметра контекстного меню привязки в дереве привязок. В этом случае фильтр будет создан по классу того параметра, от которого было вызвано контекстное меню. Созданный фильтр автоматически становится фильтром привязки.
Внимание!

В фильтре должны быть заданны условия фильтра (См. подробнее про настройку фильтра в главе Окно фильтра). Для статических условий должно быть задано поле "Значение". Для динамических условий поле "Значение" можно оставить пустым.

Статическое условие

Рассмотрим работу статического условия на примере отчета по физическим лицам, создание которого описано в статье Пример. Фильтр по справочнику "Физические лица". В этом отчете у привязки "Список физических лиц" есть четыре дополнительных привязки. Последняя привязка "Все контакты" обеспечивает вывод в отчете список всех контактов физического лица. Данная привязка имеет тип "Объект". Этой же цели можно добиться, выведя в отчет с помощью привязки типа "Список" список "Контакты" физического лица. На этот список можно будет наложить условие, например, должны выводиться только рабочие телефоны.

Откройте справочник фильтров (Главное меню → Отчеты → Хранимые фильтры). Нажмите на кнопку панели инструментов Окна справочника. Выберите класс "Контакты физлиц" (Элементы списков → БизнесМодель.КонтактыФизЛиц). В окне названия нового фильтра введите, например, "Фильтр списка контактов". В Окне фильтра на вкладке Условия для параметра "Тип контакта" выберите значение "Рабочий телефон" (Рис. 1). Сохраните фильтр. В параметре "Вид результата" выберите значение "Форма справочника". Сохраните фильтр. Подробнее о создании фильтров описано в главе Хранимые фильтры.

Рисунок 1. Задание условия фильтра

В Мастере отчетов на странице настройки привязки "Список физических лиц" установите курсор на привязку "Все контакты" и удалите её при помощи кнопки Удалить или пункт меню Удалить выделенные строки в контекстном меню строки с привязкой. Затем нажмите на кнопку Добавить, выберите тип привязки "Список", выберите параметр "Контакты".

Далее на странице настройки сложной привязки (Рис. 2) добавьте две привязки:

  • "Тип контакта": тип привязки - "Объект", параметр - "ТипКонтакта";
  • "Контакт": тип привязки - "Объект", параметр - "Контакт".
Рисунок 2. Страница настройки сложной привязки со статическим условием

Добавить эти привязки можно либо нажав на кнопку Добавить, либо нажав на кнопку в дереве Параметры объекта, либо перетащив мышью нужный параметр.

После этого нажмите на кнопку Настроить блока дополнительных настроек для перехода на страницу настройки фильтра и там по кнопке выберите ранее созданный фильтр "Фильтр списка контактов".

Колонки вложенного списка необходимо учесть в шаблоне отчета. Если редактирование привязки запускалось нажатием на кнопку панели инструментов Мастера отчетов, то перечень колонок будет автоматически изменен в соответствии с изменениями, произведенными в привязке. Если же редактирование привязки было запущено из дерева привязок, эти изменения нужно произвести вручную: в таблицу для вывода списка контактов после колонки "Контакт" добавьте колонку. Теперь таблица должна содержать не четыре, а пять колонок. После этого объедините заголовок двух последних колонок (Рис. 3). Сохраните шаблон.

Рисунок 3. Внешний вид привязки со статическим условием в шаблоне отчета

Запустите отчет на выполнение. Это можно сделать из Мастера отчетов нажатием на кнопку панели инструментов. В результате будет получен список физических лиц и их рабочих телефонов (для тех, у кого задан рабочий телефон в списке контактов).

Рисунок 4. Результат выполнения отчета с привязкой со статическим условием

Динамическое условие

Чтобы настроить динамическое условие, необходимо на странице Настройка фильтра данных привязки заполнить данные в блоке Подстановка значений.

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

Описание использования зарезервированных слов [Объект] и [ГруппаФильтра] дано на странице настройки соответствий фильтра (Рис. 5).

Рисунок 5. Страница настройки фильтра
Внимание!

Нельзя использовать в отчете один и тот же фильтр с разной настройкой соответствий. В этом случае соответствия в фильтре могут объединяться, и результат выполнения отчета будет неверным.


С помощью кнопки Создать фильтр с учетом класса привязки производится создание нового фильтра для данной привязки.

С помощью кнопки Открыть свойства хранимого фильтра можно просмотреть свойства выбранного фильтра.

Пример. Использование зарезервированных слов в динамическом условии

В отчете "Должностная инструкция" в привязке "Возглавляемые подразделения" используется фильтр "Субъекты-Подразделения,где должность явл-ся руководителем", настроенный для справочника "Субъекты". Этот справочник показан в параметре "Класс" в Окне свойств фильтра, вызываемом нажатием на кнопку Открыть свойства хранимого фильтра на странице настройки фильтра привязки.

В условии фильтра задано, что значение параметра "Параметры должности. Руководитель подразделения" должно быть пустым (Рис. 6).

При выполнении отчета в это поле будет подставляться объект справочника "Субъекты", от которого вызвали отчет. На странице настройки соответствий фильтра (см. Рис.5) задано соответствие: объект, от которого вызвали отчет (обозначен словом [Объект]), подставляется в качестве значения параметра "Параметры должности. Руководитель подразделения" (обозначен системным названием ПараметрыПодразделения.Руководитель, генерируемым автоматически при выборе параметра в данном поле по кнопке ) фильтра, наложенного на текущую привязку.

Рисунок 6. Задание условия для параметра "guid"

Пример. Вывод сервисных настроек с помощью фильтра

В отчете с помощью привязки типа "Фильтр" можно вывести параметры сервисных настроек. Например, в отчете "Значения показателя за период" выводится значения дат параметра "Рабочий период", который задается в строке состояния Business Studio или в Настройках пользователя (Главное меню → Главная → Настройки пользователя → вкладка Дополнительно).

В контекстном меню привязки "Период" выбрать пункт Редактировать основное условие фильтра для просмотра условия фильтра.

Рисунок 7. Переход к основному условию фильтра

На вкладке Условия задано условие выбора текущего пользователя. Значение параметра "Пользователь" равно константе [База.ПользовательОб]. Подробнее о подстановке констант в условия фильтра описано в статье Использование системных констант в фильтре.

Рисунок 8. Условие, заданное для параметра "Пользователь"

На вкладке Показ отмечены для показа параметры "Дата начала периода", "Дата конца периода".

Привязка "Период" настроена как привязка типа "BAND по фильтру" с фильтром "Интервал дат для отчета по целям". Список соответствий пуст. На странице свойств привязки "Период" настроены дополнительные привязки по параметрам, выбранным на вкладке "Показ" в фильтре.

Вставка привязки в шаблон отчета производится в соответствии с описанием в главе Вставка привязки в шаблон отчета.

Рисунок 9. Теги привязки "Период"

При выполнении отчета от любого показателя в этот отчёт будут выводиться даты начала и окончания параметра "Рабочий период".

Рисунок 10. Результат выполнения отчета с привязкой "Период"
« ПредыдущаяНа уровень вышеСледующая »
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki