Используйте компоненты Report Explorer Simulink в отчете API отчета

Генератор отчетов RptFile позволяет вам использовать компоненты Simulink® Report Explorer в Отчете основанная на API программа отчета. Этот генератор отчетов полезен, если ваша программа отчета должна сгенерировать содержимое, для которого существует компонент Report Explorer, но для которого никакой генератор отчетов API Отчета не доступен. Например, Report Explorer включает компонент под названием Блочное количество, которое генерирует количество каждого типа блока, который содержит модель. Никакой эквивалентный генератор отчетов API Отчета не существует.

Этот пример показывает, как использовать генератор отчетов RptFile, чтобы включать количество типов блоков, используемых в модели f14 Simulink. Эта информация получена из Блочного компонента количества Report Explorer и представлена в таблицах в сгенерированном отчете API Отчета.

Создайте файл настройки Report Explorer

Создайте файл настройки Report Explorer, который включает Блочный компонент количества. Для получения информации о создании файла настройки отчета смотрите Setup Отчета (MATLAB Report Generator).

  1. Введите report, чтобы открыть Report Explorer.

  2. В панели справа, нажмите Create and edit a Report file. Сохраните файл как mysetupfile.rpt.

  3. От папки Simulink в средней панели добавьте Образцовый компонент Цикла в свой отчет. Установите Model name на Current block diagram.

  4. От папки Simulink в средней панели добавьте Системный компонент Цикла как дочерний элемент Образцового Цикла. Установите эти опции:

    • Loop on SystemsSelect systems automatically

    • Include subsystems in Simulink functions — выбранный

    • Sort SystemsBy system depth

  5. От папки Simulink в средней панели добавьте, что Тип блока считает компонент как дочерний элемент Системного Цикла. Установите эти опции:

    • Table title — Блочное количество

    • Show block names in title — выбранный

    • Sort tableAlphabetically by block type

  6. Сохраните файл.

Иерархия mysetupfile.rpt

Создайте программу генератора отчетов

Эти шаги описывают, как создать программу Генератора отчетов, которая включает генератор отчетов RptFile для файла настройки Report Explorer mysetupfile.rpt.

Примечание

Полная программа перечислена после шагов.

  1. Чтобы избавить от необходимости использовать полностью определенные имена отчета, средство поиска и служебные функции, импортируют API-функции. Например, вместо того, чтобы использовать mlreportgen.report.TitlePage, можно использовать TitlePage.

    import slreportgen.report.*
    import slreportgen.finder.*
    import mlreportgen.report.*
    import mlreportgen.utils.*
    

  2. Загрузите модель f14.

    model = "f14";
    load_system(model);
    

  3. Создайте объект отчета, чтобы содержать содержимое отчета. Используйте Simulink, сообщает конструктор (slreportgen.report.Report) создавать объект отчета, который необходимо полностью определить имя конструктора, чтобы отличить, это из MATLAB сообщает о конструкторе (mlreportgen.report.Report). Задайте имя отчета как "My Report" и выходной тип как PDF.

    rpt = slreportgen.report.Report("MyReport","pdf");
    

  4. Добавьте титульный лист и оглавление к отчету.

    titlepg = TitlePage();
    titlepg.Title = "f14 Model Block Types ";
    titlepg.Author = "MathWorks";
    add(rpt,titlepg);
    
    toc = TableOfContents;
    add(rpt,toc);
    

  5. Найдите все системы в модели.

    sysdiag_finder = SystemDiagramFinder(model);
    found_diags = find(sysdiag_finder);
    
  6. Используйте цикл for, чтобы создать отдельную главу для каждой системы и включать системный снимок состояния с однострочным заголовком.

    Создайте генератор отчетов RptFile на основе mysetupfile.rpt. Генератор отчетов генерирует таблицу блочных счетов для существующей системы. Добавьте генератор отчетов RptFile в главу и добавьте главу в отчет.

    for sysdiag = found_diags
        chap = Chapter(sysdiag.Path);
    
        snapshot = Diagram(sysdiag.Path);
        oneline = makeSingleLineText(sysdiag.Name);
        snapshot.Snapshot.Caption = strcat...
          ("System Diagram: ",oneline);
        add(chap,snapshot); 
    
        rptFile = RptFile("mysetupfile.rpt");
        rptFile.Model = model;
        rptFile.System = sysdiag.Path;
    
        add(chap,rptFile);
        add(rpt,chap);
    end

    В первый раз этот цикл выполнения во время генерации отчета, снимка состояния и количества блока системы верхнего уровня модели добавляется к отчету.

  7. Закройте и просмотрите отчет.

    close(rpt);
    rptview(rpt);
    

Полная программа

import slreportgen.report.*
import slreportgen.finder.*
import mlreportgen.report.*
import mlreportgen.utils.*

model = "f14";
load_system(model);

rpt = slreportgen.report.Report("MyReport","pdf");

titlepg = TitlePage();
titlepg.Title = "f14 Model Block Types ";
titlepg.Author = "MathWorks";
add(rpt,titlepg);

toc = TableOfContents;
add(rpt,toc);

sysdiag_finder = SystemDiagramFinder(model);
found_diags = find(sysdiag_finder);
for sysdiag = found_diags
    chap = Chapter(sysdiag.Path);

    snapshot = Diagram(sysdiag.Path);
    oneline = makeSingleLineText(sysdiag.Name);
    snapshot.Snapshot.Caption = strcat...
      ("System Diagram: ",oneline);
    add(chap,snapshot); 

    rptFile = RptFile("mysetupfile.rpt");
    rptFile.Model = model;
    rptFile.System = sysdiag.Path;
    add(chap,rptFile);

    add(rpt,chap);
end

close(rpt);
rptview(rpt);