Hier eine 2. Möglichkeit um ein Replace über VBA durchzuführen
Vorteile: schneller und sicherer als die erste Variante (man muss nicht ueber API und Fenstergehen)
Nachteil: nur joinfähige Elemente, also z.B. keine Punkte oder Planes, können replaced werden; exklusive Eltern können nicht automatisch gelöscht werden
folgende Procedur in ein öffentliches Modul einfügen
Der Aufruf benötigt 2 Parameter:
1. MyJoinToRefresh [Join] – Join dessen Inhalt replaced werden soll
2. MyJoinNewInput [Join] – inhalt diese Joins wird im 1. Join eingefügt
Sub JoinInhaltReplace(MyJoinToRefresh As HybridShapeAssemble, MyJoinNewInput As HybridShapeAssemble) Dim JoinElement As Reference ' alte Elemente loeschen For i = 1 To MyJoinToRefresh.GetElementsSize 'To Anzahl der Elemente im Join MyJoinToRefresh.RemoveElement 1 Next ' neue Elemente auslesen und zum alten Join hinzufuegen For i = 1 To MyJoinNewInput.GetElementsSize Set JoinElement = MyJoinNewInput.GetElement(i) MyJoinToRefresh.AddElement JoinElement Next MyPart.UpdateObject MyJoinToRefresh 'update ' MyJoinNewInput mit neuem Inhalt loeschen Set ObjektReferenz = MyPart.CreateReferenceFromObject(MyJoinNewInput) MyHybShapeFactory.DeleteObjectForDatum MyJoinNewInput End Sub
Beispiel zum Aufruf der Procedur:
JoinInhaltReplace MyJoin, MyJoin2