В этом примере показано, как настроить гиперссылки навигации диаграмм Simulink, встроенных в отчеты, для отчетов в формате PDF и HTML. По умолчанию при щелчке по элементу диаграммы выполняется переход к разделу отчета, в котором этот элемент документируется. Чтобы указать другое назначение для гиперссылок, выполните процедуру, описанную в этом примере.
Импортируйте пакеты DOM и Report API, чтобы не использовать длинные, полные имена классов.
import mlreportgen.dom.* import slreportgen.report.*
Создайте и откройте отчет Simulink.
rpt = Report("myreport","pdf"); open(rpt);
Загрузка модели Simulink.
model = "slrgex_sf_car";
load_system(model); 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);Этот репортер предвещает создаваемый объект отчета с целью гиперссылки, идентификатор которой также основан на пути элемента отчета в модели. 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);
Щелчок по 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);
Чтобы задать новый целевой объект для гиперссылки, сначала используйте 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);