Main Content

Generate Embedded Web View Reports

R2026b

This example shows how to generate an embedded web view report by using an instance of a class that defines the report generator, as described in Create Embedded Web View Report Generators.

Create Class for Embedded Web View Report

Create a class that generates a file for the workspace and data dictionary variables used by a specified Simulink® model.

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

Create Embedded Web View Report

To generate and display an instance of a report that uses this class, enter these commands at the MATLAB® Command Window.

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

The fill method, which the report generator inherits from the base class slreportgen.webview.EmbeddedWebViewDocument, embeds a web view of the f14 model in the report. It also calls the fillContent method to fill the document pane with a report about the variables in the model.

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

For more information on how to navigate to different parts of the report, see Navigate Through Embedded Web View Reports.

To generate two-way links between design variable user paths and blocks in the web view that use the design variables, replace

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

with

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

See Also

Topics