Различия

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

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

ru:creating_user_reports:examples:subjects_count [2013/10/22 17:39]
radchenko [Закладка Условия]
ru:creating_user_reports:examples:subjects_count [2019/11/27 16:10] (текущий)
belkin [Вкладка Условия]
Строка 1: Строка 1:
 ====== Количество должностей и подразделений ====== ====== Количество должностей и подразделений ======
 + 
 +Рассмотрим пример создания отчета "Количество должностей и подразделений". 
  
-Пример создания отчета "Количество должностей и подразделений ".+Для понимания этой статьи требуется знание того: 
 +  * как создавать, настраивать и сохранять фильтры (см. [[/ru/manual/manual]] -&gt[[/ru/manual/filter]]), 
 +  * как создавать динамические и статические отчеты, добавлять в них привязки (см. [[/ru/manual/manual]] -> [[/ru/manual/report]]), 
 +  * как находить параметры справочников и связи между справочниками в **Объектной модели** (см. [[ru/creating_user_reports/report/object_model]], [[/ru/manual/manual]] -&gt[[/ru/manual/report/object_model]]).
  
-Для понимания этой статьи требуется, чтобы читатель знал: +Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов.
-  * как создавать, настраивать и сохранять фильтры (см. раздел [[/ru/manual/filter]]), +
-  * как создавать динамические и статические отчеты, добавлять в них привязки (см. раздел [[/ru/manual/report]]), +
-  * как находить параметры справочников и связи между справочниками в **Объектной модели** (см. раздел [[/ru/manual/report/object_model]]).+
  
-Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в программе, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов. 
 ===== Постановка задачи ===== ===== Постановка задачи =====
  
-Необходимо создать отчет формата Word, который будет запускаться от любого субъекта типа "Должность", "Подразделение" или "Папка". В отчете должна быть показана информация по количеству всех должностей и подразделений, которые находятся ниже по ветке дерева. Информация может быть показана в таблице, приведенной ниже.+Необходимо создать отчет формата MS Word, который будет запускаться от любого субъекта типа "Должность", "Подразделение" или "Папка". В отчете должна быть показана информация по количеству всех должностей и подразделений, которые находятся ниже по иерархии от субъекта, от которого вызван отчет. Информация должна быть представлена в виде таблицы, приведенной ниже.
 <startTableBox> <startTableBox>
-^  Типа субъекта  ^  Кол-во субъектов  ^+^  Тип субъекта  ^  Кол-во субъектов  ^
 | Подразделение |  X  | | Подразделение |  X  |
 | Должность |  Y  | | Должность |  Y  |
 <endTableBox| Таблица 1. Форма подачи информации по условиям задачи> <endTableBox| Таблица 1. Форма подачи информации по условиям задачи>
 +
 ===== Идея решения задачи ===== ===== Идея решения задачи =====
  
-По заданными условиям получить информацию напрямую в виде отдельного справочника нельзя, поэтому  для решения задачи необходимо будет выбирать данные из имеющихся справочников.+По заданными условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников.
  
-Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Кроме того, данные о количественных оценках чего-то в отчеты могут быть доставлены только через фильтры (закладка "Агрегаты") или с использованием кода VBA. Поэтому сначала необходимо создать фильтр, а потом уже создавать привязки в отчете.+Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Данные о количественных оценках в отчеты могут быть вставлены только с использованием фильтров (вкладка **Агрегаты**) или с использованием кода VBA. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете.
  
 Ключевым вопросом при решении является создание правильных условий фильтра. Ключевым вопросом при решении является создание правильных условий фильтра.
  
-Так как в условиях задачи стоит условие на вывод отчета не от всех субъектов, а только от конкретных типов, то для решения этой задачи тоже необходим фильтр.+Так как в условиях задачи стоит условие на вывод отчета не от всех субъектов, а только от субъектов конкретных типов, то для решения этой задачи тоже необходим фильтр.
  
-===== Создание фильтра "Для отчета кол-ва Д  и П" =====+===== Создание фильтра "Для отчета кол-ва Д и П" =====
  
 ==== Класс для построения фильтра ==== ==== Класс для построения фильтра ====
  
-Так как речь идет о создании фильтра для отчета по субъектам, поэтому и фильтр будет создаваться по справочнику "Субъекты".+Речь идет о создании фильтра для отчета по субъектам. Поэтому и фильтр будет создаваться по справочнику "Субъекты".
  
-==== Закладка "Условия" ====+==== Вкладка "Условия" ====
  
 В условиях фильтра необходимо указать конкретные типы субъектов, от которых будет выводиться отчет: Должность, Подразделение, Папка. В условиях фильтра необходимо указать конкретные типы субъектов, от которых будет выводиться отчет: Должность, Подразделение, Папка.
 <startTableBox> <startTableBox>
 ^  Параметр  ^  Тип  ^  Оператор  ^  Значение  ^  Не  ^  Потомки  ^ ^  Параметр  ^  Тип  ^  Оператор  ^  Значение  ^  Не  ^  Потомки  ^
-| Тип процесса | Список значений |  =  | Подразделение, Должность, Папка |   |   | +| Тип субъекта| Список значений |  =  | Подразделение, Должность, Папка |   |   | 
-<endTableBox| Таблица 2. Условия фильтра "Для отчета кол-ва Д и П".+<endTableBox| Таблица 2. Условия фильтра "Для отчета кол-ва Д и П"> 
-==== Закладка "Показ" ====+ 
 +==== Вкладка "Показ" ==== 
 + 
 +После создания условий можно закончить настройку фильтра и сохранить его в папке "Пользовательские фильтры" под названием "Для отчета кол-ва Д и П". Чтобы проверить, что настройка выполнена верно, можно вывести на показ параметры и выполнить фильтр.
  
-После создания условий можно закончить настройку фильтра и сохранить его в "Пользовательские фильтры" под названием "Для отчета кол-ва Д  и П". Но чтобы проверить, что настройка выполнена верно, можно вывести на показ параметры и выполнить фильтр. 
 <startTableBox> <startTableBox>
 ^  Показывать  ^  Параметр  ^ ^  Показывать  ^  Параметр  ^
 |  +  | Название | |  +  | Название |
 |  +  | Тип субъекта | |  +  | Тип субъекта |
-<endTableBox| Таблица 3. Настройка отображения параметров для показа фильтра "Для отчета кол-ва Д и П".>+<endTableBox| Таблица 3. Настройка отображения параметров для показа фильтра "Для отчета кол-ва Д и П"> 
 ===== Создание фильтра "Кол-во должностей и подразделений" ===== ===== Создание фильтра "Кол-во должностей и подразделений" =====
  
 ==== Класс для построения фильтра ==== ==== Класс для построения фильтра ====
  
-Так как в задаче речь идет только о типах субъектов и их количестве, то фильтр необходимо будет создавать по справочнику "Субъекты".+Так как в задаче речь идет о типах субъектов и их количестве, то фильтр необходимо будет создавать по справочнику "Субъекты".
  
-==== Закладка "Условия" ====+==== Вкладка "Условия" ====
  
 При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий: При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий:
  
   - Условия, отбирающие субъекты только с типами "Должность" и "Подразделение".   - Условия, отбирающие субъекты только с типами "Должность" и "Подразделение".
-  - Условия, указывающие, что субъект, который входит в подсчет количества, находится в нужной ветке. Для этих целей можно использовать параметр типа список "Список родителей субъекта".+  - Условия, указывающие, что субъект, который входит в подсчет количества, находится в нужной ветке иерархии. Для этих целей можно использовать параметр типа писок" -- "Список родителей субъекта".
  
 Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже. Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже.
 +
 <startTableBox> <startTableBox>
 ^  Параметр  ^  Тип  ^  Оператор  ^  Значение  ^  Не  ^  Потомки  ^ ^  Параметр  ^  Тип  ^  Оператор  ^  Значение  ^  Не  ^  Потомки  ^
Строка 67: Строка 73:
 | - guid | Значение |  =  |   |   |   | | - guid | Значение |  =  |   |   |   |
 | Тип субъекта | Список значений |  =  | Должность, Подразделение |   |   | | Тип субъекта | Список значений |  =  | Должность, Подразделение |   |   |
-<endTableBox| Таблица 4. Условия фильтра "Кол-во должностей и подразделений".>+<endTableBox| Таблица 4. Условия фильтра "Кол-во должностей и подразделений">
  
-**Пояснение по параметру "Список родителей субъекта".** Считаем, что субъект находится в нужной ветке, если среди его родителей есть субъект, от которого будет вызван отчет. Список, который содержит данные о родителях называется "Список родителей субъекта". Субъект, от которого вызывается отчет, будет определяться в момент вызова этого самого отчета. Поэтому конкретного значения в фильтре указать нельзя. Конкретное указание будет задаваться в настройках соответствия фильтра в **Мастере отчетов**.+**Пояснение по параметру "Список родителей субъекта".** Считаем, что субъект находится в нужной ветке иерархии, если среди его родителей есть субъект, от которого будет вызван отчет. Список, который содержит данные о родителях называется "Список родителей субъекта". Субъект, от которого вызывается отчет, будет определяться в момент вызова этого отчета. Поэтому конкретного значения в фильтре указать нельзя. Конкретное указание будет задаваться в настройках соответствия фильтра в **Мастере отчетов**.
  
-==== Закладка "Группировка" ====+==== Вкладка "Группировка" ====
  
-Найденные по условиям субъекты необходимо будет разделить на 2 группы для будущего подсчета количества: "Должности" и "Подразделения". Для этого на закладке "Группировканеобходимо указать, что группировку необходимо делать по параметру "Тип субъекта".+Найденные по условиям субъекты необходимо будет разделить на 2 группы для будущего подсчета количества: "Должности" и "Подразделения". Для этого на вкладке **Группировка** нужно указать, что группировку необходимо делать по параметру "Тип субъекта".
 <startTableBox> <startTableBox>
 ^  Группировать  ^  Параметр  ^  Шаг  ^ ^  Группировать  ^  Параметр  ^  Шаг  ^
 |  +  | Тип субъекта |   | |  +  | Тип субъекта |   |
-<endTableBox| Таблица 5. Настройка закладки "Группировка" фильтра "Кол-во должностей и подразделений".> +<endTableBox| Таблица 5. Настройки на вкладке "Группировка" фильтра "Кол-во должностей и подразделений">
-==== Закладка "Агрегаты" ====+
  
- Подсчет субъектов необходимо вести по параметру, который однозначно идентифицирует один субъект от других. Таким параметров является "guid". Поэтому на закладке "Агрегатыподсчет будет именно по этому параметру.+==== Вкладка "Агрегаты" ==== 
 + 
 +Подсчет субъектов необходимо вести по параметру, который однозначно идентифицирует одного субъекта от других. Таким параметров является "guid". Поэтому на вкладке **Агрегаты** подсчет будет именно по этому параметру.
 <startTableBox> <startTableBox>
 ^  Параметр  ^  Сумма  ^  Максимум  ^  Минимум  ^  Среднее  ^  Количество  ^ ^  Параметр  ^  Сумма  ^  Максимум  ^  Минимум  ^  Среднее  ^  Количество  ^
 | guid |   |   |   |   |  +  | | guid |   |   |   |   |  +  |
-<endTableBox| Таблица 6. Настройка закладки "Агрегаты" фильтра "Кол-во должностей и подразделений".+<endTableBox| Таблица 6. Настройки на вкладке "Агрегаты" фильтра "Кол-во должностей и подразделений"> 
-==== Закладка "Показ" ====+ 
 +==== Вкладка "Показ" ==== 
 + 
 +На вкладке **Показ** нет необходимости выставлять что-либо, так как настройка этой вкладки была предопределена настройками на вкладках **Группировка** и **Агрегаты**. Внешне она будет настроена так, как показано ниже.
  
-Нет необходимости выставлять что-либо на закладке "Показ", так как настройка этой закладки была предопределена настройками на закладках "Группировка" и "Агрегаты". Внешне она будет настроена так, как показано ниже. 
 <startTableBox> <startTableBox>
 ^  Показывать  ^  Параметр  ^ ^  Показывать  ^  Параметр  ^
 |   | Количество (guid) | |   | Количество (guid) |
 |  +  | Тип субъекта | |  +  | Тип субъекта |
-<endTableBox| Таблица 7. Вид настройки параметров на закладке "Показ" фильтра "Кол-во должностей и подразделений".>+<endTableBox| Таблица 7. Вид настройки параметров на вкладке "Показ" фильтра "Кол-во должностей и подразделений">
  
 ==== Сохранение фильтра ==== ==== Сохранение фильтра ====
  
-Сохраняем фильтр с названием " Кол-во должностей и подразделений ". Место сохранения -- Пользовательские фильтры.+Сохраняем фильтр с названием "Кол-во должностей и подразделений". Место сохранения -- папка "Пользовательские фильтры".
  
 ===== Создание отчета ===== ===== Создание отчета =====
  
-Так как отчет будет создаваться только от некоторых субъектов, то при его создании выбираем условия использования -- ранее созданный и сохраненный фильтр "Для отчета кол-ва Д  и П".+Так как отчет будет создаваться только от некоторых субъектов, то при его создании в **Мастере отчетов** выбираем условия использования -- ранее созданный и сохраненный фильтр "Для отчета кол-ва Д и П".
  
 ==== Добавление привязки ==== ==== Добавление привязки ====
  
-Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет и как будут выглядеть вставленные данные в отчете (см. [[ru/manual/report/types_anchor]]).+Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчети как будут выглядеть вставленные данные в отчете (см. [[/ru/manual/manual]] -> [[ru/manual/report/types_anchor]]).
  
 Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки -- "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Кол-во должностей и подразделений". Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки -- "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Кол-во должностей и подразделений".
  
-Для тогочтобы указать конкретный вызываемый субъект, от которого зависит выполнение фильтра, необходимо настроить соответствия фильтра.+Для того чтобы указать конкретный вызываемый субъект, от которого зависит выполнение фильтра, необходимо настроить соответствия фильтра. 
 <startTableBox> <startTableBox>
 ^  Название условия фильтра  ^  Параметр класса  ^  Параметр фильтра  | ^  Название условия фильтра  ^  Параметр класса  ^  Параметр фильтра  |
 |   | [Объект].guid | СписокРодителей.guid | |   | [Объект].guid | СписокРодителей.guid |
-<endTableBox| Таблица 8. Настройка соответствий фильтра "Кол-во должностей и подразделений".>+<endTableBox| Таблица 8. Настройка соответствий фильтра "Кол-во должностей и подразделений">
  
-**Пояснение к настройке "Параметр фильтра"**. В фильтре на закладке "Условиябыло оставлено пустое место в параметре типа список "Список родителей субъекта" по параметру "guid". Поэтому и в параметрах фильтра необходимо выбрать этот же параметр. Тем самым мы говорим, что из фильтра необходимо брать к рассмотрению именно это условие -- guid из списка родителей субъекта.+**Пояснение к настройке "Параметр фильтра"**. В фильтре на вкладке **Условия** было оставлено пустое место в параметре "Список родителей субъекта" по параметру "guid". Поэтому и в параметрах фильтра необходимо выбрать этот же параметр. Тем самым мы говорим, что из фильтра необходимо брать к рассмотрению именно это условие -- guid из списка родителей субъекта.
  
-**Пояснение к настройке "Параметр класса"**.  [Объект] -- это тот субъект, от которого будет вызываться отчет. Но для подстановки в условия фильтра необходимо брать не целый объект, а его параметр "guid". Поэтому  и указываем [Объект].guid.+**Пояснение к настройке "Параметр класса"**.  [Объект] -- это тот субъект, от которого будет вызываться отчет. Но для подстановки в условия фильтра необходимо брать не целый объект, а его параметр "guid". Поэтому и указываем [Объект].guid.
  
 **Пояснение к настройке  "Название условия фильтра"**. Так как фильтр содержит лишь основное условие, поэтому ничего в этой ячейке не указываем. **Пояснение к настройке  "Название условия фильтра"**. Так как фильтр содержит лишь основное условие, поэтому ничего в этой ячейке не указываем.
  
-В окне "Настройка сложной привязки к данным" делаем переименование параметра "Количество (guid)" в "Кол-во субъектов".+В окне "Настройка сложной привязки к данным" делаем переименование названия привязки "Количество (guid)" в "Кол-во субъектов".
  
-[{{ ru:creating_user_reports:examples:subjects_count:pic1.png?nolink | Рисунок 1. Вид окна "Настройка сложной привязки к даннымпосле всех необходимых настроек.}}] +[{{ ru:creating_user_reports:examples:subjects_count:pic1.png?nolink | Рисунок 1. Вид окна **Настройка сложной привязки к данным** после всех необходимых настроек}}] 
  
 ==== Редактирование шаблона ==== ==== Редактирование шаблона ====
  
-В шаблоне отчета вносим необходимые внешние изменения, а так же добавляем привязку типа "Объект" по параметру "Название", чтобы было ясно от какого субъекта вызывается отчета и оформляем соответственно в шаблоне. Сохраняем и выполняем отчет.+В шаблоне отчета вносим необходимые изменения в оформление, а так же добавляем привязку типа "Объект" к параметру "Название", чтобы было ясноот какого субъекта вызывается отчет. Оформляем добавленную привязку в шаблоне. Сохраняем и выполняем отчет.
  
-[{{ ru:creating_user_reports:examples:subjects_count:pic2.png?nolink | Рисунок 2. Вид привязки типа фильтр "Процессы без единого субъекта" в окне шаблона отчета.}}] +[{{ ru:creating_user_reports:examples:subjects_count:pic2.png?nolink | Рисунок 2. Вид привязки "Процессы без единого субъекта" типа "Фильтр" в окне шаблона отчета}}] 
  
 ===== Результат ===== ===== Результат =====
  
-[{{ ru:creating_user_reports:examples:subjects_count:pic3.png?nolink | Рисунок 3. Один из возможных вариантов выполнения отчета+Пример одного из возможных результатов выполнения отчета "Количество должностей и подразделений" приведен на Рис. 3. 
-}}] + 
 +[{{ ru:creating_user_reports:examples:subjects_count:pic3.png?nolink | Рисунок 3. Пример выполнения отчета "Количество должностей и подразделений"}}] 
 ===== Рекомендация ===== ===== Рекомендация =====
  
-Для тогочтобы быть уверенным в правильности всех выполненных шагов, рекомендуется для тестирования выбрать небольшое подразделение, где легко подсчитать количество должностей и подразделений.+Для того чтобы быть уверенным в правильности всех выполненных шагов, рекомендуется для тестирования выбрать подразделение, где можно самостоятельно подсчитать количество должностей и подразделений, и проверить полученный результат с результатом в отчете. 
 + 
 + 
 + 
 + 
 +[<contextnavigator>] 
 + 
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki