Freigeben über


Page.LinkShapesToDataRows-Methode (Visio)

Verknüpft mehrere Zeilen im angegebenen Datenrecordset (wie durch die Datenzeilen-IDs festgelegt) mit mehreren Shapes auf dem Zeichenblatt und wendet die aktuelle Datengrafik optional auf die verknüpften Shapes an.

Hinweis

Dieses Visio-Objekt oder dieses Visio-Mitglied ist nur für lizenzierte Benutzer von Visio Professional 2013 verfügbar.

Syntax

Ausdruck. LinkShapesToDataRows( _DataRecordsetID_ , _DataRowIDs()_ , _ShapeIDs()_ , _ApplyDataGraphicAfterLink_ )

Ausdruck Ein Ausdruck, der ein Page-Objekt zurückgibt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
DataRecordsetID Erforderlich Long Die ID eines Datenrecordsets im aktuellen Dokument, das die zu verknüpfenden Daten enthält.
DataRowIDs() Erforderlich Long Ein Array vom Typ Long von Datenzeilen-IDs von Zeilen in dem in DataRecordsetID angegebenen Datenrecordset, das mit den in ShapeIDs() angegebenen Shapes verknüpft werden soll.
ShapeIDs() Erforderlich Long Ein Array vom Typ Long von Shape-IDs von Shapes auf dem Zeichenblatt, die mit den Datenzeilen verknüpft werden sollen, die in DataRowIDs() in dem in DataRecordsetID angegebenen Datenrecordset angegeben sind.
ApplyDataGraphicAfterLink Optional Boolescher Wert Gibt an, ob die aktuelle Datengrafik auf die verknüpften Shapes angewendet werden soll. Weitere Informationen finden Sie in den Anmerkungen.

Rückgabewert

Nichts

Bemerkungen

Die Indexpositionen der Shape-IDs im Array, das Sie für den ShapeIDs()-Parameter übergeben, sollten der Indexposition im DataRowIDs()-Array der IDs der Datenzeilen entsprechen, mit denen die Shapes verknüpft werden sollen. Das heißt, wenn Sie das Shape mit der ID 1 mit der Datenzeile mit der ID 10 verknüpfen möchten, platzieren Sie z. B. die Shape-ID und die Datenzeilen-ID an derselben Arrayindexposition in ihren jeweiligen Arrays.

Wenn Visio keine Verknüpfung zwischen einem Shape und einer Datenzeile herstellen kann, wird dieses Shape übersprungen, und Visio fährt mit dem nächsten Shape im Array fort. Rufen Sie nach dem Ausführen der -Methode die Shape.GetLinkedDataRow-Methode auf, um zu bestimmen, ob alle Shapes im Array tatsächlich mit den angegebenen Datenzeilen verknüpft sind. Wenn bei dieser Methode für eins der Shapes ein Fehler auftritt, bedeutet dies, dass das Shape nicht mit der Datenzeile verknüpft ist. Visio ist in der Regel erfolgreich, eine Zeile mit einem Shape zu verknüpfen, es sei denn, das Shape ist bereits mit Daten verknüpft, und die Einstellung link-replacement-behavior für das Datenrecordset gibt an, dass die Verknüpfung nicht ersetzt werden soll.

Wenn Sie True für den optionalen ApplyDataGraphicAfterLink-Parameter übergeben oder keinen Wert für diesen Parameter übergeben, wendet Visio die vorhandene Datengrafik erneut auf Shapes an, auf die bereits Datengrafiken angewendet wurden, bevor Sie die -Methode aufgerufen haben. Auf Shapes ohne Datengrafik wendet Visio die Datengrafik an, die zuletzt auf ein anderes Shape im aktuellen Dokument angewendet wurde.

Beispiel

Das folgende VBA-Makro (Microsoft Visual Basic for Applications) zeigt, wie die LinkShapesToDataRows-Methode verwendet wird, um die ersten drei Shapes, die dem aktiven Zeichenblatt hinzugefügt wurden, mit Daten in den ersten drei Datenzeilen im Datenrecordset zu verknüpfen, die zuletzt der DataRecordsets-Auflistung des aktuellen Dokuments hinzugefügt wurden. Da für den optionalen letzten Parameter kein Wert übergeben wird, wendet das Makro die Datengrafik auch auf die verknüpften Shapes an.

Öffnen Sie vor dem Ausführen dieses Makros eine neue Visio-Zeichnung, und verwenden Sie die DataRecordsets.Add-Methode oder eine andere Methode, um der DataRecordsets-Auflistung mindestens ein Datenrecordset hinzuzufügen. Das zuletzt hinzugefügte Datenrecordset sollte mindestens drei Datenzeilen enthalten. Fügen Sie dann dem Zeichenblatt mindestens drei Shapes hinzu.

Public Sub LinkShapesToDataRows_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intRecordsetCount As Integer 
    Dim alngDataRowIDs(0 To 2) As Long 
    Dim alngShapeIDs(0 To 2) As Long 
     
    alngShapeIDs(0) = 1 
    alngShapeIDs(1) = 2 
    alngShapeIDs(2) = 3 
     
    alngDataRowIDs(0) = 1 
    alngDataRowIDs(1) = 2 
    alngDataRowIDs(2) = 3 
         
    intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) 
     
    ActivePage.LinkShapesToDataRows vsoDataRecordset.ID, alngDataRowIDs, alngShapeIDs 
 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.