MATLAB® Report Generator™ позволяет вам задавать типы генератора отчетов, чтобы выполнить специализированным требованиям к отчетности. Например, если MATLAB Report Generator TitlePage
тип генератора отчетов не удовлетворяет ваши потребности, можно задать собственный тип генератора отчетов титульного листа.
Примечание
Следующая процедура создает пакет файлов, которые задают ваш тип генератора отчетов. Чтобы видеть, как пакеты определения генератора отчетов структурированы, разделяют на подклассы встроенный генератор отчетов, такой как TitlePage
генератор отчетов (см. Подкласс Определение Генератора отчетов). После выполнения следующих шагов пакет генератора отчетов для вашего нового типа генератора отчетов будет похож на разделенный на подклассы.
Задавать новый тип генератора отчетов:
Создайте подпапку для своего определения класса в папке, содержащей программу отчета, в которой это должно использоваться. Снабдите префиксом имя папки определения класса с @
, например, @MyTitlePage
.
Примечание
Чтобы использовать новый класс в программах, которые находятся в других папках, добавьте папку определения класса в путь MATLAB.
Создайте подпапку под названием resources
в вашей папке определения класса. Создайте подпапку под названием templates
в resources
папка.
Создайте подпапки под названием pdf
, docx
, и html
в templates
папка. Если вы не хотите поддерживать все выходные типы, создавать папки только для типов, вы хотите поддержать.
Используйте mlreportgen.dom.Document.createTemplate
создать пустой шаблон под названием default
в каждой из папок шаблона ресурса для выходных типов вы намереваетесь поддержать. Например, чтобы создать пустой шаблон в pdf
обработайте папку по шаблону для своего MyTitlePage
генератор отчетов, введите:
cd @MyTitlePage/resources/templates/pdf mlreportgen.dom.Document.createTemplate('default','pdf);
Отредактируйте каждый пустой файл шаблона, чтобы создать библиотеку шаблонов, которая содержит шаблоны, которые будут использоваться вашим генератором отчетов. Необходимо создать библиотеку шаблонов, даже если генератор отчетов использует только один шаблон. Например, для вашего MyTitlePage
генератор отчетов, добавляет шаблон под названием TitlePage
к библиотеке шаблонов в каждом из документов шаблона генератора отчетов. Документами шаблона для PDF, Word и отчетами HTML является default.pdftx
, default.dotx
, и default.htmtx
, соответственно. В TitlePage
обработайте по шаблону, задайте титульный лист зафиксированное содержимое и отверстия для динамического контента титульного листа, который генерирует генератор отчетов титульного листа. Задайте стили, используемые шаблоном в таблице стилей основного шаблона.
Используя редактор MATLAB, создайте определение класса (classdef) файл для нового типа генератора отчетов в папке определения класса. Имя файла определения класса должно быть именем нового типа генератора отчетов, например, MyTitlePage.m
. classdef файл должен задать следующее:
Базовый класс для генераторов отчетов (mlreportgen.report.Reporter
) как базовый класс для вашего нового типа генератора отчетов.
Свойство для каждого из отверстий, заданных вашими шаблонами, включая отверстия в заголовках и нижние колонтитулы. Свойство, соответствующее отверстию, должно иметь то же имя как отверстие. Например, если ваш шаблон генератора отчетов задает отверстие под названием Title
, ваш файл определения класса должен задать свойство под названием Title
. Этот код является примером файла определения класса.
classdef MyTitlePage < mlreportgen.report.Reporter properties Title = '' Author = '' Version = '1.0' end methods function obj = MyTitlePage(varargin) obj = obj@mlreportgen.report.Reporter(varargin{:}); % The next line assumes that you have defined a template % named TitlePage in the template library of the main % template used by this reporter. The base reporter class % fills the holes in this template with the contents of the % corresponding properties defined by your class. obj.TemplateName = 'MyTitlePage'; end end methods (Hidden) % This function is used by the base Reporter class to % retrieve the MyTitlePage reporter template corresponding % to the output type of the report to which the reporter % is added. For example, if you add this reporter to a % Report object whose output type is PDF, the base reporter % class returns the path of the PDF template residing in the % resources/templates/pdf directory of your reporter % definition package. function templatePath = getDefaultTemplatePath(~,rpt) import mlreportgen.report.* path = MyTitlePageTemplate.getClassFolder(); templatePath = ... ReportForm.getFormTemplatePath(path,rpt.Type); end end methods (Static) function path = getClassFolder() [path] = fileparts(mfilename('fullpath')); end end end
Примечание
Этот пример не задает пары значения свойства в своем конструкторе. Инстанцируйте генератора отчетов, прежде чем вы установите его свойства.
В этом примере показано, как использовать ваш генератор отчетов титульного листа (MyTitlePage
), который задан в выборке classdef файл. Пример также показывает, как установить свойства после создания экземпляра генератора отчетов.
import mlreportgen.report.* import mlreportgen.dom.* rpt = Report('myreport','pdf'); tp = MyTitlePage; tp.Title = 'My Report'; tp.Author = 'Myself'; append(rpt,tp); close(rpt); rptview(rpt);
mlreportgen.dom.Document
| mlreportgen.dom.Text
| mlreportgen.report.Report
| mlreportgen.report.TableOfContents
| mlreportgen.report.TitlePage