Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:manual:report:types_anchor:param_filter [2013/02/12 17:44] dpinaev [Настройка статического фильтра] |
ru:manual:report:types_anchor:param_filter [2017/11/08 15:50] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Параметр "Фильтр" в структуре привязки ====== | + | ====== Параметр типа "Фильтр" в структуре привязки ====== |
- | Параметр "Фильтр" может использоваться в привязках типа "Список", "Дерево" и "BAND". С его помощью можно отфильтровать список элементов этих привязок так, чтобы в отчет выводились только нужные элементы. | + | Параметр типа "Фильтр" может использоваться в привязках типа "Список", "Дерево", "BAND", "Фильтр". С его помощью можно отфильтровать список объектов этих привязок так, чтобы в отчет выводились только нужные объекты. В привязках типа "Секция" фильтр используется как условие показа секции. |
- | Фильтром в структуре привязки служит хранимый фильтр, который рекомендуется настроить заранее, до настройки привязки. Фильтры создаются в справочнике хранимых фильтров (команда Главного меню: Отчеты -> Хранимые фильтры). Для фильтра привязки можно использовать любой доступный вид фильтра (см. [[ru/manual/filter/stored_filter]]). | + | Фильтром в структуре привязки служит фильтр, который рекомендуется настроить заранее, до настройки привязки. Фильтры создаются в справочнике "Хранимые фильтры" (**Главное меню -> Отчеты -> Хранимые фильтры**). Для фильтра привязки можно использовать любой доступный вид фильтра (см. [[ru/manual/filter/stored_filter]]). |
- | Условия фильтра могут быть статическими или динамическими. Поле "Значение" статического условия предопределено заранее и не меняется во время формирования отчета. В динамическое условие в поле "Значение" можно передавать значения параметров элемента, от которого вызван отчет. Таким образом, в зависимости от выбора элемента в отчете будет получен тот или иной результат фильтра. | + | Условия фильтра могут быть статическими или динамическими. Поле "Значение" статического условия предопределено заранее при создании фильтра и не меняется во время формирования отчета. В динамическое условие в поле "Значение" можно передавать значения параметров объекта, от которого вызван отчет. Таким образом, в зависимости от выбора объекта в отчете будет получен тот или иной результат фильтра. В одном фильтре можно использовать одновременно статические и динамические условия. |
== Внимание! == | == Внимание! == | ||
- | В случае, если требуется использовать в пользовательских отчетах фильтры из поставляемых с Business Studio отчетов (такая ситуация возникает, например, если пользовательский отчет создавался копированием поставляемого с Business Studio отчета) рекомендуется делать копии этих фильтров, перемещать эти копии за пределы папки "Фильтры отчетов\СТУ" (например, в папку "Пользовательские фильтры"), назначить для соответствующих привязок отчета эти копии вместо поставляемых с Business Studio фильтров и работать в дальнейшем с копиями фильтров. Разработчик Business Studio оставляет за собой право перезаписывать фильтры при обновлении программы. | + | В случае, если требуется использовать в пользовательских отчетах фильтры из поставляемых с Business Studio отчетов (такая ситуация возникает, например, если пользовательский отчет создавался копированием отчета, поставляемого с Business Studio) рекомендуется делать копии этих фильтров, перемещать эти копии за пределы папки "Фильтры отчетов\СТУ" (например, в папку "Пользовательские фильтры"), назначить для соответствующих привязок отчета эти копии вместо поставляемых с Business Studio фильтров и работать в дальнейшем с копиями фильтров. Разработчик Business Studio оставляет за собой право перезаписывать фильтры при обновлении программы. |
- | ===== Настройка статического условия ===== | + | ==== ==== |
- | Чтобы настроить статический фильтр, необходимо создать хранимый фильтр, и затем на странице настройки сложной привязки с помощью кнопки "Настроить" блока дополнительных настроек сложной привязки перейти на страницу настройки фильтра и там по кнопке {{common/3dot.png?nolink}} выбрать этот хранимый фильтр. | + | ===== Выбор фильтра привязки ===== |
- | Также такие фильтры удобно создавать для уже готовых привязок, с помощью команды контекстного меню привязки в дереве привязок "Создать фильтр по класса параметра", в этом случае фильтр будет создан по классу того параметра, от которого было вызвано контекстное меню. | + | |
- | ==== Пример. Статический фильтр ==== | + | Выбрать фильтр привязки можно следующими способами: |
+ | - Сначала создать фильтр, а затем на странице настройки сложной привязки с помощью кнопки **Настроить** группы **Дополнительные настройки** перейти на страницу настройки фильтра и нажатием на кнопку {{common/3dot.png?nolink}} выбрать этот фильтр. При этом должны быть соблюдены условия: | ||
+ | * если фильтр будет работать в привязке типов "Список", "Дерево" или "BAND", то он должен создаваться для того класса, к которому принадлежит параметр объекта привязки; | ||
+ | * Если фильтр будет работать в привязке типа "Фильтр", то он может создаваться для любого класса; | ||
+ | * Если фильтр будет работать в корневой привязке типа "Секция", то он может создаваться для любого класса. Если в некорневой - то он должен настраиваться для класса вышележащей привязки. | ||
+ | - Создать фильтр для уже готовой привязки, с помощью пункта **Создать фильтр по классу параметра** контекстного меню привязки в дереве привязок. В этом случае фильтр будет создан по классу того параметра, от которого было вызвано контекстное меню. Созданный фильтр автоматически становится фильтром привязки. | ||
- | Рассмотрим работу статического фильтра на базе отчета по физическим лицам, создание которого описано в [[ru/manual/report/types_anchor/type_filter#пример_фильтр_по_классу_физлица|Пример. Фильтр по классу "Физлица"]]. В этом отчете у привязки "Список физических лиц" есть четыре дополнительных привязки. Последняя привязка "Все контакты" обеспечивает вывод в отчете список всех контактов физического лица. Данная привязка имеет тип "Объект". Этой же цели можно добиться, выведя в отчет с помощью привязки типа "Список" список "Контакты" физического лица. На этот список можно будет наложить условие, например: должны выводиться только рабочие телефоны. | + | == Внимание! == |
+ | В фильтре должны быть заданны условия фильтра (См. подробнее про настройку фильтра в главе [[ru/manual/filter/filter_element]]). Для статических условий должно быть задано поле "Значение". Для динамических условий поле "Значение" можно оставить пустым. | ||
+ | ==== ==== | ||
- | Откройте справочник хранимых фильтров командой Главного меню "Отчеты -> Хранимые фильтры". Щелкните по значку {{common/icons/06.png?nolink}} на панели инструментов окна справочника. Выберите класс "Контакты физлиц" (Элементы списков -> БизнесМодель.КонтактыФизЛиц). В окне названия нового фильтра введите, например, "Фильтр списка контактов". В окне "Фильтр" на закладке "Условия" для параметра "Тип контакта" выберите значение "Рабочий телефон". Сохраните фильтр. В поле "Вид результата" выберите "Форма справочника". Сохраните фильтр. Подробнее о создании фильтров см. [[ru/manual/filter/stored_filter]]. | + | ===== Статическое условие ===== |
- | [{{ ru/manual/report/types_anchor/param_filter/image1251.png?nolink |Рисунок 1}}] | + | Рассмотрим работу статического условия на примере отчета по физическим лицам, создание которого описано в статье [[ru/manual/report/types_anchor/type_filter#пример_фильтр_по_справочнику_физические_лица|Пример. Фильтр по справочнику "Физические лица"]]. В этом отчете у привязки "Список физических лиц" есть четыре дополнительных привязки. Последняя привязка "Все контакты" обеспечивает вывод в отчете список всех контактов физического лица. Данная привязка имеет тип "Объект". Этой же цели можно добиться, выведя в отчет с помощью привязки типа "Список" список "Контакты" физического лица. На этот список можно будет наложить условие, например, должны выводиться только рабочие телефоны. |
- | В мастере отчетов на странице настройки привязки "Список физических лиц" установите курсор на привязку "Все контакты" и удалите её (кнопка "Удалить" или пункт "Удалить выделенные строки" в контекстном меню). Затем по кнопке "Добавить" создайте новую привязку типа "Список", выберите список "Контакты". | + | Откройте справочник фильтров (**Главное меню -> Отчеты -> Хранимые фильтры**). Нажмите на кнопку {{common/icons/06.png?nolink}} панели инструментов **Окна справочника**. Выберите класс "Контакты физлиц" (Элементы списков -> БизнесМодель.КонтактыФизЛиц). В окне названия нового фильтра введите, например, "Фильтр списка контактов". В **Окне фильтра** на вкладке **Условия** для параметра "Тип контакта" выберите значение "Рабочий телефон" (Рис. 1). Сохраните фильтр. В параметре "Вид результата" выберите значение "Форма справочника". Сохраните фильтр. Подробнее о создании фильтров описано в главе [[ru/manual/filter/stored_filter]]. |
- | [{{ ru/manual/report/types_anchor/param_filter/image1253.png?nolink |Рисунок 2}}] | + | [{{ ru/manual/report/types_anchor/param_filter/image1251.png?nolink |Рисунок 1. Задание условия фильтра}}] |
- | Далее на странице настройки сложной привязки добавьте две привязки: | + | В **Мастере отчетов** на странице настройки привязки "Список физических лиц" установите курсор на привязку "Все контакты" и удалите её при помощи кнопки **Удалить** или пункт меню **Удалить выделенные строки** в контекстном меню строки с привязкой. Затем нажмите на кнопку **Добавить**, выберите тип привязки "Список", выберите параметр "Контакты". |
- | * "Тип контакта": тип привязки "Объект", параметр "ТипКонтакта"; | + | Далее на странице настройки сложной привязки (Рис. 2) добавьте две привязки: |
- | * "Контакт": тип привязки "Объект", параметр "Контакт". | + | |
- | Добавить эти привязки можно либо перейдя по кнопке "Добавить", либо из дерева "Параметры объекта" по кнопке {{common/right.png?nolink}}, либо перетащив мышью. | + | * "Тип контакта": тип привязки - "Объект", параметр - "ТипКонтакта"; |
+ | * "Контакт": тип привязки - "Объект", параметр - "Контакт". | ||
- | После этого нажмите кнопку "Настроить" блока дополнительных настроек страницы настройки сложной привязки для перехода на страницу настройки фильтра и там по кнопке {{common/3dot.png?nolink}} выберите ранее созданный хранимый фильтр "Фильтр списка контактов". | + | [{{ ru/manual/report/types_anchor/param_filter/image1253.png?nolink |Рисунок 2. Страница настройки сложной привязки со статическим условием}}] |
- | Колонки вложенного списка необходимо учесть в шаблоне отчета. Если редактирование привязки запускалось нажатием на кнопку {{ru/common/properties.png?nolink}} панели инструментов Мастера отчетов, то перечень колонок будет автоматически изменен в соответствии с изменениями, произведенными в привязке. Если же редактирование привязки было запущено из дерева привязок, эти изменения нужно произвести вручную: в таблицу для вывода списка контактов после колонки "Контакт" добавьте колонку, теперь таблица должна содержать не четыре, а пять колонок. После этого объедините заголовок двух последних колонок. Сохраните шаблон. | + | Добавить эти привязки можно либо нажав на кнопку **Добавить**, либо нажав на кнопку {{common/right.png?nolink}} в дереве **Параметры объекта**, либо перетащив мышью нужный параметр. |
- | [{{ ru/manual/report/types_anchor/param_filter/image1257.png?nolink |Рисунок 3}}] | + | После этого нажмите на кнопку **Настроить** блока дополнительных настроек для перехода на страницу настройки фильтра и там по кнопке {{common/3dot.png?nolink}} выберите ранее созданный фильтр "Фильтр списка контактов". |
- | Запустите отчет на выполнение. Это можно сделать из Мастера отчетов щелчком по кнопке {{ru/common/exe.png?nolink}} на панели инструментов. В результате будет получен список физических лиц и их рабочих телефонов (для тех, у кого задан рабочий телефон в списке контактов). | + | Колонки вложенного списка необходимо учесть в шаблоне отчета. Если редактирование привязки запускалось нажатием на кнопку {{ru/common/properties.png?nolink}} панели инструментов **Мастера отчетов**, то перечень колонок будет автоматически изменен в соответствии с изменениями, произведенными в привязке. Если же редактирование привязки было запущено из дерева привязок, эти изменения нужно произвести вручную: в таблицу для вывода списка контактов после колонки "Контакт" добавьте колонку. Теперь таблица должна содержать не четыре, а пять колонок. После этого объедините заголовок двух последних колонок (Рис. 3). Сохраните шаблон. |
- | [{{ ru/manual/report/types_anchor/param_filter/image1259.png?nolink |Рисунок 4}}] | + | [{{ ru/manual/report/types_anchor/param_filter/image1257.png?nolink |Рисунок 3. Внешний вид привязки со статическим условием в шаблоне отчета}}] |
- | ===== Настройка динамического фильтра ===== | + | Запустите отчет на выполнение. Это можно сделать из **Мастера отчетов** нажатием на кнопку {{ru/common/exe.png?nolink}} панели инструментов. В результате будет получен список физических лиц и их рабочих телефонов (для тех, у кого задан рабочий телефон в списке контактов). |
- | Чтобы настроить динамический фильтр, необходимо создать хранимый фильтр определенного класса элементов и заполнить данные в блоке "Соответствия фильтра" на странице настройки фильтра. | + | [{{ ru/manual/report/types_anchor/param_filter/image1259.png?nolink |Рисунок 4. Результат выполнения отчета с привязкой со статическим условием}}] |
- | Если динамический фильтр будет работать в привязке типа "Фильтр", то хранимый фильтр может настраивается для любого класса. | + | ===== Динамическое условие ===== |
- | Если динамический фильтр будет работать в привязке типов "Список", "Дерево" или "BAND", то хранимый фильтр должен настраиваться для того класса, к которому принадлежит параметр объекта привязки. | + | Чтобы настроить динамическое условие, необходимо на странице **Настройка фильтра данных привязки** заполнить данные в блоке **Подстановка значений**. |
- | Если динамический фильтр будет работать в привязке типа "Секция", то хранимый фильтр должен настраиваться для класса вышележащей привязки. Если секция корневая - для любого класса. | + | В поле **Название условия фильтра** вводится название дополнительного условия фильтра (названия должны точно совпадать), в рамках которого происходит описанная далее подстановка. Если подстановка происходит в рамках основного условия фильтра, это поле не заполняется. В поле **Параметр-источник** нужно выбрать параметр, значение которого будет подставляться в условие фильтра. В поле **Параметр фильтра** выбирается тот параметр фильтра, в значение которого будет подставлено значение параметра. |
- | + | ||
- | В поле "Название условия фильтра" вводится название условия сложного фильтра, по которому настраивается соответствие. Для фильтров, не содержащих дополнительных условий это поле можно оставить пустым. В поле "Параметр класса" нужно выбрать параметр, значение которого будет подставляться в условие фильтра. В поле "Параметр фильтра" выбирается тот параметр фильтра, в значение которого будет подставлено значение параметра, заданного в колонке "Параметр класса" данной строки при выполнении фильтра. | + | |
Описание использования зарезервированных слов [Объект] и [ГруппаФильтра] дано на странице настройки соответствий фильтра (Рис. 5). | Описание использования зарезервированных слов [Объект] и [ГруппаФильтра] дано на странице настройки соответствий фильтра (Рис. 5). | ||
+ | |||
+ | [{{ ru/manual/report/types_anchor/param_filter/image1261.png?nolink |Рисунок 5. Страница настройки фильтра}}] | ||
== Внимание! == | == Внимание! == | ||
Нельзя использовать в отчете один и тот же фильтр с разной настройкой соответствий. В этом случае соответствия в фильтре могут объединяться, и результат выполнения отчета будет неверным. | Нельзя использовать в отчете один и тот же фильтр с разной настройкой соответствий. В этом случае соответствия в фильтре могут объединяться, и результат выполнения отчета будет неверным. | ||
- | ===== ===== | + | ==== ==== |
\\ | \\ | ||
- | [{{ ru/manual/report/types_anchor/param_filter/image1261.png?nolink |Рисунок 5}}] | + | С помощью кнопки **Создать фильтр с учетом класса привязки** {{common/icons/06.png?nolink}} производится создание нового фильтра для данной привязки. |
+ | |||
+ | С помощью кнопки **Открыть свойства хранимого фильтра** {{common/icons/05.png?nolink}} можно просмотреть свойства выбранного фильтра. | ||
+ | |||
+ | ===== Пример. Использование зарезервированных слов в динамическом условии ===== | ||
+ | |||
+ | В отчете "Должностная инструкция" в привязке "Возглавляемые подразделения" используется фильтр "Субъекты-Подразделения,где должность явл-ся руководителем", настроенный для справочника "Субъекты". Этот справочник показан в параметре "Класс" в **Окне свойств** фильтра, вызываемом нажатием на кнопку **Открыть свойства хранимого фильтра** {{common/icons/05.png?nolink}} на странице настройки фильтра привязки. | ||
+ | |||
+ | В условии фильтра задано, что значение параметра "Параметры должности. Руководитель подразделения" должно быть пустым (Рис. 6). | ||
+ | |||
+ | При выполнении отчета в это поле будет подставляться объект справочника "Субъекты", от которого вызвали отчет. На странице настройки соответствий фильтра (см. Рис.5) задано соответствие: объект, от которого вызвали отчет (обозначен словом [Объект]), подставляется в качестве значения параметра "Параметры должности. Руководитель подразделения" (обозначен системным названием ПараметрыПодразделения.Руководитель, генерируемым автоматически при выборе параметра в данном поле по кнопке {{common/3dot.png?nolink}}) фильтра, наложенного на текущую привязку. | ||
+ | |||
+ | [{{ ru/manual/report/types_anchor/param_filter/image1267.png?nolink |Рисунок 6. Задание условия для параметра "guid"}}] | ||
+ | |||
+ | ===== Пример. Вывод сервисных настроек с помощью фильтра ===== | ||
+ | |||
+ | В отчете с помощью привязки типа "Фильтр" можно вывести параметры сервисных настроек. Например, в отчете "Значения показателя за период" выводится значения дат параметра "Рабочий период", который задается в строке состояния Business Studio или в **Настройках пользователя** (**Главное меню -> Главная -> Настройки пользователя** -> вкладка **Дополнительно**). | ||
- | С помощью кнопки {{common/icons/06.png?nolink}} **"Создать фильтр с учетом класса привязки"** производится создание нового фильтра для данной привязки. | + | В контекстном меню привязки "Период" выбрать пункт **Редактировать основное условие фильтра** для просмотра условия фильтра. |
- | По кнопке {{common/icons/05.png?nolink}} **"Открыть свойства хранимого фильтра"** можно просмотреть свойства выбранного фильтра. | + | [{{ ru/manual/report/types_anchor/param_filter/image1269.png?nolink |Рисунок 7. Переход к основному условию фильтра}}] |
- | ==== Пример. Использование зарезервированных слов в динамическом фильтре ==== | + | |
- | Используемый в отчете "Положение о подразделении в привязке "Процессы, выполняемые сотрудниками подразделения" хранимый фильтр "Субъекты-Нижележащие" настроен для класса "Субъекты" (класс показан в поле "Класс" в окне редактирования свойств фильтра, вызываемом нажатием кнопки {{common/icons/05.png?nolink}} **"Открыть свойства хранимого фильтра"** на странице настройки фильтра привязки). | + | На вкладке **Условия** задано условие выбора текущего пользователя. Значение параметра "Пользователь" равно константе [База.ПользовательОб]. Подробнее о подстановке констант в условия фильтра описано в статье [[ru/manual/filter/filter_element#использование_системных_констант_в_фильтре|Использование системных констант в фильтре]]. |
- | В условии фильтра задано, что параметр "guid" должен быть не пустым (Рис. 6). | + | [{{ ru/manual/report/types_anchor/param_filter/image1271.png?nolink |Рисунок 8. Условие, заданное для параметра "Пользователь"}}] |
- | [{{ ru/manual/report/types_anchor/param_filter/image1267.png?nolink |Рисунок 6}}] | + | На вкладке **Показ** отмечены для показа параметры "Дата начала периода", "Дата конца периода". |
- | При выполнении отчета в это поле будет подставляться guid Субъекта, от которого вызвали отчет. На странице настройки соответствий фильтра (см. Рис.5) задано два соответствия: первое - объект, от которого вызвали отчет (обозначен словом [Объект]), подставляется в группу фильтра (обозначена словом [Группа фильтра]); второе - идентификатор объекта, от которого вызвали отчет (слово [Объект].guid) должен быть равен идентификатору элемента фильтра (guid). На Рис. 6 показана страница настройки данного фильтра. | + | Привязка "Период" настроена как привязка типа "BAND по фильтру" с фильтром "Интервал дат для отчета по целям". Список соответствий пуст. На странице свойств привязки "Период" настроены дополнительные привязки по параметрам, выбранным на вкладке "Показ" в фильтре. |
- | ==== Пример. Вывод сервисных настроек с помощью фильтра ==== | + | Вставка привязки в шаблон отчета производится в соответствии с описанием в главе [[ru/manual/report/insert_anchor]]. |
- | В отчете с помощью привязки "фильтр" можно вывести параметры Сервисных настроек. Например, в отчете "Значения показателя за период" выводится значения дат параметра "Тип периода", который задается в строке состояния Business Studio или в Настройках пользователя (пункт Главного меню "Главная -> Настройки пользователя", вкладка "Дополнительно") | + | [{{ ru/manual/report/types_anchor/param_filter/image1273.png?nolink |Рисунок 9. Теги привязки "Период"}}] |
- | [{{ ru/manual/report/types_anchor/param_filter/image1269.png?nolink |Рисунок 7}}] | + | При выполнении отчета от любого показателя в этот отчёт будут выводиться даты начала и окончания параметра "Рабочий период". |
- | В контекстном меню привязки "Период" выбрать пункт "Редактировать основное условие фильтра" для просмотра условия фильтра. На закладке Условия задано условие выбора текущего пользователя, Значение параметра "Пользователь" равно константе [База.ПользовательОб]. Подробнее о подстановке констант в условия фильтра см. [[ru/manual/filter/filter_element#использование_системных_констант_в_фильтре|Использование системных констант в фильтре]]. | + | [{{ ru/manual/report/types_anchor/param_filter/image1275.png?nolink |Рисунок 10. Результат выполнения отчета с привязкой "Период"}}] |
- | [{{ ru/manual/report/types_anchor/param_filter/image1271.png?nolink |Рисунок 8}}] | ||
- | На закладке "Показ" отмечены для показа параметры "Дата начала периода", "Дата конца периода". | ||
- | Привязка "Период" настроена как BAND по фильтру "Интервал дат для отчета по целям", список соответствий пуст. На странице свойств привязки "Период" настроены дополнительные привязки по параметрам, выбранным на закладке "Показ" в фильтре. | ||
- | Вставка привязки в шаблон отчета производится в соответствии с информацией из [[ru/manual/report/insert_anchor]]. | ||
- | [{{ ru/manual/report/types_anchor/param_filter/image1273.png?nolink |Рисунок 9}}] | + | [<contextnavigator>] |
- | При выполнении отчета от любого показателя, в этот отчёт будут выводиться даты начала и окончания "Типа периода". Например, в параметре "Тип периода" выбрано "текущее полугодие". | ||
- | [{{ ru/manual/report/types_anchor/param_filter/image1275.png?nolink |Рисунок 10}}] |