slreportgen.report.ModelVariable class

Пакет: slreportgen.report
Суперклассы: slreportgen.report.Reporter

Модель переменной reporter

Описание

Репортер для Simulink® переменная модели.

Примечание

Как использовать slreportgen.report.ModelVariable репортер в отчете, вы должны создать отчет с помощью slreportgen.report.Report класс или подкласс.

The slreportgen.report.ModelVariable класс является handle класс.

Атрибуты класса

HandleCompatible
true

Для получения информации об атрибутах класса см. раздел «Атрибуты класса».

Создание

Описание

Вы не создаете slreportgen.report.ModelVariable объект явным образом. Чтобы получить slreportgen.report.ModelVariable объект для найденной переменной модели:

  • Используйте find или next метод slreportgen.finder.ModelVariableFinder объект, чтобы получить slreportgen.finder.ModelVariableResult объект для найденной переменной.

  • Вызовите getReporter метод slreportgen.finder.ModelVariableResult объект, чтобы получить slreportgen.report.ModelVariable объект.

Можно настроить создание отчетов о переменной модели путем установки свойств slreportgen.report.ModelVariable объект.

Свойства

расширить все

The Simulink.VariableUsage объект, который соответствует переменной, на которой выполняется отчет. Объект содержит имя переменной, источник переменной и блоки, которые используют переменную. Это свойство доступно только для чтения.

Путь к блоку Model, который устанавливает значение переменных, заданный как вектор символов.

Предположим, что ссылка на модель использует аргумент модели, чтобы задать параметры блоков значение. Если модель имеет несколько образцы модели-ссылки, искатель переменной модели возвращает несколько образцов переменной, которая связана с аргументом модели. The ModelBlockPath свойство уникально идентифицирует образец переменной путем предоставления пути к блоку модели, который задает его значение. Если переменная не связана с аргументом модели в модели-ссылке, ModelBockPath пуст. Дополнительные сведения о ссылочных моделях и параметрах конкретного экземпляра см. в разделе «Параметризация образцов переиспользуемой модели-ссылки».

Будет ли включать список блоков, которые используют эту переменную, заданный как true или false. Если на FormatPolicy свойство имеет значение "Inline Text", список блоков не входит в отчет, независимо от значения ShowUsedBy свойство.

Если отчет содержит отчетное содержимое для блока в списке Использовано (Used By), при нажатии гиперссылки для блока выполняется переход к содержимому. См. «Генерация отчета переменных модели, схем и блоков».

Включать ли рабочую область, в которой разрешена переменная, задается как true или false. Если на FormatPolicy свойство имеет значение "Inline Text"рабочая область не включена в отчет, независимо от значения ShowWorkspaceInfo свойство.

Форматтер списка, который форматирует список блоков, использующих переменную, заданную как mlreportgen.dom.UnorderedList объект или mlreportgen.dom.OrderedList объект. Чтобы настроить формат списка, измените свойства объекта списка или замените объект списка настраиваемым объектом списка, который не содержит элементов списка.

Формат значений переменных, заданный как одна из следующих строк или векторов символов:

  • "Auto" - Форматирует значения переменных как таблицу или абзац, в зависимости от типа данных значения.

    Типы данных, форматированные как таблица, включают:

    • Массив ячеек

    • Логический массив

    • Числовой массив

    • MATLAB® таблица

    • Объект Simulink

    • Stateflow® объект

    • Графический объект

    • MATLAB структура или массив структур

    • Объект MATLAB или объектный массив

    Типы данных, форматированные как абзац, включают:

    • Вектор камеры

    • Логический скаляр или вектор

    • Числовой скаляр или вектор

    • Символьный или символьный массив

    • Строка

    • Вектор структуры MATLAB

    • Вектор объекта MATLAB

  • "Table" - Форматирует значения переменных в таблице. Переменные, которые по умолчанию отображаются как абзацы, форматируются как записи таблицы. У переменных, которые иерархически структурированы объекты, такие как MATLAB структуры, объекты MATLAB, объекты Simulink, объекты Stateflow или графические объекты, могут быть свойства, которые являются самостоятельно объектами. В этом случае иерархия уплощается, и значение свойства отображается как гиперссылка на таблицу свойств этого объекта. Таблица свойств объекта также имеет гиперссылку назад к исходной таблице.

  • "Paragraph" - Форматируйте значения переменной как абзац. Переменные, которые по умолчанию форматируются как таблицы, уплощаются и форматируются как абзац.

  • "Inline Text" - Форматирует переменную в соответствии с окружающим текстом.

Table reporter используется для форматирования значения переменной, заданного как mlreportgen.report.BaseTable объект. Чтобы настроить внешний вид таблицы, измените свойства репортера таблицы по умолчанию или замените ее настраиваемым репортером таблицы. Если вы добавляете содержимое в Title свойство по умолчанию или настраиваемого репортера таблицы, содержимое появляется перед заголовком таблицы в сгенерированном отчете.

Форматтер абзацев для форматирования значения переменной модели, заданной как mlreportgen.dom.Paragraph объект. Чтобы настроить внешний вид абзаца, измените свойства mlreportgen.dom.Paragraph объект или замените объект настраиваемым mlreportgen.dom.Paragraph объект. Если вы добавляете содержимое к объекту абзаца по умолчанию или замены, содержимое появляется перед содержимым переменной в сгенерированном отчете.

Форматтер текста для форматирования имени и значения переменной модели, когда текст линии с окружающим текстом, заданным как mlreportgen.dom.Text объект. Чтобы настроить внешний вид текста, измените свойства mlreportgen.dom.Text по умолчанию объект или замените объект настраиваемым mlreportgen.dom.Text объект. Если вы добавляете содержимое к объекту текста по умолчанию или замещения, содержимое появляется перед содержимым переменной в сгенерированном отчете.

Максимальное количество отображаемых столбцов таблицы в виде положительного целого числа. Для переменных массива, сообщаемых с использованием таблицы, если количество столбцов больше значения MaxCols свойство, таблица срезана вертикально. Слайсинг разделяет таблицу на несколько таблиц.

Максимальное количество уровней для отчета переменной, которая является структурированным объектом или массивом структурированных объектов, заданное в виде неотрицательного целого числа. Уровни, меньшие или равные значению DepthLimit сглаживаются в последовательность взаимосвязанных таблиц (см. FormatPolicy свойство). Уровни, превышающие предел глубины, не сообщаются. Если вы задаете DepthLimit свойство 0, структурированные объекты не развернуты.

Максимальное количество объектов в иерархии объектов для отчета, заданное в виде положительного целого числа.

Включать ли заголовок, заданный как true или false. Заголовок содержит имя переменной и, опционально, тип данных. Если IncludeTitle является true, заголовок включён. По умолчанию заголовок содержит только имя переменной. Чтобы включить тип данных переменной, установите ShowDataType свойство к true.

Заголовок переменной для отчета, заданный как вектор символов, строковый скаляр mlreportgen.dom.Text объект, mlreportgen.dom.InternalLink объект, или mlreportgen.dom.ExternalLink объект.

Если на FormatPolicy для свойства задано значение "Inline Text" и Title для свойства задано значение:

  • Объект DOM, форматирование, заданное объектом DOM, игнорируется

  • Система координат mlreportgen.dom.InternalLink или mlreportgen.dom.ExternalLink объект, текст ссылки используется для заголовка, но заголовок не является ссылкой

В обоих случаях для форматирования заголовка используйте TextFormatter свойство этого ModelVariable репортер.

Если вы не задаете Title свойство, заголовок является именем переменной.

Отображать ли тип данных переменной в заголовке, заданный как true или false.

Отображать ли свойства с пустыми значениями в виде true или false. The ShowEmptyValues свойство применяется только к объекту MATLAB, объекту Simulink и переменным объекта Stateflow.

Отображать ли свойства, которые используют значение по умолчанию, заданное как true или false. The ShowDefaultValues свойство применяется только к объекту MATLAB, объекту Simulink и переменным объекта Stateflow.

Функция или выражение для фильтрации свойств отчетной переменной модели из отчета. Задайте функцию как указатель на функцию. Задайте выражение как строковый скаляр или вектор символов. Это свойство применяется только к переменной, содержащей объект. Если вы не предоставляете PropertyFilterFcnвсе свойства переменной модели включены в отчет.

Если вы предоставляете указатель на функцию, связанная функция должна:

  • Примите следующие аргументы:

    • variableName - Имя сообщаемой переменной

    • variableObject - Сообщаемая переменная

    • propertyName - Имя свойства сообщаемой переменной

  • Возврат true для фильтрации указанного свойства из отчета или false включить свойство в отчет.

Например, этот код препятствует отображению Description и Complexity свойства Simulink.Parameter объект.

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('modelvarrpt','pdf');

model_name = load_system('sldemo_mdlref_datamngt');


finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    varRptr = getReporter(result);
    varRptr.PropertyFilterFcn = @varPropertyFilter;
    add(rpt,varRptr);
end

close(rpt);

close_system(model_name);
rptview(rpt);

function tf = varPropertyFilter(~, variableObject,propertyName)
if isa(variableObject, 'Simulink.Parameter')
    tf = (propertyName == "Description") ||  ...
        (propertyName == "Complexity");
else
    tf = false;
end
end

Если вы задаете строковый скаляр или вектор символов, он должен содержать выражение. Выражение:

  • Можно использовать переменные variableName, variableObject, и propertyName

  • Необходимо задать переменную isFiltered на true для фильтрации указанного свойства из отчета или false включить свойство в отчет

Для примера этот код фильтрует CoderInfo свойство Simulink.Parameter объект из отчета.

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('modelvarrpt','pdf');

model_name = load_system('sldemo_mdlref_datamngt');


finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    varRptr = getReporter(result);
    
    varRptr.PropertyFilterFcn = "isFiltered = " + ...
        "isa(variableObject, 'Simulink.Parameter') && " + ...
        "propertyName == 'CoderInfo';";
    add(rpt,varRptr);
end

close(rpt);

close_system(model_name);
rptview(rpt);

Формат или точность, используемые для отображения нецелочисленных числовых значений.

Задайте формат как строковый скаляр или вектор символов. Смотрите formatSpec аргумент в sprintf страница с описанием.

Задайте точность как положительное целое число. Смотрите precision аргумент в num2str страница с описанием.

Пример: "%.2f" отображает двойные значения с двумя цифрами справа от десятичного знака.

Пример: 2 отображает максимальное количество двух значащих цифр.

Источник шаблона для этого репортера, заданный одним из следующих способов:

  • Вектор символов или строковый скаляр, который задает путь к файлу, содержащему шаблон для этого репортера

  • Репортер или отчет, шаблон которого используется для этого репортера или библиотека шаблонов которого содержит шаблон для этого репортера

  • DOM-документ или деталь документа, шаблон которой используется для этого репортера или библиотека шаблонов которой содержит шаблон для этого репортера

Указанный шаблон должен совпадать с типом отчета, к которому добавлен этот репортер. Для примера, для Microsoft® Отчет о словах, TemplateSrc должен быть шаблоном репортера Word. Если на TemplateSrc свойство пусто, этот репортер использует шаблон репортера по умолчанию для типа выхода отчета.

Имя шаблона для этого репортера, заданное как вектор символов или строковый скаляр. Шаблон для этого репортера должен быть в библиотеке шаблонов источника шаблона (TemplateSrc) для этого репортера.

Цель гиперссылки для этого репортера, заданная как вектор символов или строковый скаляр, задающий идентификатор цели ссылки или mlreportgen.dom.LinkTarget объект. Вектор символов или строковое скалярное значение преобразуется в LinkTarget объект. Цель ссылки непосредственно предшествует содержимому этого репортера в выход отчете.

Методы

расширить все

Примеры

свернуть все

Используйте свойства slreportgen.report.ModelVariable объект для настройки форматирования переменной.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");

% Create a Chapter
chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Reporter Example";

% Load the model
model_name = "slrgex_sf_car";
load_system(model_name);

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

while hasNext(finder)
    result = next(finder);
    
    % Get the ModelVariable reporter for the result
    % Customize the formatting of numbers
    reporter = getReporter(result);
    reporter.NumericFormat = "%.4f";
    
    % Add the reporter to the chapter
    add(chapter,reporter);
end
% Add chapter to the report
add(rpt,chapter);

% Close the report and open the viewer
close(rpt);
rptview(rpt);

Сгенерируйте отчет, который включает:

  • Глава для переменных модели

  • Глава для каждой диаграммы модели с разделом для блоков в схеме

Каждое имя блока в списке Used By для переменной модели является гиперссылкой на соответствующее содержимое, сообщенное для блока.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");

% Load the model
model_name = "slrgex_sf_car";
load_system(model_name);

% Create a Chapter for the Variables
chapter = mlreportgen.report.Chapter();
chapter.Title = sprintf("Model Variable Report for the %s model",model_name);

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

% Report on the variables
while hasNext(finder)
    result = next(finder);
    reporter = getReporter(result);
    add(chapter,reporter);
end
add(rpt,chapter);

% Add diagrams to the report
finder = slreportgen.finder.DiagramFinder(model_name);
while hasNext(finder)
    result = next(finder);
    ch = mlreportgen.report.Chapter(result.Name);
    add(ch, result);
    % Add a section for the blocks in the diagram
    sect = mlreportgen.report.Section("Title","Blocks");
    blFinder = slreportgen.finder.BlockFinder(result.Object);
    while hasNext(blFinder)
        blockresult = next(blFinder);
        add(sect,blockresult);
    end
    add(ch,sect);
    add(rpt, ch);
end

% Close and view the report
close(rpt);
rptview(rpt);
Введенный в R2019b