Project

General

Profile

Отчеты XSL, как они работают

Введение

Система отчетов позволяет формировать отчеты по расписаниям и по логам воспроизведения. Объхекты, формирующему конечный отчет, не важно, откуда взяты исходные данные. Вызвать систему отчетов можно

  1. Окно расписания![…]-Расписания->Отчет по логам воспроизведения.
    Нужны текстовые логи за некоторый период (Сервис/Настройки/Лог)
    1. Нажать кнопку Report…
  2. Окно расписания![…]-Расписания->Отчет по расписаниям
    Нужны расписания с выданными в эфир элементами (с галочками)

Файлы отчетов должны находиться в каталоге SYSTEM\REPORTS

Как это устроено

  1. Программа анализирует логи или расписания и формирует XML документ с исходными данными
    1. пример документа
  2. Программа считывает .xsl файл из каталога SYSTEM\REPORTS и читает ветку<!tractt:environment>*
    1. Ищет тег шаблона - !tractt:source-template Например: !tractt:source-template src="RAO_hdr.xml" name="ehead" />
      Если такой тег есть, то программа считывает указанный файл шаблона как XML документ
    2. Считываются параметры отчета - теги, внутри <!tractt:fields>
  3. Программа отображает пользователю диалог отчета, на котором вводятся параметры отчета
  4. Формируется окончательный преобразуемый XML документ, состоящий из
    1. Исходных данных
    2. Шаблона
    3. Параметров отчета, введенных пользователем
  5. Этот документ преобразуется XSL и сохраняется в файл

Исходные файлы

* BASIC

* XML_LIB.cpp

* XML_DOC::!TransformTo - вызов собственно XSL преобразования.
Тут можно перехватить исходный XML и сохранить его в файл, если очень надо.

* OBJS

* XSL_REPORT_PROCESSOR.cpp

* класс, читающий шаблон и выполняющий преобразование
Именно он сливает все исходные данные в составной исходный документ

* DLG_EDIT_VALUES.cpp

* Окно с параметрами отчета. Тут пользователь вводит параметры

* OBJ_MAP.cpp

* Метод отчета по расписаниям OBJ_MAP::!ReportBySchedule()

* PLAY_INFO_DLG.cpp

* Диалог Отчета по логам

* метод вызова отчета void PLAY_INFO_DLG::!OnObjsBtnReport()

Add picture from clipboard (Maximum size: 742 MB)