|
<< Click to Display Table of Contents >> Алгоритм формирования отчета |
Технологический документ создается путем автоматического заполнения шаблона приложения ВЕРТИКАЛЬ-Отчеты по алгоритму, представленному ниже в таблице.
|
№ шага |
Действие |
Глобальная функция / функция документа |
||||||
|---|---|---|---|---|---|---|---|---|---|
|
1 |
Подготовка к построению отчета |
— |
||||||
|
|
|
Инициализация параметров формирователя |
— |
|||||
|
|
|
Загрузка шаблонов, выбранных для формирования отчета |
— |
|||||
|
|
|
Формирование дерева объектов для формирователя отчета |
— |
|||||
|
|
|
|
Наполнение дерева объектов в соответствии с настройкой дерева «Формирователь отчетов», выполненной в приложении ВЕРТИКАЛЬ Редактор настроек |
— |
||||
|
|
|
|
Перестроение дерева объектов |
Глобальная функция RebuildProcessableTree |
||||
2 |
Подготовка формирователя к построению отчета |
Глобальная функция BeforeBuild |
|||||||
|
3 |
Формирование единичных отчетов по каждому шаблону комплекта шаблонов |
— |
||||||
|
|
|
Определение в исходном дереве головного объекта дерева в зависимости от типа шаблона (см. Примечание 2) |
— |
|||||
|
|
|
Перестроение дерева объектов |
RebuildProcessableTree |
|||||
|
|
|
Подготовка к формированию единичного отчета |
Глобальная функция BeforeBuildDocument |
|||||
|
|
|
Обработка шаблона |
BeforeBuild |
|||||
|
|
|
Формирование единичных отчетов по каждому шаблону для каждого головного объекта |
— |
|||||
|
|
|
|
Построение промежуточных слоев данных для каждой модели вывода, которая связана с областью (областями) вывода в шаблоне |
— |
||||
|
|
|
Подготовка к заполнению промежуточного слоя |
BeforeFillDataLayer |
|||||
|
|
|
Обход дерева объектов (перебор объектов в порядке их расположения в дереве объектов) |
— |
|||||
|
|
|
|
Подготовка обработки объекта |
BeforeObjectProcessing |
||||
|
|
|
|
Обработка объекта: 1. Вычисляется OCL-выражение (если оно задано). 2. Вызов функции заполнения, заданной для ячейки секции модели вывода. |
Fill |
||||
|
|
|
|
Завершение обработки объекта |
AfterObjectProcessing |
||||
|
|
|
|
Обработка дочерних объектов текущего объекта |
— |
||||
|
|
|
Завершение заполнения промежуточного слоя |
AfterFillDataLayer |
|||||
|
|
Определение страницы шаблона |
— |
||||||
|
|
Копирование страницы шаблона в отчет |
— |
||||||
|
|
Инициализация страницы шаблона |
BeforeFill |
||||||
|
|
Заполнение страницы отчета данными |
— |
||||||
|
|
|
Заполнение прямоугольников и таблиц |
— |
|||||
|
|
|
|
Обработка объектов: 1. Вычисляется OCL-выражение (если оно задано). 2. Вызов функции заполнения, заданной для прямоугольника/ячейки таблицы. |
Fill |
||||
|
|
|
Заполнение области вывода |
— |
|||||
|
|
|
|
Преобразование области вывода в таблицу |
— |
||||
|
|
|
|
Подготовка заполнения таблицы отчета |
BeforeFillReportTable |
||||
|
|
|
|
Заполнение таблицы |
— |
||||
|
|
|
|
|
Обработка объекта до его вывода в таблицу из промежуточного слоя |
BeforeOutputObject |
|||
|
|
|
|
|
Вывод данных по объекту из промежуточного слоя в таблицу |
— |
|||
|
|
|
|
|
|
Подготовка заполнения строки таблицы отчета |
BeforeFillReportTableRow |
||
|
|
|
|
|
|
Заполнение строки таблицы отчета |
— |
||
|
|
|
|
|
|
Завершение заполнения строки таблицы отчета |
AfterFillReportTableRow |
||
|
|
|
|
|
Завершение обработки объекта после его вывода в таблицу |
AfterOutputObject |
|||
|
|
|
|
Завершение заполнения таблицы отчета |
AfterFillReportTable |
||||
|
|
Завершение заполнения страницы данными. Получение индекса следующей страницы шаблона |
AfterFill |
||||||
|
|
Если следующая страница шаблона = текущей и все промежуточные слои опустошены — выход из цикла |
— |
||||||
|
Завершение формирования единичных отчетов |
Глобальная функция AfterBuildDocument |
|||||||
|
Завершение обработки шаблона |
AfterBuild |
|||||||
|
Добавление единичных отчетов для операционных шаблонов при использовании режима «перестановки шаблонов» (см. Примечание 4) |
— |
|||||||
4 |
Завершение формирования отчета |
Глобальная функция AfterBuild |
|||||||
|
|
Заполнение объектов шаблона, помеченных маркерами, в том числе простановка номеров страниц и количества страниц |
Глобальная функция FillPageNumbers |
||||||
5 |
Сборка документов в комплект |
— |
|||||||
Примечания к алгоритму:
1.Применяемые термины:
Единичный отчет — отчет, сформированный по определенному шаблону для головного объекта (технология или операция).
Промежуточный слой — последовательность промежуточных таблиц с данными, построенных по таблице каждой секции модели вывода.
2.Если шаблон простой, то головным объектом является технология (один объект).
Если шаблон операционный, то головным объектом является каждая операция (список операций техпроцесса).
3.Определение стартового индекса страницы.
После вызова функции документа RebuildProcessableTree выполняется определение стартового индекса страницы.
Например, если нужно объединять отчеты по операции, то задается стартовый индекс страницы. По умолчанию стартовый индекс задан в коде, при необходимости его изменения использовать функцию страницы BeforeFill.
Если включена опция Объединять операционные документы, то при формировании карты ОК и КЭ для карты КЭ стартовый индекс страницы = 2.
4.Особенности добавления единичных отчетов для операционных шаблонов при использовании режима «перестановки шаблонов».
Если нужно объединять страницы отчетов по операции и в построенных отчетах уже есть отчет по указанной операции, то страницы нового отчета "переносятся" в основной отчет, затем производится переход к следующему объекту.
Если включена перестановка шаблонов и построен отчет по указанной операции, то единичный отчет вставляется после последнего построенного отчета по операции, затем производится переход к следующему объекту.
5.Особенности построения меташаблонов.
Формирование меташаблонов выполняется на шаге 3 аналогично простым/операционным шаблонам.
После шага 4 происходит оценка необходимости новой итерации полного построения отчетов (перестроение необходимо, когда предыдущий и текущий результаты построения не совпадут по наполнению). То есть при наличии в картах меташаблона, отчеты будут построены минимум 2 раза (чтобы сравнить текущий и предыдущий результаты).
Шаг 5 выполняется всегда 1 раз — когда построение единичных отчетов полностью завершено.
Особенности меташаблонов:
•Используют данные других отчетов (например, ЛРИ использует данные о статусе страниц других отчетов).
•При их наличии включается итерационное построение.
|
Некоторые действия алгоритма формирования отчетов пользователь может переопределить по своему усмотрению при помощи глобальных функций и/или функций документа, написанных на C#. |
Во всех функциях, вызываемых формирователем, помимо явно передаваемых параметров определена переменная ReportBuilder класса ReportBuilder.
|
Описание API основной библиотеки отчетов Ascon.Reports.dll можно найти в справочной документации, расположенной на диске в папке ...\ASCON\Commons\net48\SDK, а описание API библиотеки формирователя отчетов Ascon.Vertical.Reports.Builder.dll — в папке ...ASCON\Vertical\SDK. Чтобы открыть документацию, необходимо запустить файл Documentation.bat. |