Hallo Rene
Vielen Dank für Dein Feedback. Ich versuche mal das Problem zu schildern.
Ausgangslage: Ich habe aus 3 einzelnen Shapes eine Gruppe erstellt und wie Du siehst, arbeite ich mit ShapeDaten. Dank Deinem Buch (Visio 2010 Programmierung) habe ich das bis hier auch ganz gut hinbekommen 😉
Das Shape für den Prozesstext (Zeile 1) ist variabel, d.h., es verlängert sich nach unten hin, wenn mehr Text eingestellt wird.
Problem: Wie Du sehen kannst, wird zwar das Mitgliedshape für Prozesstext verlängert, aber die AutoVerbinden Pfeile sind dem Gruppenshape zugeordnet.
Ich habe schon 2 Abende damit verbracht eine Lösung zu erarbeiten oder im Netz zu finden. U.a. habe ich auch in den nachfolgenden Einstellmöglichkeiten mein Heil gesucht. Das hat mich aber leider nicht weitergebracht.
Auch in den Shapesheet Abschnitten habe ich in Bezug auf AutoConnect nichts finden können. Wenn ich versuche, auf das Shapesheet der Gruppe die Grösse zu verändern, hatte dies auch immer Einfluss auf die Grösse bzw. Position der Mitgliedershapes. Entsprechende Lock-Einstellungen brachten dort nichts.
Der Einfachheit halbe lege ich Dir noch die entsprechende VSS Datei bei.
Hast Du mir eine Idee dazu, wie ich bei einem Gruppenshape die Position der AutoVerbinden-Pfeile steuern/beinflussen kann, ohne dass sich die Mitgliedershape dadurch verändern?
Freue mich bereits auf ein Feedback von Dir.
Liebe Grüsse und ciao bis bald,
David
Hallo David,
Ich sehe, dass Du mein Visio-Buch (S. 79-82 und S. 128-133) doch nicht so genau gelesen hast – sonst hättest Du es alleine hinbekommen 😉
Visio hat zwei (oder drei) Koordinatensysteme: das eine ist das Blatt: Ursprung links unten (0/0). Das zwei befindet sich im Shape. Jedes Shape hat einen Pin. Meistens ist er in der Mitte des Shapes, d.h.: LocPinX:Width*0.5 // LocPinY.Height*0.5. Die absolute Position dieses Pins wird in den Zellen Width und Height festgelegt, bspw. bei 30 mm // 240 mm. Sie beziehen sich auf die Blattkoordinaten.
Wenn Du drei Shapes hast, dann hat jedes Shape einen Namen, bsp. Sheet.4. Wenn Du diese drei Shapes gruppierst, dann hast Du vier Shapes. Die drei „inneren“ Shapes beziehen sich auf das Gruppenshape. In Width steht beispielsweise: =Sheet.8!Width*0.6207, in PinX bspw: =Sheet.8!Width*0.3103. Wird nun die Gruppe breiter gezogen, dann vergrößern sich die „Kinder“ proportional mit den Eltern. Du hast nun die Formel der Height von Deinem Kindshape geändert in:
=GUARD(MAX(11.5 mm,TEXTHEIGHT(TheText,Width))) Damit nimmt es keinen Bezug mehr auf das übergeordnete Shape, das heißt: beim Vergrößern der Gruppe reagiert das Kind anders; beim dynamischen Vergrößern des Kindes durch den Text passt es sich nicht mehr an.
Die Lösung: Ich habe den LocPinY des unteren Kindes an die Oberkante geheftet:
=GUARD(Height*1)
Die oberen beiden Kästchen sind 4.7 mm hoch, das heißt ich platziere das Teilchen auf:
Height: =GUARD(Sheet.2!Height*1-4.7 mm)
heißt: von der oberen Gruppenkante gerechnet 4.7 mm nach unten. Damit stelle ich sicher, dass es sich beim Vergrößern nicht innerhalb der Gruppe „bewegt“.
Die Gruppe selbst nimmt nun Bezug auf ihre Kinder. Dort steht in der Zelle Height:
=GUARD(Sheet.5!Height+Sheet.4!Height)
liebe Grüße