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

The RptFile reporter позволяет использовать Simulink® Компоненты Report Explorer в основанной на Report API программе отчетов. Этот репортер полезен, если программе отчетов необходимо сгенерировать содержимое, для которого существует компонент Report Explorer, но для которого не доступен репортер Report API. Например, Report Explorer включает компонент с именем Block Type Count, который генерирует количество блоков каждого типа, содержащихся в модели. Эквивалентный репортер Report API не существует.

В этом примере показано, как использовать RptFile reporter, чтобы включить количество типов блоков, используемых в f14 Модель Simulink. Эта информация получена из компонента Report Explorer «Количество типов блоков» и представлена в таблицах в сгенерированном отчете Report API.

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

Создайте файл настройки Report Explorer, который включает компонент «Количество типов блоков». Дополнительные сведения о создании файла настройки отчета см. в разделе Setup отчета.

  1. Тип report чтобы открыть Report Explorer.

  2. На панели справа нажмите Create and edit a Report file. Сохраните файл следующим mysetupfile.rpt.

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

  4. Из папки Simulink на средней панели добавьте компонент System Loop в качестве дочернего элемента цикла модели. Установите следующие опции:

    • Loop on SystemsSelect systems automatically

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

    • Sort SystemsBy system depth

  5. Из папки Simulink на средней панели добавьте компонент Block Type Count в качестве дочернего элемента системного цикла. Установите следующие опции:

    • Table title - Количество типов блоков

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

    • Sort tableAlphabetically by block type

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

The mysetupfile.rpt иерархия есть

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

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

Примечание

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

  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);