Рассмотрим пример создания отчета "Количество должностей и подразделений".
Для понимания этой статьи требуется знание того:
Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов.
Необходимо создать отчет формата MS Word, который будет запускаться от любого субъекта типа "Должность", "Подразделение" или "Папка". В отчете должна быть показана информация по количеству всех должностей и подразделений, которые находятся ниже по иерархии от субъекта, от которого вызван отчет. Информация должна быть представлена в виде таблицы, приведенной ниже.
Тип субъекта | Кол-во субъектов |
---|---|
Подразделение | X |
Должность | Y |
По заданными условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников.
Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Данные о количественных оценках в отчеты могут быть вставлены только с использованием фильтров (вкладка Агрегаты) или с использованием кода VBA. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете.
Ключевым вопросом при решении является создание правильных условий фильтра.
Так как в условиях задачи стоит условие на вывод отчета не от всех субъектов, а только от субъектов конкретных типов, то для решения этой задачи тоже необходим фильтр.
Речь идет о создании фильтра для отчета по субъектам. Поэтому и фильтр будет создаваться по справочнику "Субъекты".
В условиях фильтра необходимо указать конкретные типы субъектов, от которых будет выводиться отчет: Должность, Подразделение, Папка.
Параметр | Тип | Оператор | Значение | Не | Потомки |
---|---|---|---|---|---|
Тип субъекта | Список значений | = | Подразделение, Должность, Папка |
После создания условий можно закончить настройку фильтра и сохранить его в папке "Пользовательские фильтры" под названием "Для отчета кол-ва Д и П". Чтобы проверить, что настройка выполнена верно, можно вывести на показ параметры и выполнить фильтр.
Показывать | Параметр |
---|---|
+ | Название |
+ | Тип субъекта |
Так как в задаче речь идет о типах субъектов и их количестве, то фильтр необходимо будет создавать по справочнику "Субъекты".
При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий:
Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже.
Параметр | Тип | Оператор | Значение | Не | Потомки |
---|---|---|---|---|---|
Список родителей субъекта | Подфильтр | = | |||
- guid | Значение | = | |||
Тип субъекта | Список значений | = | Должность, Подразделение |
Пояснение по параметру "Список родителей субъекта". Считаем, что субъект находится в нужной ветке иерархии, если среди его родителей есть субъект, от которого будет вызван отчет. Список, который содержит данные о родителях называется "Список родителей субъекта". Субъект, от которого вызывается отчет, будет определяться в момент вызова этого отчета. Поэтому конкретного значения в фильтре указать нельзя. Конкретное указание будет задаваться в настройках соответствия фильтра в Мастере отчетов.
Найденные по условиям субъекты необходимо будет разделить на 2 группы для будущего подсчета количества: "Должности" и "Подразделения". Для этого на вкладке Группировка нужно указать, что группировку необходимо делать по параметру "Тип субъекта".
Группировать | Параметр | Шаг |
---|---|---|
+ | Тип субъекта |
Подсчет субъектов необходимо вести по параметру, который однозначно идентифицирует одного субъекта от других. Таким параметров является "guid". Поэтому на вкладке Агрегаты подсчет будет именно по этому параметру.
Параметр | Сумма | Максимум | Минимум | Среднее | Количество |
---|---|---|---|---|---|
guid | + |
На вкладке Показ нет необходимости выставлять что-либо, так как настройка этой вкладки была предопределена настройками на вкладках Группировка и Агрегаты. Внешне она будет настроена так, как показано ниже.
Показывать | Параметр |
---|---|
Количество (guid) | |
+ | Тип субъекта |
Сохраняем фильтр с названием "Кол-во должностей и подразделений". Место сохранения – папка "Пользовательские фильтры".
Так как отчет будет создаваться только от некоторых субъектов, то при его создании в Мастере отчетов выбираем условия использования – ранее созданный и сохраненный фильтр "Для отчета кол-ва Д и П".
Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет, и как будут выглядеть вставленные данные в отчете (см. Руководство пользователя → Типы привязок и работа с ними).
Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки – "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Кол-во должностей и подразделений".
Для того чтобы указать конкретный вызываемый субъект, от которого зависит выполнение фильтра, необходимо настроить соответствия фильтра.
Название условия фильтра | Параметр класса | Параметр фильтра |
---|---|---|
[Объект].guid | СписокРодителей.guid |
Пояснение к настройке "Параметр фильтра". В фильтре на вкладке Условия было оставлено пустое место в параметре "Список родителей субъекта" по параметру "guid". Поэтому и в параметрах фильтра необходимо выбрать этот же параметр. Тем самым мы говорим, что из фильтра необходимо брать к рассмотрению именно это условие – guid из списка родителей субъекта.
Пояснение к настройке "Параметр класса". [Объект] – это тот субъект, от которого будет вызываться отчет. Но для подстановки в условия фильтра необходимо брать не целый объект, а его параметр "guid". Поэтому и указываем [Объект].guid.
Пояснение к настройке "Название условия фильтра". Так как фильтр содержит лишь основное условие, поэтому ничего в этой ячейке не указываем.
В окне "Настройка сложной привязки к данным" делаем переименование названия привязки "Количество (guid)" в "Кол-во субъектов".
В шаблоне отчета вносим необходимые изменения в оформление, а так же добавляем привязку типа "Объект" к параметру "Название", чтобы было ясно, от какого субъекта вызывается отчет. Оформляем добавленную привязку в шаблоне. Сохраняем и выполняем отчет.
Пример одного из возможных результатов выполнения отчета "Количество должностей и подразделений" приведен на Рис. 3.
Для того чтобы быть уверенным в правильности всех выполненных шагов, рекомендуется для тестирования выбрать подразделение, где можно самостоятельно подсчитать количество должностей и подразделений, и проверить полученный результат с результатом в отчете.