Autor: Rene_Martin
Wir erstellen ein Logo oder bauen es nach – mit Visio – Teil III
Das Werkzeug „Bleistift“
Wir bauen ein Logo (nach) – in Visio.
Natürlich gibt es hierfür verschiedene Wege. Kennen Sie das Werkzeug „Bleistift“?
Ich fixiere das Originallogo, das ich nachbaue über Entwicklertools / Schutz.
Ich beginne mit einem Rechteck. Wechsle zum Werkzeug Bleistift. Mit gedrückter [Strg]-Taste können neue Knoten hinzugefügt werden.
Diese können leicht verschoben werden. Wenn Sie beim Verschieben die [Alt]-Taste drücken, umgehen Sie das Gitter.
Einige Klicks – und fertig ist die neue Treppe.
Shapes drehen – aber nicht um die Mitte
Ein Blitz findet man in der Schablone „Dekorative Shapes“ (Kategorie: „Allgemein“).
Es wird gedreht. Bewegt man den Cursor auf das Rotationswerkzeug, dann kann man den Pin (den DrehBezPos) sehen.
Diesen kann man verschieben.
Mastershapes in einer Schablone
Sehr geehrter Herr Dr. René Martin,
[…] Ziel ist es die Visio Diagramme mit unserem SAP System zu verbinden.
Dazu müssen jedem Shape entsprechende Shape-Daten mitgeben werden.
Dabei haben mir Ihre Bücher
(Microsoft Visio 2010 Programmierung Microsoft Visio effizient anpassen und erweitern) und
(Visio 2013/2016 anpassen Das Handbuch für Entwickler),
wie auch Ihr Video-Training
(Visio 2010 Umfassend praxisorientiert, leicht verständlich) schon erheblich geholfen.
Da es das Ziel der Automatisierung ist dem Benutzer die Erstellung der Diagramme möglichst einfach zu machen,
soll er auch beim Anlegen neuer Shapes bestmöglich unterstützt werden.
Jetzt bin ich jedoch auf ein Problem gestoßen an welchem ich nicht weiter komme.
Ich benötige eine Möglichkeit einem neuerzeugten Shape die benötigten Shape-Daten mitzugeben, wenn es zu einer Schablone hinzugefügt und somit zum Mastershape wird.
Es gibt jedoch kein Event, welches auf dieses Ereignis anspricht.
Haben Sie vielleicht eine Idee wie sich dies umsetzen lässt?
Im Voraus schon mal vielen Dank für Ihre Hilfe
Mit freundlichen Grüßen
Hallo Herr B.,
ich verstehe den Workflow nicht ganz: der Anwender soll neue Shapes erstellen. Beim Abspeichern in einer Schablone sollen (automatisiert) Daten an diese Shapes angefügt werden.
* Warum erstellt der Anwender nicht selbst diese Daten?
* Oder: wenn es sich um immer die gleichen Daten handelt (und auch viele Daten) dann würde ich es nicht über ein Ereignis lösen, sondern über eine Schaltfläche, die der Anwender anklickt: entweder dem markierten Shape werden neue Daten hinzugefügt oder: alle Mastershapes einer Schablone werden mit diesen Daten versehen.
Der Grund: meines Wissens gibt es kein Ereignis: „ziehe ein Shape vom Zeichenblatt in die Schablone“. Und: nach meiner Erfahrung werden Shapes in die Schablone gezogen; dort manchmal bearbeitet. Manchmal werden sie auch wieder auf das Zeichenblatt gezogen, bearbeitet und wieder zurück in die Schablone gezogen; manchmal auch in der Schablone direkt bearbeitet (auf dem Zeichenblatt geht das manchmal besser).
Hilft Ihnen diese Antwort?
Anlage
In der letzten Visio-Schulung zeigte mir ein Teilnehmer eine Anlage, die er mit Visio „gebaut“ hat. Auf Anregung meines Motors. Ich war begeistert. Klasse!
Dynamische Schaltflächen auf einem Zeichenblatt
Amüsant. Wenn man in Visio eine Befehlsschaltfläche auf ein Zeichenblatt legt, liegt das nächste Shape ÜBER der Befehlsschaltfläche. Schaltet man jedoch den Entwurfsmodus aus, liegt das Shape dahinter. Es gibt keine Möglichkeit, das Shape vor die Befehlsschaltfläche zu legen.
Auch die Zellen „NoShow“ oder „Transparency“ bewirken nicht, dass die Schaltfläche ausgeblendet wird. Man könnte sie per Programmierung auf Width = 0 und Height = 0 (vielleicht noch PinX und PinY auf 0) setzen – dann ist die Schaltfläche fast verschwunden. Natürlich kann man sie auch programmieren:
Dim shp As Shape
Dim DiagramServices As Integer
DiagramServices = ActiveDocument.DiagramServicesEnabled
ActiveDocument.DiagramServicesEnabled = visServiceVersion140 + visServiceVersion150
Set shp = Application.ActiveWindow.Page.InsertObject(„forms.Commandbutton.1“, visInsertAsControl + visInsertNoDesignModeTransition)
shp.Cells(„PinX“).FormulaU = „=100mm“
shp.Cells(„PinY“).FormulaU = „=150mm“
shp.Name = „Testbutton“
‚Restore diagram services
ActiveDocument.DiagramServicesEnabled = DiagramServices
Jedoch – es bleibt mühsam dynamische Schaltfläche auf dem Zeichenblatt zu erzeugen.
Die API-Hölle
Zoom – ein Rundungsfehler
Datum der letzten Bearbeitung
Guten Morgen Herr Martin,
wir haben seit neuestem Probleme mit eingefügten Datumsfeldern auf unseren Zeichnungen.
In der Vorlage ist ein Feld – Datum der letzten Bearbeitung – eingefügt.
Bislang konnte man dann einen Plan, den man z.B. am 23.05. zuletzt bearbeitet hat, am 25.05. öffnen, und als Datum wurde der 23.05. angezeigt. So möchten wir es auch.
Nun passiert es aber, dass man die Datei am 25.05. öffnet und sofort wird auch das heutige Datum angezeigt, Beispiel im Anhang. Was machen wir falsch, haben Sie einen Tip?
#####
Hallo Frau W.,
nein – ich habe Sie nicht vergessen – ich wollte das Phänomen nur „gründlich“ untersuchen und abwarten, was am nächsten Tag passiert:
* in einer Dummy-Datei werden die drei Feldfunktionen Aktuelles Datum, Erstelldatum und Datum der letzten Bearbeitung korrekt berechnet.
* Ich habe in Ihrer Datei die Feldfunktion ausgetauscht – sie wird automatisch aktualisiert.
* In Excel gibt es „volatile“ Funktionen; das heißt Funktionen die beim Öffnen neu berechnet werden. Wenn es in Ihrer Zeichnung etwas gäbe, das beim Öffnen aktualisiert wird, müsste er beim Schließen fragen „ob Sie die Änderungen speichern möchten“. Tut Visio aber nicht.
* Gegenfrage: Ist das die einzige Zeichnung, in der das Phänomen auftritt?
schöne (und mal ratlose) Grüße
######
Hallo Herr Martin,
vielen Dank, dass Sie sich der Sache annehmen – ich bin auch ratlos.
Habe gestern nochmal eine Datei angelegt aus meiner Vorlage (s. Anhang), in der ich nochmals das Datumsfeld neu eingesetzt habe.
Obwohl ich keine Änderung vorgenommen habe, springt das Datum beim Öffnen auf das heutige.
Im Großen und Ganzen scheint das jetzt häufiger aufzutauchen. Aber noch nicht so lange, zumindest haben wir das bewusst noch nicht so wahrgenommen
Logo bauen
Im letzten Urlaub – in Georgien – habe ich ein Logo gesehen und mich gefragt in wie vielen Schritten ich es in Visio nachbauen kann.
Erster Schritt: ich benötige drei Kreise.
Zweiter Schritt: die linken beiden Kreise werden kombiniert (Registerkarte „Entwicklertools“
Dritter Schritt: das linke Shape wird mit dem rechten Kreis kombiniert.
Vierter Schritt: Um zu sehen, ob das Ergebnis korrekt ist, wird es eingefärbt. Und ein farbiges Rechteck dahinter gelegt.
Fünfter Schritt: Ein Rechteck an den Rand einzufügen ist dann nicht mehr schwierig.