Задайте новые типы генераторов отчетов

MATLAB® Report Generator™ позволяет вам задавать типы генератора отчетов, чтобы выполнить специализированным требованиям к отчетности. Например, если MATLAB Report Generator TitlePage тип генератора отчетов не удовлетворяет ваши потребности, можно задать собственный тип генератора отчетов титульного листа.

Примечание

Следующая процедура создает пакет файлов, которые задают ваш тип генератора отчетов. Чтобы видеть, как пакеты определения генератора отчетов структурированы, разделяют на подклассы встроенный генератор отчетов, такой как TitlePage генератор отчетов (см. Подкласс Определение Генератора отчетов). После выполнения следующих шагов пакет генератора отчетов для вашего нового типа генератора отчетов будет похож на разделенный на подклассы.

Задавать новый тип генератора отчетов:

  1. Создайте подпапку для своего определения класса в папке, содержащей программу отчета, в которой это должно использоваться. Снабдите префиксом имя папки определения класса с @, например, @MyTitlePage.

    Примечание

    Чтобы использовать новый класс в программах, которые находятся в других папках, добавьте папку определения класса в путь MATLAB.

  2. Создайте подпапку под названием resources в вашей папке определения класса. Создайте подпапку под названием templates в resources папка.

  3. Создайте подпапки под названием pdf, docx, и html в templates папка. Если вы не хотите поддерживать все выходные типы, создавать папки только для типов, вы хотите поддержать.

  4. Используйте mlreportgen.dom.Document.createTemplate создать пустой шаблон под названием default в каждой из папок шаблона ресурса для выходных типов вы намереваетесь поддержать. Например, чтобы создать пустой шаблон в pdf обработайте папку по шаблону для своего MyTitlePage генератор отчетов, введите:

    cd @MyTitlePage/resources/templates/pdf
    mlreportgen.dom.Document.createTemplate('default','pdf);
    

  5. Отредактируйте каждый пустой файл шаблона, чтобы создать библиотеку шаблонов, которая содержит шаблоны, которые будут использоваться вашим генератором отчетов. Необходимо создать библиотеку шаблонов, даже если генератор отчетов использует только один шаблон. Например, для вашего MyTitlePage генератор отчетов, добавляет шаблон под названием TitlePage к библиотеке шаблонов в каждом из документов шаблона генератора отчетов. Документами шаблона для PDF, Word и отчетами HTML является default.pdftx, default.dotx, и default.htmtx, соответственно. В TitlePage обработайте по шаблону, задайте титульный лист зафиксированное содержимое и отверстия для динамического контента титульного листа, который генерирует генератор отчетов титульного листа. Задайте стили, используемые шаблоном в таблице стилей основного шаблона.

  6. Используя редактор 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);

Смотрите также

| | | |

Похожие темы