Main Content

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

slreportgen.report.BusObject クラス

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

Simulink バス オブジェクト レポーター

R2019b 以降

説明

レポートで Simulink.Bus オブジェクトについての情報を生成するレポーターを作成します。

メモ

レポートでバス オブジェクト レポーターを使用するには、slreportgen.report.Report クラスまたはサブクラスを使用してレポートを作成する必要があります。

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

クラス属性

HandleCompatible
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

説明

reporter = slreportgen.report.BusObject() は、空の slreportgen.report.BusObject レポーター オブジェクトを作成します。レポーター オブジェクトのプロパティを使用して、バス オブジェクトについてレポートされる情報の内容と形式をカスタマイズします。レポーターをレポートに追加する前に、レポーターの Object プロパティを Simulink.Bus オブジェクトを指定する slreportgen.report.ModelVariableResult オブジェクトまたは Simulink.VariableUsage オブジェクトに設定する必要があります。空のレポーターをレポートに追加すると、エラーが発生します。

reporter = slreportgen.report.BusObject(object) は、slreportgen.report.ModelVariableResult オブジェクトまたは Simulink.VariableUsage オブジェクトで指定される Simulink.Bus オブジェクトのレポーターを作成します。Object プロパティを参照してください。

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

プロパティ

すべて展開する

レポート対象の Simulink.Bus オブジェクトを指定するオブジェクト。slreportgen.finder.ModelVariableResult オブジェクトまたは Simulink.VariableUsage オブジェクトとして指定します。

この読み取り専用プロパティには、レポート対象のバス オブジェクトの名前が格納されます。string スカラーとして指定されます。

レポート対象のバス オブジェクト プロパティ。string 配列、または文字ベクトルの cell 配列として指定します。ReportedBusProperties プロパティで指定されたプロパティは、さらに PropertyFilterFcn プロパティでフィルター処理されます。ReportedBusProperties プロパティが空の場合、PropertyFilterFcn プロパティでフィルター処理されたプロパティを除くすべてのプロパティがレポートに含まれます。バス オブジェクトに対して有効でないバス オブジェクト プロパティはレポーターで除外されます。

レポート対象のバス要素プロパティ。string 配列、または文字ベクトルの cell 配列として指定します。ReportedElementProperties プロパティで指定されたプロパティは、さらに PropertyFilterFcn プロパティで指定された関数またはコードでフィルター処理されます。ReportedElementProperties プロパティが空の場合、PropertyFilterFcn プロパティでフィルター処理されたプロパティを除くすべてのプロパティがレポートに含まれます。バス要素に対して有効でないバス要素プロパティはレポーターで除外されます。

バス オブジェクトの名前をレポートに表示するかどうか。true または false として指定します。

バス階層を表す入れ子形式のリストをレポートに含めるかどうか。true または false として指定します。

バス オブジェクト プロパティのテーブルをレポートに表示するかどうか。true または false として指定します。

バス要素プロパティのテーブルをレポートに表示するかどうか。true または false として指定します。

バス オブジェクトを使用するブロックのリストを表示するかどうか。true または false として指定します。ShowUsedBy プロパティが true に設定されている場合、バス オブジェクトを使用するブロックのリストがレポートに含まれます。ShowUsedBySnapshot プロパティも true に設定されている場合、バス オブジェクトを使用する親サブシステムごとに、それらのブロック線図のスナップショットが含まれます。バス オブジェクトを使用するブロックがスナップショットで強調表示されます。

親サブシステムのブロック線図のスナップショットを表示してバス オブジェクトを使用するブロックを強調表示するかどうか。true または false として指定します。ShowUsedBySnapshot プロパティが true に設定されている場合、バス オブジェクトを使用する親サブシステムごとに、それらのスナップショットがレポートに含まれます。バス オブジェクトを使用するブロックがスナップショットで強調表示されます。親サブシステムにバス オブジェクトを使用するブロックが複数ある場合、バス オブジェクトを使用するブロックを強調表示したブロック線図のスナップショットは 1 つだけ表示されます。

レポートでバス オブジェクトに関する情報の種類ごとに個別の節を作成するかどうか。CreateSections プロパティが true に設定されている場合、次の種類の情報ごとに、タイトルが付いた mlreportgen.report.Section がレポーターで作成されます。

  • 階層

  • プロパティ

  • 要素

  • バス オブジェクトを使用するブロック

CreateSections プロパティが false に設定されている場合、テーブルおよびリストのラベルがレポーターで生成されます。テーブルの場合、テーブルのタイトルが生成されます。リストの場合、リストの前のテキストが生成されます。

生成されるバス階層の形式を設定するリスト フォーマッタ。mlreportgen.dom.UnorderedList オブジェクトまたは mlreportgen.dom.OrderedList オブジェクトとして指定します。このプロパティの既定値は、mlreportgen.dom.UnorderedList のオブジェクトです。リストの形式をカスタマイズするには、リスト オブジェクトのプロパティを変更するか、そのリスト オブジェクトをリスト項目を含まないカスタマイズしたリスト オブジェクトに置き換えます。

バス オブジェクトを使用するブロックの生成リストの形式を設定するリスト フォーマッタ。mlreportgen.dom.UnorderedList オブジェクトまたは mlreportgen.dom.OrderedList オブジェクトとして指定します。このプロパティの既定値は、mlreportgen.dom.UnorderedList のオブジェクトです。リストの形式をカスタマイズするには、リスト オブジェクトのプロパティを変更するか、そのリスト オブジェクトをリスト項目を含まないカスタマイズしたリスト オブジェクトに置き換えます。

バス オブジェクト プロパティのテーブルの形式を設定するために使用されるテーブル レポーター。mlreportgen.report.BaseTable オブジェクトとして指定します。このプロパティの既定値は、TableStyleName プロパティが BusObjectPropertiesTable スタイルに設定された BaseTable オブジェクトであり、これは BusObject レポーターの既定のテンプレートに定義されています。

テーブルの外観をカスタマイズするには、既定のテーブル レポーターのプロパティを変更するか、そのテーブル レポーターをカスタマイズしたテーブル レポーターに置き換えます。既定またはカスタマイズしたテーブル レポーターの Title プロパティに内容を追加すると、生成されたレポートでテーブルのタイトルの前にその内容が表示されます。

バス要素プロパティのテーブルの形式を設定するために使用されるテーブル レポーター。mlreportgen.report.BaseTable オブジェクトとして指定します。このプロパティの既定値は、TableStyleName プロパティが BusObjectElementsTable スタイルに設定された BaseTable オブジェクトであり、これは BusObject レポーターの既定のテンプレートに定義されています。

テーブルの外観をカスタマイズするには、既定のテーブル レポーターのプロパティを変更するか、そのテーブル レポーターをカスタマイズしたテーブル レポーターに置き換えます。既定またはカスタマイズしたテーブル レポーターの Title プロパティに内容を追加すると、生成されたレポートでテーブルのタイトルの前にその内容が表示されます。

要素のプロパティのテーブルでプロパティを横方向に表示するかどうか。true または false として指定します。

HorizontalElementsTable プロパティが true に設定されている場合、プロパティごとに 1 つの列がテーブルに含まれます。次に例を示します。

HorizontalElementsTable プロパティが false に設定されている場合、要素の行のプロパティと値のセルが複数の行に分割されます。次に例を示します。

CreateSections プロパティが true に設定されている場合の節の形式を設定するためのレポーター。mlreportgen.report.Section オブジェクトとして指定します。節の外観をカスタマイズするには、既定の節レポーターのプロパティを変更するか、その節レポーターをカスタマイズした節レポーターに置き換えます。

レポート対象のバスまたはバス要素のプロパティをレポートからフィルター処理するための関数または式。関数は関数ハンドルとして指定します。式は string スカラーまたは文字ベクトルとして指定します。

関数ハンドルを指定する場合、関連付けられた関数は次を行う必要があります。

  • 次の引数を受け入れる。

    • variableName — レポート対象のバスまたはバス要素を指定するモデル変数の名前

    • variableObject — レポート対象のバスまたはバス要素

    • propertyName — レポート対象のバスまたはバス要素のプロパティの名前

  • レポートから指定されたプロパティをフィルター処理するには true を返し、プロパティをレポートに含めるには false を返す。

たとえば、次のコードは、バス オブジェクトの HeaderFile プロパティと Description プロパティ、およびバス要素の Complexity プロパティを表示しないようにします。

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('busrpt','pdf');

model = load_system('sldemo_bus_arrays');

modelVariableFinder = ModelVariableFinder(model);
results = find(modelVariableFinder);
for result = results
    if isa(getVariableValue(result),'Simulink.Bus')
        busRptr = slreportgen.report.BusObject(result);
        busRptr.PropertyFilterFcn = @busPropertyFilter;
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busRptr.Name);
        add(chapter, busRptr);   
        add(rpt,chapter)
    end
end
close(rpt);

close_system(model);
rptview(rpt);

function tf = busPropertyFilter(~, variableObject,propertyName)
if isa(variableObject, 'Simulink.Bus')
    tf = (propertyName == "HeaderFile") ||  ...
        (propertyName == "Description");
else
    % Filter Simulink.BusElement Complexity property
    tf = propertyName == "Complexity";
end
end

string スカラーまたは文字ベクトルを指定する場合、式が含まれていなければなりません。その式は次のとおりです。

  • 変数 variableNamevariableObject、および propertyName を使用できる

  • レポートから指定されたプロパティをフィルター処理するには変数 isFilteredtrue に設定し、レポートにプロパティを含めるには false に設定する必要がある

たとえば、次のコードは、バス オブジェクトの HeaderFile プロパティをレポートからフィルター処理します。

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('busrpt','pdf');

model = load_system('sldemo_bus_arrays');

modelVariableFinder = ModelVariableFinder(model);
results = find(modelVariableFinder);
for result = results
    if isa(getVariableValue(result),'Simulink.Bus')
        busRptr = slreportgen.report.BusObject(result);
        busRptr.PropertyFilterFcn = "isFiltered = " + ...
            "isa(variableObject, 'Simulink.Bus') && " + ...
            "propertyName == 'HeaderFile';";
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busRptr.Name);
        add(chapter, busRptr);   
        add(rpt,chapter)
end
end
close(rpt);

close_system(model);
rptview(rpt);

このレポーターのテンプレートのソース。次のいずれかのオプションとして指定します。

  • このレポーターのテンプレートを含むファイルのパスを指定する、文字ベクトルまたは string スカラー

  • このレポーターに使用されているテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、レポーターまたはレポート

  • このレポーターに使用されているテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、DOM ドキュメントまたはドキュメント パーツ

指定されるテンプレートは、このレポーターが追加されるレポートと同じタイプでなければなりません。たとえば、Microsoft® Word レポートの場合、TemplateSrc は Word レポーター テンプレートでなければなりません。TemplateSrc プロパティが空の場合、このレポーターはレポートの出力タイプで既定のレポーター テンプレートを使用します。

このレポーターのテンプレートの名前。文字ベクトルまたは string スカラーとして指定します。このレポーターのテンプレートは、このレポーターのテンプレート ソース (TemplateSrc) のテンプレート ライブラリになければなりません。

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

メソッド

すべて展開する

すべて折りたたむ

モデルで使用されているすべての変数をモデル変数ファインダーを使用して検索してから、バス オブジェクトである変数ごとにバス レポーターを作成して、モデル内のバス オブジェクトについてレポートします。

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

% Load a model
model_name = "sldemo_bus_arrays";
load_system(model_name);

% Find all variables used by the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

% Create a Bus object reporter object for all results representing a
% Simulink.Bus object
while hasNext(finder)
    result = next(finder);
    if isa(getVariableValue(result), "Simulink.Bus")
        % Create a Bus object reporter
        busReporter = slreportgen.report.BusObject(result);
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busReporter.Name);
        % Add bus to chapter
        add(chapter, busReporter)
        % Add chapter to the report
        add(rpt,chapter);
    end
end

% Close and view the report
close(rpt);
rptview(rpt);

バス オブジェクト レポーターのプロパティを設定することで、レポート対象の内容と内容の形式をカスタマイズします。この例では、ReportedElementProperties プロパティを使用して、レポートされる要素プロパティを制約します。HorizontalElementsTable プロパティを使用して、プロパティごとに 1 つの列を含むプロパティ テーブルを生成します。

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

% Load a model
model_name = "sldemo_bus_arrays";
load_system(model_name);

% Find all variables used by the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

% Create a Bus object reporter object for all results representing a
% Simulink.BusObject object
while hasNext(finder)
    result = next(finder);
    if isa(getVariableValue(result), "Simulink.Bus")
        % Create a Bus object reporter
        busReporter = slreportgen.report.BusObject(result);
        % Limit the properties that are reported
        busReporter.ReportedElementProperties = {'Name','DataType','Min','Max'};
        % Display element properties horizontally
        busReporter.HorizontalElementsTable = true;
        % Create a Chapter
        chapter = mlreportgen.report.Chapter(busReporter.Name);
        % Add bus to chapter
        add(chapter, busReporter)
        % Add chapter to the report
        add(rpt,chapter);
    end
end

% Close and view the report
close(rpt);
rptview(rpt);

バージョン履歴

R2019b で導入