RptFile
генератор отчетов позволяет вам использовать Simulink® Компоненты Report Explorer в Отчете основанная на API программа отчета. Этот генератор отчетов полезен, если ваша программа отчета должна сгенерировать содержимое, для которого существует компонент Report Explorer, но для которого никакой генератор отчетов API Отчета не доступен. Например, Report Explorer включает компонент под названием Блочное количество, которое генерирует количество каждого типа блока, который содержит модель. Никакой эквивалентный генератор отчетов API Отчета не существует.
В этом примере показано, как использовать RptFile
генератор отчетов, чтобы включать количество типов блоков, используемых в f14
Модель Simulink. Эта информация получена из Блочного компонента количества Report Explorer и представлена в таблицах в сгенерированном отчете API Отчета.
Создайте файл настройки Report Explorer, который включает Блочный компонент количества. Для получения информации о создании файла настройки отчета смотрите Setup Отчета.
Введите report
открыть Report Explorer.
В панели справа, нажмите Create and edit a Report file. Сохраните файл как mysetupfile.rpt
.
От папки Simulink в средней панели добавьте компонент Цикла Модели в свой отчет. Установите Model name на Current block diagram
.
От папки Simulink в средней панели добавьте Системный компонент Цикла как дочерний элемент Цикла Модели. Установите эти опции:
Loop on Systems — Select systems automatically
Include subsystems in Simulink functions — выбранный
Sort Systems — By system depth
От папки Simulink в средней панели добавьте, что Тип блока считает компонент как дочерний элемент Системного Цикла. Установите эти опции:
Table title — Блочное количество
Show block names in title — выбранный
Sort table — Alphabetically by block type
Сохраните файл.
mysetupfile.rpt
иерархия
Эти шаги описывают, как создать программу Report Generator, которая включает RptFile
генератор отчетов для mysetupfile.rpt
Файл настройки Report Explorer.
Примечание
Полная программа перечислена после шагов.
Чтобы избавить от необходимости использовать полностью определенные имена отчета, средство поиска и служебные функции, импортируют 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);