このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
HTML レポートおよび PDF レポートにおける Simulink ブロック線図のハイパーリンクのカスタマイズ
この例では、PDF レポートおよび HTML レポートについて、レポートに埋め込まれた Simulink ブロック線図のナビゲーション ハイパーリンクをカスタマイズする方法を説明します。既定では、ブロック線図要素をクリックすると、その要素を説明するレポートの節に移動します。ハイパーリンクに別のリンク先を指定するには、次の例の手順に従います。
レポートを設定して Simulink モデルを読み込む
長い完全修飾クラス名を使用せずに済むように、DOM API パッケージとレポート 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
ブロック線図のスナップショットの各要素と、その要素を説明するレポートの節に移動するハイパーリンクを重ね合わせます。ハイパーリンクとその ID は、モデル内の要素のパスを使用して作成されます。たとえば、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 サブシステムのブロック線図を含める
このレポーターは、作成するレポート オブジェクトの前にハイパーリンク ターゲットを付けますが、その ID もモデル内のレポートされる要素のパスに基づきます。ルート システム slrgex_sf_car
の Diagram
レポーター (diag1
) も同じ 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);
ブロック線図レポーターを使用して slrgex_sf_car/transmission サブシステムのブロック線図を含める
slrgex_sf_car
ルートシステムのブロック線図のスナップショットで transmission
ブロックをクリックすると、レポート内の transmission
サブシステムのブロック線図のスナップショットに移動します。
ハイパーリンクのターゲットをカスタマイズするには、レポーターの LinkTarget
プロパティを空の srting に設定することで、このレポーターのリンク ターゲットを削除します。これにより、slrgex_sf_car
ルート システムのブロック線図のスナップショットで transmission
ブロックをクリックしても、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
レポーターが使用するものと同じ ID を取得します。SimulinkObjectProperties
レポーターを使用して、transmission
ブロックのプロパティ テーブルを生成します。レポーターの LinkTarget
プロパティを、slreportgen.utils.getObjectID
を使用して取得した ID に変更します。ルート システム slrgex_sf_car
のブロック線図レポーター (diag1
) も、同じ ID を使用してスナップショット内の transmission
ブロック上にハイパーリンクを作成するため、ブロックをクリックするとこのブロックのプロパティ テーブルがターゲットになります。
id = slreportgen.utils.getObjectID(transmission); props = SimulinkObjectProperties(transmission); props.LinkTarget = id; add(rpt,props);
レポートを閉じて表示する
close(rpt); rptview(rpt);