Generate Embedded Web View Reports
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"; load_system(model_name); rptName = sprintf('%sVariables',model_name); load_system(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
, embeds a web view of the slreportgen.webview.EmbeddedWebViewDocument
f14
model in the report. It also calls the fillContent
method to fill the report document pane with a report about the variables in the model.
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
Create Embedded Web View Report Generators | Navigate Through Embedded Web View Reports | slreportgen.webview.EmbeddedWebViewDocument