Различия

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

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

ru:manual:report:types_anchor:param_filter [2013/02/12 18:29]
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}} выбрать этот хранимый фильтр. +
-  - Создать фильтр для уже готовой привязки, с помощью команды контекстного меню привязки в дереве привязок "Создать фильтр по классу параметра", в этом случае фильтр будет создан по классу того параметра, от которого было вызвано контекстное меню. Созданный фильтр автоматически становится фильтром привязки.+
  
-Если динамический фильтр будет работать в привязке типов "Список", "Дерево" или "BAND", то хранимый фильтр должен создаваться для того класса, к которому принадлежит параметр объекта привязкиЕсли динамический фильтр будет работать в привязке типа "Фильтр", то хранимый фильтр может создаваться для любого класса. +Выбрать фильтр привязки можно следующими способами: 
 +  - Сначала создать фильтр, а затем на странице настройки сложной привязки с помощью кнопки **Настроить** группы **Дополнительные настройки** перейти на страницу настройки фильтра и нажатием на кнопку {{common/3dot.png?nolink}} выбрать этот фильтр. При этом должны быть соблюдены условия: 
 +    *  если фильтр будет работать в привязке типов "Список", "Дерево" или "BAND", то он должен создаваться для того класса, к которому принадлежит параметр объекта привязки
 +    *  Если фильтр будет работать в привязке типа "Фильтр", то он может создаваться для любого класса; 
 +    *  Если фильтр будет работать в корневой привязке типа "Секция", то он может создаваться для любого класса. Если в некорневой - то он должен настраиваться для класса вышележащей привязки. 
 +  - Создать фильтр для уже готовой привязки, с помощью пункта **Создать фильтр по классу параметра** контекстного меню привязки в дереве привязок. В этом случае фильтр будет создан по классу того параметра, от которого было вызвано контекстное меню. Созданный фильтр автоматически становится фильтром привязки.
  
-==== Статическое условие ====+== Внимание! == 
 +В фильтре должны быть заданны условия фильтра (См. подробнее про настройку фильтра в главе [[ru/manual/filter/filter_element]]). Для статических условий должно быть задано поле "Значение". Для динамических условий поле "Значение" можно оставить пустым. 
 +==== ====
  
-Рассмотрим работу статического условия на примере отчета по физическим лицам, создание которого описано в [[ru/manual/report/types_anchor/type_filter#пример_фильтр_по_классу_физлица|Пример. Фильтр по классу "Физлица"]]. В этом отчете у привязки "Список физических лиц" есть четыре дополнительных привязки. Последняя привязка "Все контакты" обеспечивает вывод в отчете список всех контактов физического лица. Данная привязка имеет тип "Объект". Этой же цели можно добиться, выведя в отчет с помощью привязки типа "Список" список "Контакты" физического лица. На этот список можно будет наложить условие, например: должны выводиться только рабочие телефоны.+===== Статическое условие =====
  
-Откройте справочник хранимых фильтров командой Главного меню "Отчеты -> Хранимые фильтры". Щелкните по значку {{common/icons/06.png?nolink}} на панели инструментов окна справочника. Выберите класс "Контакты физлиц" (Элементы списков -&gtБизнесМодель.КонтактыФизЛиц). В окне названия нового фильтра введите, например, "Фильтр списка контактов". В окне "Фильтр" на закладке словия" для параметра "Тип контактавыберите значение "Рабочий телефон". Сохраните фильтр. В поле "Вид результата" выберите "Форма справочника". Сохраните фильтрПодробнее о создании фильтров см. [[ru/manual/filter/stored_filter]].+Рассмотрим работу статического условия на примере отчета по физическим лицам, создание которого описано в статье [[ru/manual/report/types_anchor/type_filter#пример_фильтр_по_справочникуизические_лица|Пример. Фильтр по справочнику "Физические лица"]]. В этом отчете у привязки "Список физических лиц" есть четыре дополнительных привязки. Последняя привязка "Все контактыобеспечивает вывод в отчете список всех контактов физического лица. Данная привязка имеет тип "Объект". Этой же цели можно добиться, выведя в отчет с помощью привязки типа "Список" список "Контакты" физического лицаНа этот список можно будет наложить условие, например, должны выводиться только рабочие телефоны.
  
-[{{ ru/manual/report/types_anchor/param_filter/image1251.png?nolink исунок 1}}]+Откройте справочник фильтров (**Главное меню -> Отчеты -> Хранимые фильтры**). Нажмите на кнопку {{common/icons/06.png?nolink}} панели инструментов **Окна справочника**. Выберите класс "Контакты физлиц" (Элементы списков -> БизнесМодель.КонтактыФизЛиц). В окне названия нового фильтра введите, например, "Фильтр списка контактов". В **Окне фильтра** на вкладке **Условия** для параметра "Тип контакта" выберите значение "Рабочий телефон" (Рис. 1). Сохраните фильтр. В параметре "Вид результата" выберите значение "Форма справочника". Сохраните фильтр. Подробнее о создании фильтров описано в главе [[ru/manual/filter/stored_filter]].
  
-В мастере отчетов на странице настройки привязки "Список физических лиц" установите курсор на привязку "Все контакты" и удалите её (кнопка "Удалить" или пункт "Удалить выделенные строки" в контекстном меню). Затем по кнопке "Добавить" создайте новую привязку типа "Список", выберите список "Контакты". +[{{ ru/manual/report/types_anchor/param_filter/image1251.png?nolink |Рисунок 1. Задание условия фильтра}}] 
  
-[{{ ru/manual/report/types_anchor/param_filter/image1253.png?nolink |Рисунок 2}}]+В **Мастере отчетов** на странице настройки привязки "Список физических лиц" установите курсор на привязку "Все контакты" и удалите её при помощи кнопки **Удалить** или пункт меню **Удалить выделенные строки** в контекстном меню строки с привязкой. Затем нажмите на кнопку **Добавить**, выберите тип привязки "Список", выберите параметр "Контакты".
  
-Далее на странице настройки сложной привязки добавьте две привязки:+Далее на странице настройки сложной привязки (Рис. 2) добавьте две привязки:
  
-  * "Тип контакта": тип привязки "Объект", параметр "ТипКонтакта"; +  * "Тип контакта": тип привязки "Объект", параметр "ТипКонтакта"; 
-  * "Контакт": тип привязки "Объект", параметр "Контакт".+  * "Контакт": тип привязки "Объект", параметр "Контакт".
  
-Добавить эти привязки можно либо перейдя по кнопке "Добавить", либо из дерева "Параметры объекта" по кнопке {{common/right.png?nolink}}, либо перетащив мышью.+[{{ ru/manual/report/types_anchor/param_filter/image1253.png?nolink |Рисунок 2. Страница настройки сложной привязки со статическим условием}}]
  
-После этого нажмите кнопку "Настроить" блока дополнительных настроек страницы настройки сложной привязки для перехода на страницу настройки фильтра и там по кнопке {{common/3dot.png?nolink}} выберите ранее созданный хранимый фильтр "Фильтр списка контактов".+Добавить эти привязки можно либо нажав на кнопку **Добавить**, либо нажав на кнопку {{common/right.png?nolink}} в дереве **Параметры объекта**, либо перетащив мышью нужный параметр.
  
-Колонки вложенного списка необходимо учесть в шаблоне отчета. Если редактирование привязки запускалось нажатием на кнопку {{ru/common/properties.png?nolink}} панели инструментов Мастера отчетов, то перечень колонок будет автоматически изменен в соответствии с изменениями, произведенными в привязке. Если же редактирование привязки было запущено из дерева привязок, эти изменения нужно произвести вручную: в таблицу для вывода списка контактов после колонки "Контакт" добавьте колонку, теперь таблица должна содержать не четыре, а пять колонок. После этого объедините заголовок двух последних колонок. Сохраните шаблон.+После этого нажмите на кнопку **Настроить** блока дополнительных настроек для перехода на страницу настройки фильтра и там по кнопке {{common/3dot.png?nolink}} выберите ранее созданный фильтр ильтр списка контактов".
  
-[{{ ru/manual/report/types_anchor/param_filter/image1257.png?nolink исунок 3}}]+Колонки вложенного списка необходимо учесть в шаблоне отчета. Если редактирование привязки запускалось нажатием на кнопку {{ru/common/properties.png?nolink}} панели инструментов **Мастера отчетов**, то перечень колонок будет автоматически изменен в соответствии с изменениями, произведенными в привязке. Если же редактирование привязки было запущено из дерева привязок, эти изменения нужно произвести вручную: в таблицу для вывода списка контактов после колонки "Контакт" добавьте колонку. Теперь таблица должна содержать не четыре, а пять колонок. После этого объедините заголовок двух последних колонок (Рис. 3). Сохраните шаблон.
  
-Запустите отчет на выполнение. Это можно сделать из Мастера отчетов щелчком по кнопке {{ru/common/exe.png?nolink}} на панели инструментов. В результате будет получен список физических лиц и их рабочих телефонов (для тех, у кого задан рабочий телефон в списке контактов).+[{{ ru/manual/report/types_anchor/param_filter/image1257.png?nolink исунок 3. Внешний вид привязки со статическим условием в шаблоне отчета}}]
  
-[{{ ru/manual/report/types_anchor/param_filter/image1259.png?nolink исунок 4}}]+Запустите отчет на выполнение. Это можно сделать из **Мастера отчетов** нажатием на кнопку {{ru/common/exe.png?nolink}} панели инструментов. В результате будет получен список физических лиц и их рабочих телефонов (для тех, у кого задан рабочий телефон в списке контактов).
  
-===== Динамическое условием =====+[{{ ru/manual/report/types_anchor/param_filter/image1259.png?nolink |Рисунок 4. Результат выполнения отчета с привязкой со статическим условием}}]
  
-Чтобы настроить динамическое условие, необходимо на странице "Настройка фильтра данных привязки" выбрать хранимый фильтр определенного класса элементов и заполнить данные в блоке "Соответствия фильтра" .+===== Динамическое условие =====
  
 +Чтобы настроить динамическое условие, необходимо на странице **Настройка фильтра данных привязки** заполнить данные в блоке **Подстановка значений**.
  
-Если динамический фильтр будет работать в привязке типа "Секция", то хранимый фильтр должен настраиваться для класса вышележащей привязки. Если секция корневая - для любого класса. +В поле **Название условия фильтра** вводится название дополнительного условия фильтра (названия должны точно совпадать), в рамках которого происходит описанная далее подстановкаЕсли подстановка происходит в рамках основного условия фильтра, это поле не заполняется. В поле **Параметр-источник** нужно выбрать параметр, значение которого будет подставляться в условие фильтра. В поле **Параметр фильтра** выбирается тот параметр фильтра, в значение которого будет подставлено значение параметра.
- +
-В поле "Название условия фильтра" вводится название условия сложного фильтра, по которому настраивается соответствиеДля фильтров, не содержащих дополнительных условий это поле можно оставить пустым. В поле "Параметр класса" нужно выбрать параметр, значение которого будет подставляться в условие фильтра. В поле "Параметр фильтравыбирается тот параметр фильтра, в значение которого будет подставлено значение параметра, заданного в колонке "Параметр класса" данной строки при выполнении фильтра.+
  
 Описание использования зарезервированных слов [Объект] и [ГруппаФильтра] дано на странице настройки соответствий фильтра (Рис. 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