То В этом примере показано, как включать содержимое Simulink DocBlock, блокируется в отчете Word Microsoft®, сгенерированном API Отчета. Модель в качестве примера, slreportgen_demo_docblock
, содержит только блоки DocBlock, с одним блоком для каждого вида типа документа DocBlock:
RTF
HTML
Текст
В сгенерированном отчете выглядит так содержимое блоков DocBlock:
Импортируйте пакеты API так, чтобы можно было обратиться к классам API их неполными именами, то есть, без имен пакетов класса, в которых они находятся.
import mlreportgen.report.* import slreportgen.report.* import slreportgen.finder.* import mlreportgen.dom.*
Загрузите модель для этого примера.
model = 'slreportgen_demo_docblock';
load_system(model);
Создайте контейнер, чтобы содержать содержимое отчета. Чтобы избежать ошибки компиляции из-за модели, содержащей только виртуальные блоки, установите CompileModelBeforeReporting
свойство объекта отчета к false
.
rpt = slreportgen.report.Report('ModelDoc', 'docx'); rpt.CompileModelBeforeReporting = false;
Добавьте титульный лист и оглавление.
add(rpt,TitlePage('Title',sprintf('%s Model Documentation',model))); add(rpt,TableOfContents);
Найдите и цикл через все системы в модели.
finder = SystemDiagramFinder(model);
for system = find(finder)
Создайте главу для каждой системы. Включайте имя системы в заголовок главы. Используйте главу, чтобы сообщить относительно содержимого DocBlock системы.
ch = Chapter('Title',sprintf('System %s', system.Name));
Найдите все блоки DocBlock в существующей системе. Каждый результат возвращает генератор отчетов DocBlock для найденного DocBlock. add
метод вызывает генератор отчетов DocBlock.
docBlockFinder = BlockFinder(system); docBlockFinder.Properties = {'MaskType', 'DocBlock'}'; results = find(docBlockFinder); if ~isempty(results) add(ch, results); else add(ch, "This system does not have documentation."); end add(rpt,ch) end
Закройте и просмотрите отчет.
close(rpt); close_system(model); rptview(rpt);
DocBlock | slreportgen.finder.BlockFinder
| slreportgen.finder.BlockResult
| slreportgen.finder.SystemDiagramFinder
| slreportgen.report.DocBlock