Что такое репортер?

Репортеры - MATLAB® объекты, которые генерируют форматированное содержимое при добавлении к объекту MATLAB Report Generator™ Report. MATLAB Report Generator предоставляет отчеты для генерации общих компонентов отчетов, таких как заголовок страницы, таблиц содержимого, главы, подразделы, рисунки и Переменный MATLAB значения. Вы можете настроить содержимое и внешний вид этих репортеров. Можно также создать собственных репортеров. Для получения списка встроенных объектов Report API введите эту команду MATLAB:

help mlreportgen.report

Репортеры и объекты DOM

В дополнение к отчетам MATLAB Report Generator предоставляет другой набор объектов для генерации содержимого отчета. Эти объекты являются объектами модели объекта документа (DOM). Они реализуют модель документа, используемую HTML, Word и другим программным обеспечением для создания документов. Модель определяет документ как иерархию объектов, обычно найденных в документах, таких как текстовые строки, абзацы, изображения и таблицы. DOM API содержит объекты программного обеспечения, которые генерируют эти основные объекты документа. Для списка объектов DOM введите эту команду MATLAB:

help mlreportgen.dom

Репортеры, напротив, создают структуры документов высокого уровня, такие как заголовки страницы, таблиц содержимого и главы, которые происходят во многих, но не во всех типах документов. Преимущество репортеров в том, что один репортер может создать содержимое, который потребует много объектов DOM. Однако программа генератора отчетов обычно требует как объектов DOM, так и объектов reporter. Например, глава reporter генерирует заголовок и макет страницы главы отчета, но не ее содержимое. DOM API содержит текст, абзац, таблицу, список, изображение и другие объекты, которые можно использовать для создания репортажного содержимого.

Следующая программа MATLAB иллюстрирует использование объектов reporter и DOM для создания отчета PDF. Программа использует DOM Text объект для добавления блока текста к главе. Все другие объекты в этом примере (Report, TitlePage, TableOfContents, и Chapter) являются объектами.

rpt = mlreportgen.report.Report('myreport','pdf');
append(rpt,mlreportgen.report.TitlePage('Title','My Report',...
   'Author','Myself'))
append(rpt,mlreportgen.report.TableOfContents)
ch = mlreportgen.report.Chapter('Title','Sample Text');
append(ch,mlreportgen.dom.Text...
   ('Here is sample text using a DOM Text object.'))
append(rpt,ch)
close(rpt)
rptview(rpt)

Title page of the report with the title "My Report", the author "Myself", and the date

Table of contents listing one chapter

Chapter one has the title "Sample Text" and the text, "here is sample text using a DOM Text object".

Элементы репортера

Репортер обычно включает следующие элементы:

  • Шаблон документов, которые определяют внешний вид, фиксированное содержимое и отверстия для динамического содержимого, сгенерированного репортером. Репортер обычно предоставляет набор файлов шаблонов, по одному для каждого поддерживаемого типа выхода: Word, PDF и HTML. Каждый файл шаблона содержит библиотеку шаблонов, используемых репортером для форматирования его содержимого. Например, API Report TitlePage reporter использует шаблон с именем TitlePage для форматирования страницы заголовка. The TitlePage шаблон хранится в библиотеках шаблонов его файлов шаблонов. Можно изменить этот шаблон, чтобы переставить или добавить содержимое на заголовок страницу. Для получения дополнительной информации см. раздел Шаблоны.

  • Свойства, которые задают динамическое содержимое, сгенерированное репортером. Эти свойства соответствуют отверстиям в шаблоне репортера. Репортер заполняет отверстия шаблона значениями соответствующих свойств.

  • Класс MATLAB, который задает свойства reporter и методы, используемые для создания и манипулирования reporter. Имена классов Reporter начинаются с префикса, mlreportgen.report. Например, репортер титульной страницы mlreportgen.report.TitlePage. Вы можете опустить префикс в скрипте или функции MATLAB, вставив этот оператора в начале скрипта или функции:

    import mlreportgen.report.*
    Точно так же можно включать import mlreportgen.dom.* для использования кратких имен классов DOM.

  • Метод конструктора, который создает объект reporter как образец класса reporter. Имя конструктора совпадает с именем класса.

  • Объект DOM, содержащий содержимое, сгенерированное отчетом. Этот объект упоминается как реализация репортера. У каждого репортера есть getImpl метод, который создает объект реализации, который обычно является DOM DocumentPart объект.

Использование репортеров в программе MATLAB

Чтобы сгенерировать содержимое в программе отчетов, выполните следующие шаги:

Пример программы, описанный на этих шагах, создает простой документ, который включает только заголовок страницу. Однако шаги демонстрируют задачи создания полного отчета. Полный список программ отображается после описаний шагов.

Создание объекта отчета

Создайте объект отчета (mlreportgen.report.Report), чтобы содержать содержимое, сгенерированное отчетом. Объект отчета использует DOM Document объект для хранения содержимого, сгенерированного журналистами, добавленными в отчет. Этот код импортирует пакет Report API, который позволяет коду использовать краткие имена классов. Затем он создает объект отчета PDF (rpt).

import mlreportgen.report.*
rpt = Report('myReport','pdf');

Создание образца репортера

Создайте образец класса reporter, то есть создайте экземпляр reporter, используя его конструктор. Конструктор может также задать свойства созданного им объекта reporter. Например, этот код создает репортера титульной страницы (tp) и устанавливает его Title и Author свойства.

tp = TitlePage('Title','My Report','Author','John Smith');

Установка свойств существующего репортера

Чтобы задать свойства reporter после того, как программа создала reporter, программа может использовать запись через точку MATLAB. Для примера этот код устанавливает Subtitle и PubDate свойства TitlePage репортер (tp).

tp.Subtitle = 'on My Project';
tp.PubDate = date;

Добавление репортера к отчету

Чтобы сгенерировать содержимое с помощью репортера, программа отчетов должна добавить репортера к объекту отчета, используя append метод объекта отчета. The append метод работает путем вызова getImpl метод этого репортера. The getImpl метод создает реализацию репортера. Затем, append метод добавляет реализацию в DOM Document объект, который служит реализацией объекта отчета. Можно также использовать append метод для добавления объектов DOM к отчету. Вы не можете, однако, добавить другой DOM Document в отчет.

Для примера этот код добавляет заголовка страницу reporter (tp) к отчету (rpt).

append(rpt,tp)

Закройте объект отчета

Когда программа отчетов завершила добавление содержимого в отчет, она должна закрыть отчет, используя close метод объекта отчета. При закрытии отчета содержимое отчета записывается в файл документа такого типа, как PDF, заданный конструктором объекта отчета.

close(rpt)

Этот код является полной программой для отчета, которая включает только заголовок страницу.

import mlreportgen.report.*

rpt = Report('myReport','pdf');

tp = TitlePage('Title','My Report',...
    'Author','John Smith');
tp.Subtitle = 'on My Project';
tp.PubDate = date;

append(rpt,tp)
close(rpt)
rptview(rpt)

Report title page with the title "My Report on My Project", the author "John Smith", and the date

См. также

| | |

Похожие темы