Настройте гиперссылки схемы 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 схему корневой системы с помощью генератора отчетов Схемы

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

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

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

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

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 схему подсистемы с помощью генератора отчетов Схемы

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

Чтобы настроить цель для гиперссылки, удалите цель ссылки для этого генератора отчетов путем установки LinkTarget свойство генератора отчетов к пустой строке. Это гарантирует то нажатие на transmission блокируйтесь в 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);

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

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

id = slreportgen.utils.getObjectID(transmission);

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

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

close(rpt);
rptview(rpt);