Это старая версия документа.


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

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

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

  • как создавать, настраивать и сохранять фильтры (см. раздел Фильтры),
  • как создавать динамические и статические отчеты, добавлять в них привязки (см. раздел Отчеты),
  • как находить параметры справочников и связи между справочниками в Объектной модели (см. раздел Объектная модель).

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

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

Необходимо создать отчет формата 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. Один из возможных вариантов выполнения отчета.

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

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

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