Это старая версия документа.


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

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

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

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

Внимание!

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

Использование фильтра со статическими условиями

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

  1. Сначала создать хранимый фильтр, а затем на странице настройки сложной привязки с помощью кнопки "Настроить" группы "Дополнительные настройки" перейти на страницу настройки фильтра и по кнопке выбрать этот хранимый фильтр.
  2. Создать фильтр для уже готовой привязки, с помощью команды контекстного меню привязки в дереве привязок "Создать фильтр по классу параметра", в этом случае фильтр будет создан по классу того параметра, от которого было вызвано контекстное меню. Созданный фильтр автоматически становится фильтром привязки.

Пример. Статический фильтр

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

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

Рисунок 1

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

Рисунок 2

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

  • "Тип контакта": тип привязки "Объект", параметр "ТипКонтакта";
  • "Контакт": тип привязки "Объект", параметр "Контакт".

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

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

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

Рисунок 3

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

Рисунок 4

Настройка динамического фильтра

Чтобы настроить динамический фильтр, необходимо создать хранимый фильтр определенного класса элементов и заполнить данные в блоке "Соответствия фильтра" на странице настройки фильтра.

Если динамический фильтр будет работать в привязке типа "Фильтр", то хранимый фильтр может настраивается для любого класса.

Если динамический фильтр будет работать в привязке типов "Список", "Дерево" или "BAND", то хранимый фильтр должен настраиваться для того класса, к которому принадлежит параметр объекта привязки.

Если динамический фильтр будет работать в привязке типа "Секция", то хранимый фильтр должен настраиваться для класса вышележащей привязки. Если секция корневая - для любого класса.

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

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

Внимание!

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


Рисунок 5

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

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

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

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

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

Рисунок 6

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

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

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

Рисунок 7

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

Рисунок 8

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

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

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

Рисунок 9

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

Рисунок 10
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki