RptFile reporter позволяет использовать компоненты Simulink ® Report Explorer в программе отчетов на основе Report API. Этот репортер полезен, если программе отчетов необходимо создать контент, для которого существует компонент Report Explorer, но для которого нет доступного Report API reporter. Например, обозреватель отчетов включает компонент с именем «Количество типов блоков», который генерирует количество блоков каждого типа, содержащихся в модели. Эквивалентный репортер API отчетов не существует.
В этом примере показано, как использовать RptFile reporter, чтобы включить подсчет типов блоков, используемых в f14 Модель Simulink. Эта информация получена из компонента «Счетчик типов блоков проводника отчетов» и представлена в таблицах в созданном отчете Report API.
Создайте файл настройки Report Explorer, включающий компонент «Количество типов блоков». Сведения о создании файла настройки отчета см. в разделе Настройка отчета.
Напечатать report , чтобы открыть обозреватель отчетов.
На панели справа щелкните Создать и отредактируйте файл отчета. Сохранить файл как mysetupfile.rpt.
Из папки Simulink на средней панели добавьте в отчет компонент Model Loop. Задайте для имени модели значение Current block diagram.
В папке Simulink на средней панели добавьте компонент System Loop в качестве дочернего элемента цикла модели. Задайте следующие параметры:
Шлейф в системах - Select systems automatically
Включить подсистемы в функции Simulink - выбранные
Системы сортировки - By system depth
В папке Simulink на средней панели добавьте компонент «Количество типов блоков» в качестве дочернего элемента системного цикла. Задайте следующие параметры:
Название таблицы - Количество типов блоков
Показать имена блоков в заголовке - выбрано
Таблица сортировки - Alphabetically by block type
Сохраните файл.
mysetupfile.rpt иерархия -

Эти шаги описывают создание программы генератора отчетов, включающей RptFile репортер для mysetupfile.rpt Файл установки проводника отчетов.
Примечание
Полная программа отображается после шагов.
Чтобы исключить необходимость использования полных имен функций отчета, поиска и утилиты, импортируйте функции API. Например, вместо использования mlreportgen.report.TitlePage, вы можете использовать TitlePage.
import slreportgen.report.* import slreportgen.finder.* import mlreportgen.report.* import mlreportgen.utils.*
Загрузить f14 модель.
model = "f14";
load_system(model);
Создайте объект отчета для хранения содержимого отчета. Используйте конструктор отчета Simulink (slreportgen.report.Report) для создания объекта отчета Необходимо полностью определить имя конструктора, чтобы отличить его от конструктора отчета MATLAB (mlreportgen.report.Report). Укажите имя отчета как "My Report" и тип вывода в формате PDF.
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, чтобы создать отдельную главу для каждой системы и включить системный снимок с однострочным заголовком.
Создать 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
При первом запуске этого цикла во время создания отчета в отчет добавляется количество снимков и блоков системы верхнего уровня модели.

Закройте и просмотрите отчет.
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);