Чтобы сгенерировать встроенный отчет Веб-представление, создайте образец класса, определяющего генератор отчетов (см. Раздел "Создание встроенного генератора отчетов Веб-представление). Затем используйте fill
и close
методы генератора отчетов.
Например, предположим, что вы хотите создать отчет с помощью SystemDesignVariables
пример класса (см. файл определения класса для встраиваемого веб-представления). Эти команды генерируют и отображают образец этого отчета:
model = 'f14'; rptName = sprintf('%sVariables', model); load_system(model); rpt = SystemDesignVariables(rptName, model); fill(rpt); close(rpt); close_system(model); rptview(rptName);
The fill(rpt)
команда использует fill
метод, который генератор отчетов наследует от своего базового класса. Этот метод встраивает веб-представление f14
модель в отчете. Это также вызывает fillContent
метод генератора отчетов, который заполняет панель документа отчета отчетом о переменных, используемых f14
модель.
Вот часть полученного отчета Embedded Web View:
Для получения информации о переходе к различным частям отчета см. раздел Навигация по отчету о встраиваемом веб-представлении.
Этот класс генерирует отчет для переменных рабочей области и словаря данных, используемых заданным 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
Чтобы сгенерировать двухсторонние ссылки между пользовательскими путями переменного проекта и блоками в Веб-представление, которые используют переменные проекты, замените следующие строки кода:
% 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