Репортеры - MATLAB® объекты, которые генерируют форматированное содержимое при добавлении к объекту MATLAB Report Generator™ Report. MATLAB Report Generator предоставляет отчеты для генерации общих компонентов отчетов, таких как заголовок страницы, таблиц содержимого, главы, подразделы, рисунки и Переменный MATLAB значения. Вы можете настроить содержимое и внешний вид этих репортеров. Можно также создать собственных репортеров. Для получения списка встроенных объектов Report API введите эту команду MATLAB:
help mlreportgen.report
В дополнение к отчетам 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)
Репортер обычно включает следующие элементы:
Шаблон документов, которые определяют внешний вид, фиксированное содержимое и отверстия для динамического содержимого, сгенерированного репортером. Репортер обычно предоставляет набор файлов шаблонов, по одному для каждого поддерживаемого типа выхода: 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
объект.
Чтобы сгенерировать содержимое в программе отчетов, выполните следующие шаги:
Пример программы, описанный на этих шагах, создает простой документ, который включает только заголовок страницу. Однако шаги демонстрируют задачи создания полного отчета. Полный список программ отображается после описаний шагов.
Создайте объект отчета (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)
mlreportgen.dom.Text
| mlreportgen.report.Report
| mlreportgen.report.TableOfContents
| mlreportgen.report.TitlePage