Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:creating_user_reports:examples:parent_top [2020/07/23 16:28] 192.168.1.126 удалено |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Родитель верхнего уровня ====== | ||
- | |||
- | Рассмотрим пример создания отчета "Родитель верхнего уровня". | ||
- | Для понимания этой статьи требуется знание того: | ||
- | * как создавать, настраивать и сохранять фильтры (см. [[/ru/manual/manual]] -> [[/ru/manual/filter]]), | ||
- | * как создавать динамические и статические отчеты, добавлять в них привязки (см. [[/ru/manual/manual]] -> [[/ru/manual/report]]), | ||
- | * как находить параметры справочников и связи между справочниками в **Объектной модели** ({{bslink>Главное меню → Отчеты → Объектная модель|ShowRibbonPageOrItem?c639ba43-ff15-4caf-ab36-0d938fe0a7a3;730e73fb-b31c-4f50-b9d6-49d7c04fee67:Item}}) (см. [[/ru/manual/manual]] -> [[/ru/manual/report/object_model]]). | ||
- | |||
- | Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в программе, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов. | ||
- | |||
- | ===== Постановка задачи ===== | ||
- | |||
- | Необходимо создать отчет формата MS Word, который может вызываться от любого процесса. В отчете должно выводиться предложение, которое будет формироваться по шаблону: | ||
- | |||
- | <code> | ||
- | Процесс "<Название процесса, от которого выполняется отчет>" входит в ветку "<Название процесса -- ключевого родителя ветки>". | ||
- | </code> | ||
- | |||
- | Под ключевым родителем ветки понимается процесс вида А1, А2, …, Аn. Т.е. это процесс, находящийся на диаграмме А0. | ||
- | |||
- | ===== Идея решения задачи ===== | ||
- | |||
- | Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет и как будут выглядеть вставленные данные в отчете (см. [[/ru/manual/manual]] -> [[ru/manual/report/types_anchor]]). Как видно из заданного шаблона предложения, в отчет необходимо вставить данные двух привязок. | ||
- | |||
- | - <Название процесса, от которого выполняется отчет> - привязка типа "Объект" по параметру "Название". Наиболее частая и первая привязка во всех динамических отчетах. | ||
- | - <Название процесса -- ключевого родителя ветки> - привязка типа "BAND" по списку "Список родителей процесса" с фильтром. | ||
- | |||
- | **Пояснение к выбору привязки по ключевому родителю.** Ключевой родитель ветки -- это процесс, стоящий выше по ветке процесса, от которого вызывается отчет. Список всех процессов, выше выбранного, можно получить через нехранимый параметр "Список родителей процесса" типа "Список". | ||
- | |||
- | Так как из списка родителей необходимо отобрать только одного родителя, и представить эти данные не в виде списка, а в виде отдельного значения, то необходимо выбрать привязку типа "BAND". | ||
- | |||
- | Добавление фильтра к выбранной привязке оставит в списке только один процесс -- ключевой родитель. | ||
- | |||
- | ===== Создание отчета ===== | ||
- | |||
- | В **Мастере отчетов** создается отчет по процессу. В шаблоне отчета создается текст по заданному ранее формату (шаблону). Оставляется место, необходимое для последующей вставки привязок. | ||
- | |||
- | ==== Добавление первой привязки ==== | ||
- | |||
- | В место, где необходимо вставить название процесса, от которого вызывается отчет, производится вставка привязки типа "Объект" по параметру "Название". | ||
- | |||
- | ==== Добавление второй привязки ==== | ||
- | |||
- | В место, где необходимо вставить название родителя, производится вставка привязки типа "BAND" по параметру "Список родителей процесса". В настройках сложной привязки в качестве выбранного параметра для вывода выбираем "Название". | ||
- | |||
- | [{{ ru:creating_user_reports:examples:parent_top:change_pic1.png?nolink | Рисунок 1. Вид настройки сложной привязки по привязке типа BAND (без добавления фильтра)}}] | ||
- | |||
- | ==== Редактирование шаблона ==== | ||
- | |||
- | После добавления привязки в шаблон отчета и компоновки закладок привязки, шаблон отчета будет иметь вид, приведенный ниже. | ||
- | |||
- | [{{ ru:creating_user_reports:examples:parent_top:lang_pic2.png?nolink | Рисунок 2. Вид шаблона отчета}}] | ||
- | |||
- | ==== Добавление фильтра ко второй привязке ==== | ||
- | |||
- | В привязке типа "BAND" осталось произвести фильтрацию так, чтобы список содержал только 1 процесс из списка всех родителей-процессов. Ключевым параметром, значения которого являются неповторимыми для процессов одной ветки, является параметр "Уровень в модели". Для процессов вида А1, А2, …, Аn -- значение этого параметра равно 1. | ||
- | |||
- | В окне **Привязки отчетов** через контекстное меню привязки типа "BAND" создаем и сохраняем фильтр по параметру класса с названием "Родитель процесса.Уровень=1" в папке "Пользовательские фильтры". В основном условии фильтра задаются необходимые условия. | ||
- | <startTableBox> | ||
- | ^ Параметр ^ Тип ^ Оператор ^ Значение ^ Не ^ Потомки ^ | ||
- | | Уровень в модели | Значение | = | 1 | | | | ||
- | | Тип процесса | Значение | = | IDEF0 | | | | ||
- | <endTableBox| Таблица 1. Условия фильтра> | ||
- | |||
- | **Пояснение к параметру "Тип процесса"**. Так как этот параметр является хранимым, то это условие по нему позволит сократить время выполнения фильтра, а следовательно, и время выполнения отчета. При этом предполагается, что все процессы этого уровня будут с типом IDEF0. | ||
- | |||
- | [{{ ru:creating_user_reports:examples:parent_top:change_pic3.png?nolink | Рисунок 3. Вид привязки типа "BAND" с настроенным фильтром}}] | ||
- | |||
- | ==== Сохранение отчета ==== | ||
- | |||
- | Сохраняем отчет под названием "Родитель верхнего уровня" в папке "Пользовательские отчеты". | ||
- | |||
- | ===== Результат ===== | ||
- | |||
- | Пример одного из возможных результатов выполнения отчета "Родитель первого уровня" приведен на Рис. 4. | ||
- | |||
- | [{{ ru:creating_user_reports:examples:parent_top:lang_pic4.png?nolink | Рисунок 4. Пример выполнения отчета "Родитель первого уровня"}}] | ||
- | |||
- | [<contextnavigator>] |