Main Content

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

slreportgen.report.RptFile クラス

名前空間: slreportgen.report
スーパークラス: slreportgen.report.Reporter

レポート エクスプローラーベースのレポーターの作成

説明

レポート エクスプローラーの設定ファイル (.rpt) によって生成されたコンテンツをレポート API のレポートに含めるには、RptFile レポーターを使用します。レポートに追加された RptFile レポーターは次を行います。

  1. 指定されたレポート エクスプローラーの設定ファイルを実行して、レポート エクスプローラーのレポートの DocBook XML 表現を生成します。

  2. レポート エクスプローラーの Docbook から DOM への変換テンプレートの修正バージョンを使用して、XML を一連の DOM オブジェクトに変換します (レポート変換テンプレートの管理を参照)。

  3. レポート API のレポートに DOM コンテンツを追加します。

メモ

レポート設定ファイルでチャート ループ コンポーネントではなくブロック ループを使用して、Stateflow® チャートについてレポートします。Stateflow ダイアログのスナップショットに関するレポートを参照してください。

slreportgen.report.RptFile クラスは handle クラスです。

作成

説明

reporter = RptFile() は、レポート エクスプローラーベースの空の RptFile レポーターを作成します。レポーターをレポートに追加する前に、レポート プログラムでレポーターの SetupFile プロパティを、レポート エクスプローラーの設定ファイル (.rpt) のパスに設定する必要があります。そうしない場合、エラーが発生します。

RptFile レポーターが既定で使用する変換テンプレートは、レポート エクスプローラーのレポート出力タイプの既定の変換テンプレートを少し変更したバージョンです。たとえば、レポートの出力タイプが PDF の場合、レポーターはレポート エクスプローラーの [PDF (テンプレートを使用)] 出力タイプの既定の変換テンプレートを少し変更したバージョンを使用します。

カスタム変換テンプレートを使用して、レポーターの出力をカスタマイズできます。レポーターの createTemplate メソッドを使用して、レポーターの出力タイプに固有の既定の変換テンプレートのいずれかから、カスタマイズ用にコピーを作成します。カスタマイズしたテンプレートを使用するには、RptFile レポーターの TemplateSrc プロパティを、カスタマイズしたテンプレートのパスに設定します。

reporter = RptFile(SetupFile) は、指定されたレポート エクスプローラーの設定ファイル (.rpt ファイル) に基づいて RptFile レポーターを作成します。SetupFile プロパティを参照してください。

reporter = RptFile(Name=Value) は、名前と値のペアを使用してプロパティを設定します。複数の名前と値のペアの引数を任意の順序で指定できます。

プロパティ

すべて展開する

レポート エクスプローラーの設定ファイルのパス。文字配列または string として指定します。RptFile レポーターで使用する設定ファイルにフォームベースのレポートを使用しないでください。設定ファイルが追加されたレポート API のレポートは、設定ファイルの出力タイプをオーバーライドします。

属性:

GetAccess
public
SetAccess
public

データ型: string | character array

指定された SetupFile を実行する対象のモデルのモデル名。文字配列または string として指定します。設定ファイルにモデル ループが含まれている場合、RptFile レポーターはその値をこのプロパティの値に設定します。設定ファイルにモデル ループが含まれていない場合、または複数のモデル ループが含まれている場合には、エラーが発生します。

属性:

GetAccess
public
SetAccess
public

データ型: character array | string

システム パス。文字配列、string、または slreportgen.finder.DiagramResult オブジェクトとして指定します。設定ファイルにシステム ループが含まれていて、その値が文字または string である場合、RptFile レポーターはシステム ループの値をこのプロパティの値に設定します。値が DiagramResult オブジェクトの場合、レポーターはシステム ループを結果の Path プロパティの値に設定します。設定ファイルにシステム ループが含まれていない場合、または複数のシステム ループが含まれている場合には、エラーが発生します。

属性:

GetAccess
public
SetAccess
public

データ型: character array | string | object

ブロック パス。文字配列、string、slreportgen.finder.DiagramElementResult オブジェクト、またはブロックの slreportgen.finder.BlockResult オブジェクトとして指定します。設定ファイルにブロック ループが含まれていて、その値が文字または string である場合、RptFile レポーターはブロック ループの値をこのプロパティの値に設定します。値が slreportgen.finder.BlockResult オブジェクトの場合、レポーターはオブジェクトの BlockPath プロパティの値を使用します。値が DiagramElementResult オブジェクトの場合、レポーターはオブジェクトの DiagramPath プロパティと Name プロパティの値を使用して、絶対パスを特定します。設定ファイルにブロック ループが含まれていない場合、または複数のブロック ループが含まれている場合には、エラーが発生します。

メモ

設定ファイル内でブロック ループ コンポーネントを使用して、Stateflow チャートについてレポートします。Stateflow ダイアログのスナップショットに関するレポートを参照してください。

属性:

GetAccess
public
SetAccess
public

データ型: character array | string | object

このレポーターが設定ファイルの XML 出力を DOM オブジェクトに変換するために使用する変換テンプレートのソース。空の値を指定すると、生成されるレポートの出力タイプの既定のテンプレートが使用されます。string または文字配列の値は、生成される出力タイプの既定のテンプレートをカスタマイズしたバージョンのパスを指定します。

属性:

GetAccess
public
SetAccess
public

データ型: character array | string

このレポーターのテンプレートの名前。文字配列または string として指定します。このプロパティは既定で、レポーターの既定のテンプレートの名前である RptFile を指定します。この既定のテンプレートは、レポート エクスプローラーの XML コンポーネントから DOM オブジェクトへの変換に使用される他のテンプレートと共に、既定の変換テンプレートのテンプレート ライブラリに存在します。既定のレポーター テンプレートには Content という名前の単一のホールがあり、設定によって生成された XML コンテンツから変換された DOM コンテンツが埋められます。このテンプレートの名前を変更した場合は、このプロパティを新しい名前に設定する必要があります。テンプレート自体を変更できますが、変更後のテンプレートには Content という名前のホールが必要です。

属性:

GetAccess
public
SetAccess
public

データ型: character array | string

このレポーターのハイパーリンク ターゲット。リンク ターゲット ID を指定する string または文字配列、あるいは mlreportgen.dom.LinkTarget オブジェクトとして指定します。string または文字配列の値は LinkTarget オブジェクトに変換されます。リンク ターゲット オブジェクトは、出力レポートでこのレポーターのコンテンツの直前に配置されます。

属性:

GetAccess
public
SetAccess
public

データ型: string | character array | object

メソッド

すべて展開する

すべて折りたたむ

設定ファイルを指定せずに RptFile レポーターを作成します。次に、SetupFile プロパティを使用して、レポート エクスプローラーの設定ファイルを指定します。

reporter = slreportgen.report.RptFile();
reporter.SetupFile = "my_setup_file.rpt" 
 

RptFile レポーターを使用して、Simulink® モデル slrgex_fuelsysDocumentation ブロックについてレポートします。

RptFile レポーターはレポート エクスプローラーの設定ファイルを使用して、ドキュメンテーション ブロックに関する情報を取得します。

メモ

この例を実行する前に、レポート エクスプローラーを使用して、my_setup_file.rpt という名前の設定ファイルを作成します。この例の設定ファイルには、以下に示すように、モデル ループ、システム ループ、ブロック ループ、段落、およびドキュメンテーション コンポーネントの階層があります。中央のペインからコンポーネントを選択します。

  • モデル ループ、システム ループ、およびブロック ループのコンポーネントは [Simulink] フォルダーにあります。

  • 段落コンポーネントは [形式] フォルダーにあります。

  • ドキュメンテーション ブロック コンポーネントは [Simulink ブロック] フォルダーにあります。

この例の設定ファイルの設定の詳細については、レポート設定ファイルの作成を参照してください。

次のコマンドを実行して、この例で使用するサポート ファイルにアクセスします。

openExample('rptgenext/SimulinkReportGeneratorFilesExample');

次のスクリプトを使用して、slrgex_fuelsys モデルの ToController システムにある Documentation ブロック Sensor Info のプロパティに関する情報を含むレポートを生成します。

model = "slrgex_fuelsys";
load_system(model)

rpt = slreportgen.report.Report("MyReport","pdf");
chap = mlreportgen.report.Chapter("Report on a DocBlock");
 
rptFile = slreportgen.report.RptFile("my_setup_file.rpt");
rptFile.Model = model;
rptFile.System = "sldemo_fuelsys/To Controller";
rptFile.Block = "sldemo_fuelsys/To Controller/Sensor Info";

add(chap,rptFile);
add(rpt,chap);
 
close(rpt);
rptview(rpt);

slreportgen.report.RptFile を使用して Stateflow ダイアログのスナップショットについてレポートするには、レポート エクスプローラーの設定ファイル内でブロック ループを使用します。

次のコマンドを実行して、この例で使用するサポート ファイルにアクセスします。

openExample('rptgenext/SimulinkReportGeneratorFilesExample');

レポート エクスプローラーを使用して、my_setup_file.rpt という名前の設定ファイルを作成します。この例の設定ファイルには、モデル ループ、システム ループ、ブロック ループ、および Stateflow ダイアログのスナップショット コンポーネントで構成される階層があります。中央のペインからコンポーネントを選択します。

  • モデル ループ、システム ループ、およびブロック ループのコンポーネントは [Simulink] フォルダーにあります。

  • Stateflow ダイアログのスナップショット コンポーネントは、Stateflow フォルダーにあります。

設定ファイルの設定の詳細については、レポート設定ファイルの作成を参照してください。

Simulink レポートを作成します。

rpt = slreportgen.report.Report("MyReport","pdf");
open(rpt);

モデルを読み込みます。

model = "slrgex_sf_car";
load_system(model);

章を作成します。

chap = mlreportgen.report.Chapter();
chap.Title = strcat(model,": Stateflow Dialog Snapshots");

モデル内のすべてのシステムを検索します。

sys_finder = slreportgen.finder.SystemDiagramFinder(model);
systems = find(sys_finder);

現在のシステム内にあるすべてのブロックを検索します。レポート設定ファイルを使用して、Stateflow ダイアログのスナップショットについてレポートします。

for system = systems
    blk_finder = slreportgen.finder.BlockFinder(system);
    blocks = find(blk_finder);
    
    for block = blocks
        if slreportgen.utils.isValidSlSystem(block.Object) && ...
                ~isempty(slreportgen.utils.block2chart(block.Object))
            rptFile = slreportgen.report.RptFile("my_setup_file.rpt");
            rptFile.Model = model;
            rptFile.System = system;
            rptFile.Block = block;
            add(chap,rptFile);
        end
    end
end

章をレポートに追加します。

add(rpt,chap);

レポートを閉じて表示します。

close(rpt);
rptview(rpt);

バージョン履歴

R2019a で導入