メインコンテンツ

組み込み Web ビュー レポートの生成

R2026b

この例では、組み込み Web ビュー Report Generator の作成で説明されているように、Report Generator を定義するクラスのインスタンスを使用して、組み込み Web ビュー レポートを生成する方法を説明します。

組み込み Web ビュー レポートのクラスの作成

指定された Simulink® モデルで使用されるワークスペース変数とデータ ディクショナリ変数のファイルを生成するクラスを作成します。

classdef SystemDesignVariables < slreportgen.webview.EmbeddedWebViewDocument
    % SystemDesignVariables: Report on variables used by a Simulink model
    %   Defines a class of report generators that produce HTML reports on
    %   the workspace and data dictionary variables used by a Simulink
    %   model. The generated report includes this information for
    %   each variable:
    %
    %   Value (if the value is a scalar, numeric value)
    %   Data Type
    %   Source (e.g, path of dictionary containing the variable)
    %   Source Type (e.g., data dictionary or base workspace)
    %   Users (path of blocks that use the variable)

    methods

        function rpt = SystemDesignVariables(reportPath, modelName)

            % Invoke the EmbeddedWebViewDocument constructor, which
            % saves the report path and model name for use by the fill
            % methods of the report.
            rpt@slreportgen.webview.EmbeddedWebViewDocument( ...
                reportPath,modelName);

            % Turn off duplicate link warnings to avoid warnings for
            % blocks that use multiple design variables.
            rpt.ValidateLinksAndAnchors = false;

            rpt.ExportOptions.IncludeMaskedSubsystems = true;
            rpt.ExportOptions.IncludeSimulinkLibraryLinks = true;
            rpt.ExportOptions.IncludeReferencedModels = true;
        end

        function fillContent(rpt)
            % Fill the Content hole in the report template with design
            % variable information. Use DOM or Report API methods to
            % create, format, add, and append content to this report.

            %% Set up report
            % Allow use of unqualified names for DOM and Report objects,
            % such as Paragraph instead of mlreportgen.dom.Paragraph and
            % TitlePage instead of mlreportgen.report.TitlePage.
            import mlreportgen.dom.*
            import mlreportgen.report.*

            % Obtain the model name, which was saved by the report
            % constructor. getExportedModels returns model names as a
            % cell array, in case a report uses multiple models.
            model = getExportModels(rpt);

            % Extract the model from the cell array. (This report uses
            % only one model.)
            model= model{1};

            % Add a title page to the report.
            add(rpt, TitlePage("Title",[model " Report"],"Author",""));

            % Find variables in the model.
            finder = slreportgen.finder.ModelVariableFinder(model);

            % Create a Variables chapter.
            ch = Chapter("Variables");

            while hasNext(finder)
                result = next(finder);
                % Create a section for the variable.
                s = Section(result.Name);

                % Add variable information to the section using
                % default reporter settings.
                reporter = getReporter(result);
                add(s,reporter);

                % Add the section to the chapter.
                add(ch,s);
            end

            % Add the chapter to the report.
            add(rpt,ch);
        end
    end
end

組み込み Web ビュー レポートの作成

このクラスを使用するレポートのインスタンスを生成して表示するには、MATLAB® コマンド ウィンドウに以下のコマンドを入力します。

model_name = "f14";
openExample(model_name)
rptName = sprintf('%sVariables',model_name);
rpt = SystemDesignVariables(rptName,model_name);
fill(rpt);
close(rpt);
rptview(rptName);

Report Generator が基底クラス slreportgen.webview.EmbeddedWebViewDocument から継承する fill メソッドは、f14 モデルの Web ビューをレポートに組み込みます。また、fillContent メソッドを呼び出して、モデル内の変数に関するレポートをドキュメント ペインに表示します。

Embedded web view report for the f14 model showing variable information and model web view with hyperlinks between variables and blocks.

レポートの他の部分に移動する方法の詳細については、組み込み Web ビュー レポートのナビゲートを参照してください。

設計変数のユーザー パスと、その設計変数を使用する Web ビューのブロック間の双方向リンクを生成するには、次を

reporter = getReporter(result);
add(s,reporter);

以下に置き換えます。

usedByPara = Paragraph("Used By:");
usedByPara.Bold = true;
add(s, usedByPara);
users = result.Users;
nUsers = numel(users);
for u = 1:nUsers
    userLink = createElementTwoWayLink(rpt, ...
        users{u}, ...
        Paragraph(users{u}));
    add(s,userLink);
end

参考

トピック