Алгоритм формирования отчета

<< 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 раз — когда построение единичных отчетов полностью завершено.

Особенности меташаблонов:

Используют данные других отчетов (например, ЛРИ использует данные о статусе страниц других отчетов).

При их наличии включается итерационное построение.

note

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

Во всех функциях, вызываемых формирователем, помимо явно передаваемых параметров определена переменная ReportBuilder класса ReportBuilder.

note

Описание API основной библиотеки отчетов Ascon.Reports.dll  можно найти в справочной документации, расположенной на диске в папке ...\ASCON\Commons\net48\SDK, а описание API библиотеки формирователя отчетов Ascon.Vertical.Reports.Builder.dll — в папке ...ASCON\Vertical\SDK.

Чтобы открыть документацию, необходимо запустить файл Documentation.bat.