Создание отчетов о блоках DocBlock

То В этом примере показано, как включать содержимое 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);

Смотрите также

| | | |

Похожие темы