Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:manual:report:types_anchor:param_filter [2013/02/08 17:56]
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]]).
  
-В дополнительных привязках привязки типа "Список" (или "Дерево", "BAND", "Фильтр") также может быть задан фильтр. Другими словами, для параметров каждого вложенного списка может быть задан свой фильтр. +Условия фильтра могут быть статическими или динамическимиПоле "Значение" статического условия предопределено заранее при создании фильтра и не меняется во время формирования отчета. В динамическое условие в поле "Значение" можно передавать значения параметров объекта, от которого вызван отчет. Таким образом, в зависимости от выбора объекта в отчете будет получен тот или иной результат фильтра. В одном фильтре можно использовать одновременно статические и динамические условия.
- +
-Фильтр привязки может быть статическим или динамическим. Результат выполнения статического фильтра не зависит от выбора элемента, для которого формируется отчет. При работе же динамического фильтра параметры элемента, от которого вызван отчет, подставляются в фильтр и служат условиями отбора данных. Таким образом, в зависимости от выбора элемента в отчете будет получен тот или иной результат.+
  
 == Внимание! == == Внимание! ==
-В случае, если требуется использовать в пользовательских отчетах фильтры из поставляемых с 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}} панели инструментов **Окна справочника**. Выберите класс "Контакты физлиц" (Элементы списков -&gtБизнесМодель.КонтактыФизЛиц). В окне названия нового фильтра введите, например, "Фильтр списка контактов". В **Окне фильтра** на вкладке **Условия** для параметра "Тип контакта" выберите значение "Рабочий телефон(Рис. 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}}] 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki