Multishape

Das Bodenshape und das Shape „Schuss“
===================================
Und so habe ich das Shape erstellt:
Ich ziehe die sieben Shapes auf das Zeichenblatt und sehe sie mir an:

Es fällt auf, dass einige der Shapes gruppiert sind. Da es schwierig ist eine Gruppe auszublenden (weil das Gruppenshape auf den einzelnen Shapes liegen und die Gruppe selbst keine Linie und Füllung hat). Also hebe ich so lange die Gruppen auf, bis die Shapes „flach“ sind:

Da ich nun einzelne Shapes habe, werden sie über Entwicklertools / Vorgänge / Verbinden zu einem Shape verbunden.
Die sieben Shapes werden mit Ausrichten ([F8]) übereinander gelegt und erneut gruppiert.
Im ShapeSheet der Gruppe füge ich einen Abschnitt „userdefinied cell“ ein. Die Zeile heißt „Boden“.
Ich fügen einen Abschnitt „Action“ ein, der sieben Zeilen erhält (Einfügen / Zeilen). Die Menüs lauten: =“Füllkörper unregelmäßig“, =“Kaskadeneinbauten“, =“Füllkörper regelmäßig“, … In den Actions baue ich die Formel ein:
SETF(„User.Boden“,1)
SETF(„User.Boden“,2)
SETF(„User.Boden“,3) usw.
Das heißt: in die Zelle User.Boden wird der Wert 1 oder 2 oder 3 … hineingeschrieben – je nachdem, welcher Eintrag im Kontextmenü ausgewählt wurde. Schließlich wird noch in der Spalte Checked die Formel =User.Boden=1 oder =User.Boden=2 oder =User.Boden=3 … eingetragen. Das heißt: steht in der Zelle User.Boden der Wert 1, dann liefert =User.Boden=1 den Wert True. Die Folge: der Haken wird gesetzt.

Ich sehe unter Entwicklertools / Shapename nach, wie das Shape heißt – hier: Sheet.548. Die Gruppe wird geöffnet (über das Kontextmenü). Achtung: nicht Gruppe aufheben – denn an der Gruppe steckt ja das selbstgebaute Kontextmenü:

Die einzelnen Mitglieder der Gruppe werden markiert. Das ShapeSheet wird angezeigt. Dort wird nun in die Zelle NoShow im Geometrieabschnitt eingetragen:
Sheet.548!User.Boden<>6
Das heißt: wenn in der Zelle User.Boden der Gruppe NICHT der Wert 6 (hier: Glockenboden) steht, liefert die Formel Sheet.548!User.Boden<>6 den Wert True und NoShow = True bedeutet: dieses Shape wird nicht angezeigt.

Das muss man für alle sieben Mitgliedsshapes machen. Achtung: einige der Shapes haben mehrere Geometrieabschnitte – man muss in jedem Abschnitt diese Formel eintragen.
Das Shape ist fertig – in Visio kann man über Entwicklertools / Verhalten einschalten: „Nur Gruppe“, damit der Anwender nicht fälschlicherweise in die Gruppe hineinklickt.

Dieses Shape habe ich in den Schuss eingebaut. Ich habe den Schuss aus der Schablone gezogen, die Gruppierung aufgehoben. Erneut gruppiert. Nun heißt die Gruppe „Sheet.100“ und nicht „Schuss mit EBH (Packung)“ – die Leerzeichen und die Sonderzeichen sind unglücklich. An die Gruppe füge ich die Daten an, wobei die Liste der Füllung die gleiche Reihenfolge hat, wie mein Boden-Shape:
leer;Füllkörper unregelm.;Kaskade;Füllkörper regelm.;Siebboden;Ventilboden;Glockenboden;Packung

Das Shape erhält im ShapeSheet zwei benutzerdefinierte Zellen:
User.Boden und User.Bodennummer
In User.Boden wird der ausgewählte Text der Shapedaten wiederholt:
=FIND(Prop.Füllung,Prop.Füllung.Format)
In User.Bodennummer wird die Nummer des Eintrags bestimmt – ich suche also die Position des Textes in der Liste:
=IF(User.Boden=1,0,IF(User.Boden=6,1,IF(User.Boden=27,2,IF(User.Boden=35,3,IF(User.Boden=54,4,IF(User.Boden=64,5,IF(User.Boden=76,6,7)))))))
Diese Formel liefert 0 bei „leer“, 1, bei „Füllkörper unregelm.“, 2 bei „Kaskade“ usw.
Das Bodenshape wird in die Gruppe eingefügt. Dort verweist nun die Zelle User.Boden des inneren Shapes auf die Zelle des äußeren Gruppenshapes.
=Sheet.100!User.BodenNummer
Die Gruppe kann über Verhalten geschützt werden.

Das fertige Shape:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert