Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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);

参考

| | | |

関連するトピック