exponenta event banner

Настройка гиперссылок на схему Simulink в отчетах HTML и PDF

В этом примере показано, как настроить гиперссылки навигации диаграмм Simulink, встроенных в отчеты, для отчетов в формате PDF и HTML. По умолчанию при щелчке по элементу диаграммы выполняется переход к разделу отчета, в котором этот элемент документируется. Чтобы указать другое назначение для гиперссылок, выполните процедуру, описанную в этом примере.

Настройка отчета и загрузка модели Simulink

Импортируйте пакеты DOM и Report API, чтобы не использовать длинные, полные имена классов.

import mlreportgen.dom.*
import slreportgen.report.*

Создайте и откройте отчет Simulink.

rpt = Report("myreport","pdf");
open(rpt);

Загрузка модели Simulink.

model = "slrgex_sf_car";
load_system(model);

Включить схему корневой системы slrgex_sf_car с помощью репортера схем

Diagram репортер накладывает каждый элемент slrgex_sf_car снимок диаграммы с гиперссылкой для перехода к разделу отчета, описывающему этот элемент. Гиперссылка и ее идентификатор создаются с использованием пути элемента в модели. Например, блок подсистемы, такой как Engine или transmissionвключает в себя гиперссылку, используемую для перехода к соответствующему снимку схемы подсистемы в отчете.

diag1 = Diagram(model);
diag1.Snapshot.Caption = strcat("Diagram snapshot for root system: ",model);
add(rpt,diag1);
add(rpt,PageBreak);

Включение схемы подсистемы theslrgex_sf_car/Engine с помощью репортера диаграмм

Этот репортер предвещает создаваемый объект отчета с целью гиперссылки, идентификатор которой также основан на пути элемента отчета в модели. Diagram репортёр (diag1) для корневой системы slrgex_sf_car также использует тот же идентификатор для создания гиперссылки на Engine блок в снимке. Таким образом, нажмите на Engine блок автоматически предназначен для этого снимка схемы подсистемы в отчете.

engine = strcat(model,"/","Engine"); 

diag2 = Diagram(engine);
diag2.Snapshot.Caption = strcat("Diagram snapshot for subsystem: ",engine);
add(rpt,diag2);
add(rpt,PageBreak);

Включение схемы подсистемы slrgex_sf_car/transmission с помощью репортера диаграмм

Щелчок по transmission блок в slrgex_sf_car моментальный снимок корневой системной схемы переходит к transmission снимок схемы подсистемы в отчете.

Чтобы настроить цель для гиперссылки, удалите цель ссылки для этого репортера, установив LinkTarget свойство репортера для пустой строки. Это гарантирует, что щелчок по transmission блок в slrgex_sf_car моментальный снимок корневой системной схемы не переходит к transmission схема подсистемы. Затем создайте пользовательский целевой объект для гиперссылки, как описано в следующем разделе.

transmission = strcat(model,"/","transmission"); 

diag3 = Diagram(transmission);
diag3.LinkTarget = "";
diag3.Snapshot.Caption = strcat("Diagram snapshot for subsystem: ",transmission);
add(rpt,diag3);
add(rpt,PageBreak);

Создание пользовательского целевого объекта для гиперссылки блока slrgex_sf_car/transmission

Чтобы задать новый целевой объект для гиперссылки, сначала используйте slreportgen.utils.getObjectID для получения того же идентификатора, что и Diagram использование репортера. Используйте SimulinkObjectProperties для создания таблицы свойств для transmission блок. Изменить LinkTarget свойство репортера для идентификатора, полученного с помощью slreportgen.utils.getObjectID. Репортер «Схема» (diag1) для корневой системы slrgex_sf_car также использует тот же идентификатор для создания гиперссылки на transmission блок в моментальном снимке, поэтому щелчок по блоку теперь нацелен на эту таблицу свойств блока.

id = slreportgen.utils.getObjectID(transmission);

props = SimulinkObjectProperties(transmission);
props.LinkTarget = id;
add(rpt,props);

Закрыть и просмотреть отчет

close(rpt);
rptview(rpt);