Main Content

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

組み込み Web ビュー レポートを生成するには、Report Generator を定義するクラスのインスタンスを作成します (組み込み Web ビュー Report Generator の作成を参照)。次に、Report Generator のメソッド fillclose を使用します。

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

openExample('rptgenext/SimulinkReportGeneratorFilesExample');

たとえば、SystemDesignVariables クラスの例 (組み込み Web ビュー レポートのクラス定義ファイルの生成を参照) を使用するレポートを作成するとします。以下のコマンドは、このレポートのインスタンスを生成し、表示します。

model = "slrgex_f14";
rptName = sprintf('%sVariables', model);
load_system(model);
rpt = SystemDesignVariables(rptName, model);
fill(rpt);
close(rpt);
close_system(model);
rptview(rptName);

fill(rpt) コマンドは、Report Generator が基底クラスから継承する fill メソッドを使用します。このメソッドは、f14 モデルの Web ビューをレポートに組み込みます。また、Report Generator の fillContent メソッドを呼び出して、レポートのドキュメント ペインに f14 モデルで使用される変数についてのレポートを表示します。

結果として得られる組み込み Web ビュー レポートの一部を以下に示します。

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

組み込み Web ビュー レポートのクラス定義ファイルの生成

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

classdef SystemDesignVariables < slreportgen.webview.EmbeddedWebViewDocument
    %SystemDesignVariables Report on variables used by a Simulink model
    %   Defines a class of report generators to 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
            % report's fill methods.
            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. You can 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 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 used by the reported 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 this section to the chapter
                add(ch,s);
            end
            
            % Add the chapter to the report
            add(rpt,ch);
        end
    end
end

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

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

次のコード行に置き換えます。

% Create a Users list with links to the embedded model
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