Daten und Datengrafik

Eine hübsche Frage zu Visio:
An eine Zeichnung wird eine Exceltabelle gebunden mit technischen Informationen. Einige davon werden über eine Datengrafik angezeigt. Die Frage: Ich möchte die Texte ein klein wenig verschieben.
Leider sind die Datengrafiken etwas sperrig in Bezug auf die Anpassung, beispielsweise von Textpositionen.
Ich schlage vor ein eigenes Shape zu erstellen. Eine Gruppe, die mehrere Mitgliesdselemente beinhaltet. Ein Datensatz wird auf die Gruppe gezogen. Die „inneren“ Shapes holen sich mit einem Verweis auf das äußere Gruppenshape die Information, beispielsweise
=Sheet.4711!Prop._vis_Power
Diese Information wird angezeigt, kann bequem formatiert und verschoben werden. Die Datengrafik muss entfernt werden.
Und dann kam die Frage: Aber ich möchte möglicherweise noch eine Farbe verwenden – je nach Wert. Natürlich kann man so etwas im ShapeSheet einrichten. Datengrafik wäre einfacher.
Mein Vorschlag – warum nicht beides: ein selbst gebautes Shape, dass die Daten anzeigt unter Verwendung der Datengrafik. Der Vorschlag kam gut an.

Externe Daten

Wenn man in Visio externe Daten an eine Datei bindet, kann man leicht per Programmierung darauf zugreifen.
MsgBox ActiveDocument.DataRecordsets(1).CommandString
zeigt, dass ein SQL-Befehl dahinter liegt.


Mit einer Schleife kann man beispielsweise alle Namen auslesen:
ActiveDocument.DataRecordsets(1).DataColumns(j).Name

Shape-Reports

Schöne Aufgabe.
An eine Visio-Zeichnung wurden externe Daten gebunden: Eine Exceltabelle mit Informationen zu Racks. Die Aufgabe: Pro Gestell sollen die Infomationen der Racks zusammengefasst werden.


Nichts leichter als das – dafür stellt Visio einen Assistenten Shape-Berichte zur Verfügung.
Doch schon bei der ersten Frage zögere ich – welche Shapes sollen denn eingesammelt werden? Ich greife auf die x- und y-Position zu UND überprüfe, ob ein bestimmtes Datenfeld vorhanden ist. So stelle ich sicher, dass ich einerseits die Racks eines bestimmten Schrankes habe, andereseits aber nicht Elemente des Schranks selbst.


Der zweite Schritt ist leichter – es werden die Daten ausgewählt, die eingesammelt werden sollen.


Da die Summe berechnet werden soll, muss man die Option „GESAMT“ wählen. Einzelwerte sollen nicht angezeigt werden. Dies kann man über die Schaltfläche „Optionen“ deaktivieren.


Über die Schaltfläche „Sortieren“ ist es möglich die Reihenfolge der Felder zu ändern.


Der Bericht wird gespeichert.


Und ausgeführt – als Visio-Shape in der Zeichnung. Ebenso werden weitere Berichte erzeugt.


Über das Kontextmenü können die Berichte nun aktualisiert werden.

Shape-Daten

Wenn Sie in Visio Shape-Daten erstellen sollten Sie nicht beide Optionen „Beim Ablegen fragen“ UND „Ausgeblendet“ ankreuzen – die Option „Beim Ablegen fragen“ ist dann wirkungslos – klar! die Daten werden ja nicht angezeigt …

Shape-Datensätze

Sehr geehrter Herr Martin,
vielen Dank für das freundliche Gespräch und die Unterstützung. Hier noch einmal die Fehlerbeschreibung von meiner Seite.
• Ich habe ein Mastershape erzeugt. Die Datensätze des Mastershapes wurde nicht manuell erzeugt, sondern wurden von einer Shape-Datensatz Vorlage (hier „EMS_Instrument“) übernommen. Bei den Shapedaten habe ich eine „Variable Liste“ erzeugt mit fest hinterlegten Einträgen aus der Shapedaten-Vorlage.
• Nutze ich nun dieses Mastershape in einer Zeichnung und definiere unter „Funktion“ einen frei gewählten Text welcher nicht in der vordefinierten Auswahl besteht z.B. ABC. Dieser wird jedoch nach dem Schließen und erneuten Öffnen der Zeichnung aus dem verwendeten Shape wieder entfernt/gelöscht:
• Aus meiner Sicht gleicht Visio beim Laden der Zeichnung alle in der Zeichnung verwendeten Shapes mit den Mastershapes bzw. eigentlich mit der verknüpften Datensatzvorlagen ab. Da bei diesem der Eintrag „ABC“ nicht existiert wird der Eintrag ABC gelöscht bzw. die einzelnen Datensatzvorlage einfach wieder überschrieben. (Hinweis am Rande: Dieses passiert nur, wenn die variable Liste bereits in der Datensatzvorlage Einträge enthält. Ist die variable Liste in der Datensatzvorlage leer, werden freie Eingaben in der Zeichnung nicht überschrieben.)
• Ich habe mir nun über den Weg geholfen, dass ich im Mastershape die Verknüpfung „User.CPMSetList“ zur Datensatzvorlage entfernt habe und so kein Abgleich mehr Datensatzvorlage besteht.
• Ich würde mich freuen, wenn sie mir dieses Phänomen bei ihnen auch einmal gegenprüfen könnten.
• Zur Info: Ich nutze Visio Professional 2016 im „Verfahrenstechnik“ Modus
Best Regards
#####
Hallo Herr T.,
es geht einfacher: erstellen Sie ein Shape mit Daten. Fügen Sie die Daten zu einem ShapeDatensatz hinzu:
Übertragen Sie die Daten auf ein zweites Shape. Die Daten sind auf dem zweiten Shape vorhanden. Löschen Sie den Shape-Datensatz. Die Datenfelder (und mit ihnen die Daten) werden ebenfalls gelöscht. Das kann nicht im Sinne des Erfinders sein.
Ich habe hier Visio in Office 365 Version 1905; Build 11629.20246 – das dürfte die neueste Version sein.
 
Umgekehrt: mir ist aufgefallen: wenn ich das Shape mit den Daten, die aufgrund eines Daten-Satzes erzeugt wurden, in eine andere Datei kopiere, wird der Shape-Datensatz mitkopiert.
Sie haben recht: der Verweis auf den Daten-Satz steht im ShapeSheet – wird die Zelle „User.CPMSetList“ gelöscht, wird die Verknüpfung aufgehoben – alles klappt wieder.
Was mich wundert: ich finde die Shape-Datensätze nicht! Weder im ShapeSheet des Dokuments noch des Zeichenblattes. Auch nicht im Zeichnungsexplorer. Irgendwo müssen sie doch gekapselt sein … Witzig: wenn ich mit dem Makro diese Aktionen aufzeichne, erhalte ich: NICHTS!
 
Sorry – ich muss es deutlich sagen – das ist wohl ein Bug! Heißt: „vorsichtig“ bis gar nicht mit den Shape-Datensätzen umgehen!
 
Ich habe in meinem Buch „Visio 2013/2016 für Entwickler“ aufgelistet:
Erstaunlicherweise stehen einige Dinge nicht im ShapeSheet. Man kann sie nur per Programmierung auslesen. Hierzu gehören:
• Der Text
• Werden Informationen aus einer Datenquelle mit einem Shape verknüpft, kann man aus den ShapeSheet nicht die Verknüpfung ablesen. Die Daten werden bei jeder Aktualisierung neu in die Daten des Shapes geschrieben.
• Der Name des Zeichenblattes
• Der Name des verwendeten Hintergrundblattes
 
Ich werde es in der nächsten Auflage um den Punkt „Shape-Datensätze“ erweitern.
 
schöne Grüße
 
Rene Martin
 

Datengrafik

Hallo Herr Martin,
Noch eine Frage zu Visio:
Ich würde die Prozesslandkarte gerne für eine Reifegradanalyse nutzen.
Das heißt konkret, dass in jedem Shape der Reifegrad in drei Stufen angegeben werden kann. Abhängig von der Angabe des Reifegrads (Bsp. niedrig, mittel, hoch) soll in oder neben dem Shape eine Ampel mit entsprechender Ampelfarbe angezeigt werden.
Die Angaben über die Reifegarde sollten aus Visio nach Excel für Auswertungen exportiert werden können.
Wie schätzen Sie die technische Umsetzung dieser Idee ein?
#####
Hallo Herr H.,
ich würde das mit einer Datengrafik lösen: definieren Sie ein Datenfeld (z.B. „Reifegrad“). Sie können sich den Text als Feld anzeigen lassen (Einfügen / Feld).
Dann wechseln Sie in die Registerkarte „Daten“, öffnen den Dialog „erweiterte Datengrafiken“ und erstellen eine Datengrafik.

Daten visualisieren

Man muss in Visio nicht immer mit den Datengrafiken visualisieren. Man kann auch eine Beziehung zwischen Shape und Daten herstellen – schon kann man über die Größe eine Beziehung der einzelnen Elemente zueinander darstellen (hier: Passagiere / Flughafen)

Suche nach Shape-Name

Übrigens – wenn Sie den Namen eines Shapes in Visio wissen (beispielsweise, weil Sie ihn mit einem Bericht oder per Programmierung ausgelesen haben), können Sie nach dem Shape suchen lassen. Im Suchen-Dialog müssen Sie allerdings explizit die Option „Shape-Name“ auswählen.