exponenta event banner

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

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

help mlreportgen.report

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

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

help mlreportgen.dom

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

Следующая программа MATLAB иллюстрирует использование отчетов и объектов 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 отчетов TitlePage репортер использует шаблон с именем TitlePage для форматирования титульной страницы. TitlePage шаблон хранится в библиотеках шаблонов его файлов шаблонов. Этот шаблон можно изменить для изменения порядка или добавления содержимого на страницу заголовка. Дополнительные сведения см. в разделе Шаблоны.

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

  • Класс MATLAB, определяющий свойства и методы репортера, используемые для создания репортера и управления им. Имена классов репортеров начинаются с префикса, 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');

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

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

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

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

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

Например, этот код добавляет репортер титульных страниц (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

См. также

| | |

Связанные темы