Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:creating_user_reports:examples:proc_without_subjects [2013/10/22 17:33] radchenko [Сохранение фильтра] |
ru:creating_user_reports:examples:proc_without_subjects [2019/02/18 15:33] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Процессы без субъектов ====== | ====== Процессы без субъектов ====== | ||
- | Пример создания отчета "Процессы без субъектов". | + | Рассмотрим пример создания отчета "Процессы без субъектов". |
+ | |||
+ | Для понимания этой статьи требуется знание того: | ||
+ | * как создавать, настраивать и сохранять фильтры (см. [[/ru/manual/manual]] -> [[/ru/manual/filter]]); | ||
+ | * как создавать динамические и статические отчеты, добавлять в них привязки (см. [[/ru/manual/manual]] -> [[/ru/manual/report]]); | ||
+ | * как находить параметры справочников и связи между справочниками в **Объектной модели** (см. [[ru/creating_user_reports/report/object_model]], [[/ru/manual/manual]] -> [[/ru/manual/report/object_model]]). | ||
- | Для понимания этой статьи требуется, чтобы читатель знал: | + | Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов. |
- | * как создавать, настраивать и сохранять фильтры (см. раздел [[/ru/manual/filter]]), | + | |
- | * как создавать динамические и статические отчеты, добавлять в них привязки (см. раздел [[/ru/manual/report]]), | + | |
- | * как находить параметры справочников и связи между справочниками в **Объектной модели** (см. раздел [[/ru/manual/report/object_model]]). | + | |
- | + | ||
- | Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в программе, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов. | + | |
===== Постановка задачи ===== | ===== Постановка задачи ===== | ||
- | Необходимо создать отчет формата Word. В отчете должен быть список процессов, за которым никто ни в каком виде не отвечает. Т.е. процессы, у которых на закладке "Субъекты" нет ни одного субъекта. | + | Необходимо создать отчет формата MS Word. В отчете должен выводиться список процессов, за которые никто не отвечает. Т.е. процессы, у которых на вкладке **Субъекты** (**Окно свойств** процесса -> вкладка **Основные**) нет связей с субъектами. |
===== Идея решения задачи ===== | ===== Идея решения задачи ===== | ||
- | По заданными условиям получить информацию напрямую в виде отдельного справочника нельзя, поэтому для решения задачи необходимо будет выбирать данные из имеющихся справочников. Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Поэтому сначала необходимо создать фильтр, а потом уже создавать привязки в отчете. | + | По заданными условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников. Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете. |
- | Ключевым вопросом при решении является создание правильных условий фильтра. | + | Ключевым вопросом при решении задачи является создание правильных условий фильтра. |
===== Создание фильтра ===== | ===== Создание фильтра ===== | ||
Строка 24: | Строка 24: | ||
==== Класс для построения фильтра ==== | ==== Класс для построения фильтра ==== | ||
- | В свойствах процесса можно увидеть наличие или отсутствия связи с субъектом через закладку "Субъекты". Эта закладка представляет данные по параметру типа "Список" у справочника "Процесс". Поэтому, задавать условия выборки процессов будем через фильтр по справочнику "Процессы". | + | В **Окне свойств** процесса можно увидеть наличие или отсутствия связи с субъектом на вкладке **Субъекты**. Эта вкладка представляет данные по параметру типа "Список" в справочнике "Процессы". Поэтому задавать условия выборки процессов необходимо в фильтре по справочнику "Процессы". |
- | ==Внимание!== | + | == Внимание! == |
+ | В справочнике "Процессы" нехранимый параметр типа список "Субъекты" ссылается на справочник "Связи субъекта с процессом" (**Главное меню** -> **Отчеты** -> **Объектная модель** -> "Классы" -> "Общие связи" -> "БизнесМодель.СвязиПроцессов"). Именно в этом справочнике хранится информация о всех связях субъектов с процессами. Но этот справочник показывает лишь то, какие связи есть, и не фиксирует отсутствующие связи. Поэтому использовать данный справочник для решения поставленной задачи не представляется возможным. | ||
+ | ==== ==== | ||
- | В справочнике "Процессы" нехранимый параметр типа список "Субъекты" ссылается на справочник "Связи субъекта с процессом" (**Главное меню → Отчеты → Объектная модель → Классы → Общие связи → БизнесМодель.СвязиПроцессов**). Именно в этом справочнике и хранится информация о всех связях процессов и субъектов. Но этот справочник показывает лишь то, какие связи есть, и не фиксирует отсутствующие связи. Поэтому использовать данный справочник для решения поставленной задачи не представляется возможным. | + | ==== Вкладка "Условия" ==== |
- | ====== ====== | + | |
- | ==== Закладка "Условия" ==== | + | |
- | При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий: | + | При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий фильтра: |
- | - Условия, отбирающие процессы без субъектов: не должно быть никаких строк с субъектами на закладке "Субъекты". | + | - Условия, отбирающие процессы без связей с субъектами: не должно быть никаких строк с субъектами на вкладке **Субъекты**. |
- Технические условия, которые отберут только принятые в рабочей практике процессы: процессы с типами, отличными от используемых в работе типов процессов (папка, внешняя ссылка, служебный). | - Технические условия, которые отберут только принятые в рабочей практике процессы: процессы с типами, отличными от используемых в работе типов процессов (папка, внешняя ссылка, служебный). | ||
Строка 41: | Строка 41: | ||
^ Параметр ^ Тип ^ Оператор ^ Значение ^ Не ^ Потомки ^ | ^ Параметр ^ Тип ^ Оператор ^ Значение ^ Не ^ Потомки ^ | ||
| Субъекты | Подфильтр | = | | + | | | | Субъекты | Подфильтр | = | | + | | | ||
- | | - Субъект | Значение | = | | + | | | + | | - Субъект | Значение | = | | + | | |
| Тип процесса | Список значений | = | Папка, Внешняя ссылка, Служебный | + | | | | Тип процесса | Список значений | = | Папка, Внешняя ссылка, Служебный | + | | | ||
<endTableBox| Таблица 1. Условия фильтра> | <endTableBox| Таблица 1. Условия фильтра> | ||
- | **Пояснение по параметру "Субъекты".** | + | **Пояснение по параметру "Субъекты".** В параметре типа список "Субъекты" необходимо указать, что субъектов в нем нет. Для этого: |
- | + | ||
- | В параметре типа список "Субъекты" необходимо указать, что субъектов в нем нет. Для этого: | + | |
- Указывается, что у параметра "Субъекты" есть непустое значение по объектному параметру "Субъект". Т.е. указываем на то, что какая-либо связь с субъектом есть. | - Указывается, что у параметра "Субъекты" есть непустое значение по объектному параметру "Субъект". Т.е. указываем на то, что какая-либо связь с субъектом есть. | ||
- На уровне параметра "Субъекты" делается отрицание заданного выше условия. Т.е. отрицание того, что у процесса есть связь с субъектом. | - На уровне параметра "Субъекты" делается отрицание заданного выше условия. Т.е. отрицание того, что у процесса есть связь с субъектом. | ||
- | Различные условия в параметрах списка "Субъекты" означали бы условия в уже имеющихся связях процесса с субъектами. | + | ==== Вкладка "Показ" ==== |
- | + | ||
- | ==== Закладка "Показ" ==== | + | |
На показ будут выводиться названия процессов. | На показ будут выводиться названия процессов. | ||
Строка 59: | Строка 55: | ||
^ Показывать ^ Параметр ^ | ^ Показывать ^ Параметр ^ | ||
| + | Название | | | + | Название | | ||
- | <endTableBox| Таблица 2. Настройка отображения параметров для показа.> | + | <endTableBox| Таблица 2. Настройка отображения параметров для показа> |
- | Для того, чтобы данные показывались в порядке кодов, необходимо в сортировку перенести параметр "Автокод для сортировки". | + | Для того чтобы данные были отсортированы по коду процесса, необходимо в добавить сортировку по параметру "Иерархический код для сортировки". |
<startTableBox> | <startTableBox> | ||
^ Параметр ^ Направление ^ | ^ Параметр ^ Направление ^ | ||
- | | Автокод для сортировки | По возрастанию | | + | | Иерархический код для сортировки | По возрастанию | |
- | <endTableBox| Таблица 3. Настройка сортировки списка по "Автокоду".> | + | <endTableBox| Таблица 3. Настройка сортировки списка по параметру "Иерархический код для сортировки"> |
==== Сохранение фильтра ==== | ==== Сохранение фильтра ==== | ||
- | Сохраняем фильтр с названием "Процессы без единого субъекта". Место сохранения - "Пользовательские фильтры". | + | Сохраняем фильтр с названием "Процессы без единого субъекта". Место сохранения - папка "Пользовательские фильтры". |
===== Создание отчета ===== | ===== Создание отчета ===== | ||
- | Так как отчет будет создаваться для всех процессов и не зависит от объекта, от которого он будет вызван, то логичным будет создание статического отчета. Создаем статический отчет с названием "Процессы без субъектов" и переходим к его редактированию в Мастере отчетов. | + | Так как отчет будет выводиться для всех процессов и не зависит от объекта, от которого он будет вызван, то логичным будет создание статического отчета. Создаем статический отчет с названием "Процессы без субъектов" и переходим к его редактированию в **Мастере отчетов**. |
==== Добавление привязки ==== | ==== Добавление привязки ==== | ||
- | Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет и как будут выглядеть вставленные данные в отчете (см. [[ru/manual/report/types_anchor]]). | + | Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет, и как будут выглядеть вставленные данные в отчете (см. [[/ru/manual/manual]] -> [[ru/manual/report/types_anchor]]). |
Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки -- "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Процессы без единого субъекта". | Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки -- "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Процессы без единого субъекта". | ||
- | В окне "Настройка сложной привязки к данным" делаем: | + | В окне **Настройка сложной привязки к данным** выполняем: |
- | * переименование параметра "Название" в "Процесс", | + | * переименование привязки к параметру "Название" в привязку "Процесс"; |
- | * добавление привязки типа "Нумератор" и переносим привязку типа "Нумератор" вверх списка. | + | * добавление привязки типа "Нумератор" и перенос привязки типа "Нумератор" на первое место в списке привязок. |
- | [{{ ru:creating_user_reports:examples:proc_without_subjects:pic1.png?nolink | Рисунок 1. Вид окна "Настройка сложной привязки к данным" после всех необходимых настроек.}}] | + | [{{ ru:creating_user_reports:examples:proc_without_subjects:pic1.png?nolink | Рисунок 1. Вид окна **Настройка сложной привязки к данным** после всех необходимых настроек}}] |
==== Редактирование шаблона ==== | ==== Редактирование шаблона ==== | ||
- | В шаблоне отчета вносим необходимые внешние изменения, сохраняем и выполняем отчет. | + | В шаблоне отчета вносим необходимые изменения в оформление, сохраняем и выполняем отчет. |
- | [{{ ru:creating_user_reports:examples:proc_without_subjects:pic2.png?nolink | Рисунок 2. Вид привязки типа фильтр "Процессы без единого субъекта" в окне шаблона отчета. | + | |
- | }}] | + | [{{ ru:creating_user_reports:examples:proc_without_subjects:pic2.png?nolink | Рисунок 2. Вид привязки "Процессы без единого субъекта" (тип "Фильтр") в шаблоне отчета}}] |
===== Результат ===== | ===== Результат ===== | ||
- | [{{ ru:creating_user_reports:examples:proc_without_subjects:pic3.png?nolink | Рисунок 3. Один из возможных вариантов выполнения отчета "Процессы без субъектов" | + | |
- | }}] | + | Пример одного из возможных результатов выполнения отчета "Процессы без субъектов" приведен на Рис. 3. |
+ | |||
+ | [{{ ru:creating_user_reports:examples:proc_without_subjects:pic3.png?nolink | Рисунок 3. Пример выполнения отчета "Процессы без субъектов"}}] | ||
===== Рекомендация ===== | ===== Рекомендация ===== | ||
- | Для того, чтобы быть уверенным в правильности всех выполненных шагов, рекомендуется создать объекты для тестирования: хотя бы один процесс, который известен заранее, должен быть без субъектов. | + | Для того чтобы быть уверенным в правильности всех выполненных шагов, рекомендуется создать объекты для тестирования: хотя бы один процесс должен быть без связей с субъектами. |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [<contextnavigator>] | ||