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

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

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

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

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

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

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

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

model = "sf_car";
load_system(model);

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

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

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

Включайте sf_car/Engine схему подсистемы с помощью генератора отчетов Схемы

Этот генератор отчетов снабжает предисловием объект отчета, который он создает с целью гиперссылки, ID которой также основан на пути сообщаемого элемента в модели. Генератор отчетов Схемы (diag1) для корневой системы sf_car также использует тот же ID, чтобы создать гиперссылку на Блоке двигателя в снимке состояния. Так, нажатие на Блок двигателя автоматически предназначается к этому снимку состояния схемы подсистемы в отчете.

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

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

Включайте sf_car/transmission схему подсистемы с помощью генератора отчетов Схемы

Нажатие на блок передачи в sf_car снимке состояния схемы корневой системы перешло к снимку состояния схемы подсистемы передачи в отчете.

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

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

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

Создайте пользовательскую цель для гиперссылки блока sf_car/transmission

Чтобы поставить новую цель для гиперссылки, сначала используйте функцию slreportgen.utils.getObjectID, чтобы получить тот же ID, который использует генератор отчетов Схемы. Используйте генератор отчетов SimulinkObjectProperties, чтобы сгенерировать таблицу свойства для блока передачи. Измените свойство LinkTarget генератора отчетов к ID, полученному с slreportgen.utils.getObjectID. Генератор отчетов Схемы (diag1) для корневой системы sf_car также использует тот же ID, чтобы создать гиперссылку на блоке передачи в снимке состояния, таким образом нажимание на блок теперь предназначается для этой таблицы свойства блока.

id = slreportgen.utils.getObjectID(transmission);

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

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

close(rpt);
rptview(rpt);