Количество должностей и подразделений

Рассмотрим пример создания отчета "Количество должностей и подразделений".

Для понимания этой статьи требуется знание того:

Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов.

Постановка задачи

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

Тип субъекта Кол-во субъектов
Подразделение X
Должность Y
Таблица 1. Форма подачи информации по условиям задачи

Идея решения задачи

По заданными условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников.

Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Данные о количественных оценках в отчеты могут быть вставлены только с использованием фильтров (вкладка Агрегаты) или с использованием кода VBA. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете.

Ключевым вопросом при решении является создание правильных условий фильтра.

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

Создание фильтра "Для отчета кол-ва Д и П"

Класс для построения фильтра

Речь идет о создании фильтра для отчета по субъектам. Поэтому и фильтр будет создаваться по справочнику "Субъекты".

Вкладка "Условия"

В условиях фильтра необходимо указать конкретные типы субъектов, от которых будет выводиться отчет: Должность, Подразделение, Папка.

Параметр Тип Оператор Значение Не Потомки
Тип субъекта Список значений = Подразделение, Должность, Папка    
Таблица 2. Условия фильтра "Для отчета кол-ва Д и П"

Вкладка "Показ"

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

Показывать Параметр
+ Название
+ Тип субъекта
Таблица 3. Настройка отображения параметров для показа фильтра "Для отчета кол-ва Д и П"

Создание фильтра "Кол-во должностей и подразделений"

Класс для построения фильтра

Так как в задаче речь идет о типах субъектов и их количестве, то фильтр необходимо будет создавать по справочнику "Субъекты".

Вкладка "Условия"

При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий:

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

Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже.

Параметр Тип Оператор Значение Не Потомки
Список родителей субъекта Подфильтр =      
- guid Значение =      
Тип субъекта Список значений = Должность, Подразделение    
Таблица 4. Условия фильтра "Кол-во должностей и подразделений"

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

Вкладка "Группировка"

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

Группировать Параметр Шаг
+ Тип субъекта  
Таблица 5. Настройки на вкладке "Группировка" фильтра "Кол-во должностей и подразделений"

Вкладка "Агрегаты"

Подсчет субъектов необходимо вести по параметру, который однозначно идентифицирует одного субъекта от других. Таким параметров является "guid". Поэтому на вкладке Агрегаты подсчет будет именно по этому параметру.

Параметр Сумма Максимум Минимум Среднее Количество
guid         +
Таблица 6. Настройки на вкладке "Агрегаты" фильтра "Кол-во должностей и подразделений"

Вкладка "Показ"

На вкладке Показ нет необходимости выставлять что-либо, так как настройка этой вкладки была предопределена настройками на вкладках Группировка и Агрегаты. Внешне она будет настроена так, как показано ниже.

Показывать Параметр
  Количество (guid)
+ Тип субъекта
Таблица 7. Вид настройки параметров на вкладке "Показ" фильтра "Кол-во должностей и подразделений"

Сохранение фильтра

Сохраняем фильтр с названием "Кол-во должностей и подразделений". Место сохранения – папка "Пользовательские фильтры".

Создание отчета

Так как отчет будет создаваться только от некоторых субъектов, то при его создании в Мастере отчетов выбираем условия использования – ранее созданный и сохраненный фильтр "Для отчета кол-ва Д и П".

Добавление привязки

Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет, и как будут выглядеть вставленные данные в отчете (см. Руководство пользователяТипы привязок и работа с ними).

Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки – "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Кол-во должностей и подразделений".

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

Название условия фильтра Параметр класса Параметр фильтра
  [Объект].guid СписокРодителей.guid
Таблица 8. Настройка соответствий фильтра "Кол-во должностей и подразделений"

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

Пояснение к настройке "Параметр класса".  [Объект] – это тот субъект, от которого будет вызываться отчет. Но для подстановки в условия фильтра необходимо брать не целый объект, а его параметр "guid". Поэтому и указываем [Объект].guid.

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

В окне "Настройка сложной привязки к данным" делаем переименование названия привязки "Количество (guid)" в "Кол-во субъектов".

Рисунок 1. Вид окна Настройка сложной привязки к данным после всех необходимых настроек

Редактирование шаблона

В шаблоне отчета вносим необходимые изменения в оформление, а так же добавляем привязку типа "Объект" к параметру "Название", чтобы было ясно, от какого субъекта вызывается отчет. Оформляем добавленную привязку в шаблоне. Сохраняем и выполняем отчет.

Рисунок 2. Вид привязки "Процессы без единого субъекта" типа "Фильтр" в окне шаблона отчета

Результат

Пример одного из возможных результатов выполнения отчета "Количество должностей и подразделений" приведен на Рис. 3.

Рисунок 3. Пример выполнения отчета "Количество должностей и подразделений"

Рекомендация

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

« ПредыдущаяНа уровень вышеСледующая »
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki