DocBlock ブロックについてのレポート
この例では、Report API によって生成された Microsoft® Word レポートに Simulink DocBlock ブロックの内容を含める方法を説明します。モデル例 slreportgen_demo_docblock
には DocBlock ブロックのみが含まれ、DocBlock ドキュメント タイプの種類ごとに 1 つのブロックがあります。
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);
参考
slreportgen.report.DocBlock
| slreportgen.finder.BlockFinder
| slreportgen.finder.BlockResult
| slreportgen.finder.SystemDiagramFinder
| DocBlock