1 / 88

Microsoft Visio als universelle Graphikengine Visio als Entwicklungswerkzeug Šenaj Lelić Visio Master Trainer Europe,

Microsoft Visio als universelle Graphikengine Visio als Entwicklungswerkzeug Šenaj Lelić Visio Master Trainer Europe, Certified Visio Development Trainer DataAssist e.K. München und Zürich. Agenda. Visio als Produkt Visio als Entwicklungsumgebung

madrona
Download Presentation

Microsoft Visio als universelle Graphikengine Visio als Entwicklungswerkzeug Šenaj Lelić Visio Master Trainer Europe,

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microsoft Visio alsuniverselle Graphikengine Visio als Entwicklungswerkzeug Šenaj Lelić Visio Master Trainer Europe, Certified Visio Development Trainer DataAssist e.K. München und Zürich

  2. Agenda • Visio als Produkt • Visio als Entwicklungsumgebung • Das ShapeSheet als erste Entwicklungsumgebung • Automation mit und von Visio • Visio: eine leistungsfähige Graphik-engine und Entwicklungsumgebung für visuelle Lösungen oder Graphik-Engine einer größeren Lösung • Wo gibt‘s weitere Info‘s?

  3. Voraussetzungen • Kenntnisse in der Programmierung von Microsoft Excel sind hilfreich aber nicht unbedingt nötig • Grundlagen der Automation von Anwendungen mit VB, VBA oder einer anderen automationsfähigen Programmiersprache

  4. Šenaj Lelić SenajL@DataAssist.de • Seit 1991 als IT-Consultant und Trainer tätig • Schwerpunkt Visualisierungslösungen, Systemsoftware, Visio und Datenbanken • Seit 1995 Gründer und Geschäftsführer von DataAssist München • Visio Master Trainer Europe • Certified Visio Development Trainer • Certified Visio Anwender-Trainer • IT Trainer-Coach

  5. Arbeiten mit Visio • Drag & Drop von vorbereiteten Komponenten (Shapes) auf die Zeichnung zur Erstellung eines visuellen Modells der Aufgabe • Nicht Zeichnungsfunktionen stehen im Vordergrund, sondern das Hinzufügen von nichtvisuellen Informationen und Verhalten (optischer Container) • Nutzung der SmartShape- Technologie ermöglicht einen Einsatz in fast allen Unternehmensbereichen('Visio ist das grafische Excel')

  6. (Smart)Shape (Shape) Zeichnungsobjekt einer Visio-Seite mit programmierbarem Verhalten Stencil (Schablone) Thematische Sammlung von Shapes in einer eigenen, verteilbaren Datei (.vss) Terminologie

  7. Terminologie 2 • MasterShape (MasterShape) • Ein Shape in einer Schablone • Template (Vorlage) • Entspricht in etwa einer Dokumentenvorlage in Office (voreing. Arbeitsumgebung) • ShapeSheet (ShapeSheet) • Container für die Shape-Parameter, wird von der Visio-Engine ausgewertet

  8. Visio Enterprise Visio Professional Visio Technical Die Visio 2000 Produktfamilie • Visio Standard • Ablaufillustration • Visio Technical • HVAC, Maschinenbau • Visio Professional • Netzwerke, Software • Visio Enterprise • IT-Doku & Planung Visio Standard

  9. Visio Network Center Visio Professional Die Visio 2002 Produktfamilie • Visio Standard • Ablaufillustration • Organigramme • Visio Professional (= Technical + Prof.) • HVAC, Maschinenbau • Netzwerke, Software • Visio Network Center (reines Add-On) • IT-Doku & Planung • IT-Modellierung Visio Standard

  10. Visio Standard • Geschäftsdiagramme und Fluss-diagramme • Grafische Darstellung vonOrganisationsstrukturen • Grafische Planung von Projekten • Erstellung von Zeichnungenfür Präsentationen • Weiterere Geschäftszeichnungenwie Formulare, Landkarten & Grafiken

  11. Visio Technical • Exaktes CAD-ähnliches Zeichnen und Arbeiten • Verfahrenstechnik-Zeichnungenund Plandiagramme • Grundrisse, Baupläne im Bereich Facility Management • Erstellen weiterer anlage-technischer Zeichnungen • Elektrische und elektronische Schemadiagramme für Steuersysteme

  12. Visio Professional • LAN-Dokumentation und Entwurf • Dokumentation von Verzeichnisdiensten • Planung von Web-Sites • Softwarekomponenten-Entwurf • Datenflussdiagramme • Entwurf von Datenbankmodellen • Analyse von Geschäftsprozessen

  13. Visio Enterprise (2000 !) • Die gesamte Funktionalitätvon Visio Professional plus: • Auto-Discovery von Netzen • UML-Softwaremodellierung • Datenbank-Modellierung • Software-ReEngineering • Visio Network Equipment

  14. Individuelle Visio-Lösungen Inkrementelle Lösungen mit Visio Entwurf anwendungsspez. Shapes SmartShapes, Datenfelder, etc. DB-Assistent ShapeSheet-Programmierung, VBA-Makros Automation, Modellierung DB-Zugriff Visuelles Frontend einer Enterprise-Lösung

  15. Komponenten einer Lösung • Erst durch dieKombination allerElemente entstehteine kompletteVisio-Lösung

  16. Visio-Lösungen wachsen • Machen Sie Ihre Shapes zu SmartShapes™ • Erleichtern Sie sich die Arbeit mit Vorlagen • Nutzen Sie die Möglichkeiten der Automation • Erstellen Sie mit Add-Ons visuelle Modelle • Visio als visuelles Frontend im Unternehmen

  17. Schablonen Visio Engine Vorlagen Automation Interface VBA VSL Add-ons EXE Die Visio-Umgebung MS Office ODBC/ADO Eigene

  18. Entwicklungsumgebung 1: Das ShapeSheet in Visio

  19. Shapes: parametrische Objekte GUI-Aktion ShapeSheet Shape als Ergebnis

  20. Das ShapeSheet • Die Grundlage für Visio‘s Flexibilität • Shapes sind parame-trische Objekte • Alle relevanten Shape-Daten finden sich im ShapeSheet und werden dort definiert und geändert • Auch für den Einsatz von Automation not-wendiges Grund-wissen

  21. Ereignisse im ShapeSheet • Ereignisse Abschnitt • TheText • EventDblClick • EventXFMod • EventDrop

  22. DependsOn im ShapeSheet • Wird typischerweise in einer benutzer-definierten Zelle eingesetzt: • =Runaddon("string") + DependsOn(trigger cell) • =Setf("Cell",formula) + DependsOn(trigger cell) • Damit lassen sich Änderungen im ShapeSheet überwachen, ohne VBA zu benötigen

  23. Beispiel zu DependsOn • Setzen der Füllfarbe über Datenfeld oder alternativ über das User Interface • Ein Datenfeld mit der Farbe erzeugen • Zwei benutzerdefinierte Zellen einfügen • =DependsOn(Prop.Color) + Setf("FillForegnd",Prop.Color) • =DependsOn(FillForegnd) + Setf("Prop.Color",FillForegnd)

  24. ShapeSheet vor Code • Formeln im ShapeSheet sind der effizienteste Weg, um in Visio eine Ereignisbehandlung zu erreichen. • Schreiben Sie keine Routinen für die Ereignisbehandlung, wenn Formeln in Zellen ausreichen!

  25. Demo ShapeSheet- Programmierung

  26. Entwicklungsumgebung 2: Automation in Visio

  27. Das Visio Objektmodell • Klar strukturierterAufbau, schlank • Vordefinierte Objekte für Dokument, Seite und Fenster etc. • Grafisch über Online-Hilfe navigierbar

  28. Entwicklungsumgebungen • VBA • Integriert - Development right out of the box! • Schnell, geeignet für die meisten Aufgaben • COM-fähige Sprachen • Z.B. VB, VC++, VBA, Delphi, etc. • Für externe Add-Ons: VSL • Zur Integration von Visio in eigene Systeme

  29. Wie wird entwickelt • ShapeSheet und VBA-Code sind in Visio miteinander verbunden • Nicht Visio wird gesteuert, sondern dasdarunter liegende ShapeSheet für jedes Shape (selbst das Zeichenblatt !) • Für eine effektive Entwicklung sind sowohl Kenntnisse der ShapeSheet-Programmierung als auch von Automation (VB(A), C++, Delphi) nötig • Grundregel: Erst Shapes.... Dann Code

  30. Planung einer Visio-Lösung • Vorlagen erleichtern den Benutzern die Arbeit • Das Programm muss folgende Aufgaben erfüllen: • User Interface und Schutz • Dateioperationen, Datenablage • Behandlung der einzelnen Shapes • Performance bedenken (VSD‘s > 10000 Shapes)

  31. Coding Issues • Early vs. late binding, Variants meiden • VBA code ist Bestandteil der Zeichnung • Code kann geschützt werden – Extras / Eigenschaften / Schutz im VBA-Editor • Zusammengesetzte Statements sind möglich, aber schwerer zu debuggen

  32. Wann läuft der Code? • Beim Start von Visio 2000 • Pfad für Add-On einstellen • Aus dem Add-On Menü • Der Visio „Entwickler-Modus“ • Beim Öffnen eines Dokuments • Alternativ RunModeEntered • Bei der Auswahl einer Menüoption • Oder Aktivierung eines Toolbar-Buttons

  33. Ein Dokument erzeugen • Verweis auf die "Documents"collection des Application-Objekts erzeugen Set oDocs = Visio.Application.Documents'oder Set oDocs = Application.Documents'oder Set oDocs = Documents • Ein neues Dokument hinzufügen Set oDoc = Documents.Add("Diagramm.vst") Set oDoc = Documents.Add("") Set oDocStencil = Documents.OpenEx( _"Blocks.vss", visOpenDocked)

  34. Verweise auf Mastershapes • Die Schablone bestimmen Set oDocStencil = Documents("Basic Shapes.vss") • Die "Masters" Collection der Schablone holen Set oMasters = oDocStencil.Masters • Verweis auf die abzulegenden Shapes Set oMaster = oMasters.Item("Star 5") 'oder Set oMaster = oMasters("Star 5") • Sicherstellen, dass auf die Masters der Schablone zugegriffen wird, nicht die der Zeichnung!

  35. Master auf der Seite ablegen • Die Zeichnungsseite holen Set oPage = ActiveDocument.Pages.Item(1) Set oPage = ActivePage • Das Mastershape ablegen Set oShape = oPage.Drop(oMaster,4.25,5.5) • 4.25, 5.5 geben die Koordinaten des Pin‘s an und werden immer in Inch angegeben! • Bei Bedarf mit ConvertResultdie Einheiten umrechnen

  36. Text zu Shapes hinzufügen • Die Text-Eigenschaftdes Shapes setzen oShape.Text = “Das ist ein String" • ASCII linefeed erzeugt Zeilenumbrüche oShape.Text = "Karl Namenlos" & _ Chr$(10) & "Vorstandsschläfer" • Anführungszeichen in Strings verdoppeln shpObj.Text = """Hello?""" • Eine übersichtlichere Möglichkeit: shpObj.Text = Chr$(34) & "Hello" & Chr$(34)

  37. Formeln von Shapes lesen • In Visio’s Objektmodell wird eine Formel durch ein Cell-Objekt repräsentiert • So erhalten Sie ein Cell-Objekt SetoCell = oShape.Cells("Width") • So erhalten Sie ein Cell-Objekt einer Seite (auch die Seite ist ein Shape) Dim oPageSheet as Visio.Shape Set oPageSheet = ActivePage.PageSheet Set oCell = oPageSheet.Cells("PageWidth")

  38. Formel oder Ergebnis? • Die EigenschaftFormulaeiner Zelle liefert die ShapeSheet-Formel als String Dim sFmla = String sFmla = oCell.Formula • Die EigenschaftResultliefert den Wert der Formel als Double in den angeg. Einheiten Dim dFmlaResult as Double dFmlaResult = oCell.Result("in") dFmlaResult = oCell.Result("mm") • Siehe auch ResultInt, ResultIU, ResultStr

  39. Eine Formel festlegen • Setzen Sie die Eigenschaft Formula: oCell.Formula = "=GUARD(Width*2)" • Setzen Sie die Eigenschaft Result oCell.Result(visNumber) = 42 • Auch ResultInt und ResultIU lassen sich setzen, ResultStr ist read-only • Zum Überschreiben einer geschützten Formel benutzen SieFormulaForce(Formeln lassen sich mit Guard schützen)

  40. Eine Collection bearbeiten • Die meisten Collections in Visio starten bei 1, außer UI objects und Systemsachen (bei 0) • DieCountEigenschaftliefert die Anzahl der Elemente einer Collection • Seit Visio 2000 auch über for each For eachshp in ActivePage.Shapes'shape bearbeitenNextshp

  41. Wichtige Eigenschaften • Masters, Pages, Styles, Fonts, Colors • Name, Fullname, Path • Creator, Description, Keywords, Subject, Title • ReadOnly, Saved, InPlace

  42. Daten aus Seiten auslesen • Eine Seite holenSet oPage = oPages.Item("pagename")Set oPage = oPages.Item(index) • Die aktive Seite holenSet oPage = Application.ActivePage (Das aktive Fenster muss ein Zeichen-fenster sein, sonst erhält man einen Fehler!)

  43. Daten aus Shapes auslesen • Eine Shape-Collection kann 'normale' Shapes, Gruppen, Führungslinien, linked/embedded objects enthalten • DieType Eigenschaft liefert den Typ des Shapes: • visTypeShape, visTypeGroup, visTypeGuide, visTypeForeignObject, visTypePage • Weitere Infos in der Entwickler-Referenz Online-Hilfe oder im DVS

  44. Mit Fenstern arbeiten • Das aktive Fenster feststellenSet oWindow = Visio.ActiveWindow • Den Typ eines Fenster feststellen If oWindow.Type <> visDrawing ThenDebug.Print "Kein Zeichenfenster"End If • Type:visDrawing, visSheet, visStencil, visIcon • SubType: visPageWin, visMasterWin, visPageGroupWin, visMasterGroupWin

  45. Die Methode CellsSRC • Nutzen Sie CellsSRC, um über Abschnitt, Zeile und Zelle auf Shapes zuzugreifen Set oCell = oShape.CellsSRC _(visSectionControls, _ '(ControlsAbsch.) visRowControl + 3, _ '(4. Zeile) visCtlX)'(Controls.X Zelle) • Siehe auch die Methoden SectionExists, RowExists, CellExists, CellsSRCExists • Eine Überprüfung sollte immer statt-finden, da evtl. Abschnitte im Shapesheet fehlen können!

  46. Visio-Ereignisbehandlung • Verhalten in ShapeSheet-Zellen • ShapeSheet Ereignisse • VBA Code hinter Ereignissen • Für Visio-Objekte • Für ActiveX Controls

  47. Zell-Abhängigkeiten • Eine Formel kann von anderen Zellen abhängen • PinY =(BeginY+EndY)/2 • EndY =PAR(PNT( Sheet.2!Connections.X1, Sheet.2!Connections.Y1)) • Es gibt ein Abhängigkeitsnetzwerk: • PinYhängt ab von EndY, da wiederum von Sheet.2!Connections.X1 abhängt. • Der Wert von Connections.X1ändert sich und sorgt dafür, daß EndYund PinYneu berechnet werden.

  48. VBA code für Ereignisse • Ereignisse sind Teil der Typelib für Visio • Die Objektehaben Ereignisse definiert, die nur bei bestimmten Objekttypen feuern • Ereignisbehandlung mit VBA auch in Visio 5.x

  49. Unterstützte Ereignisse

  50. Hierarchische Ereignissketten • Wählen Sie die Quelle, die für Ihre Aufgabenstellung am sinnvollsten ist • Viele Ereignisse werden von mehr als einem Objekt generiert: • Page.ShapeAdded -> Feuert, wenn ein Shape der Seite hinzugefügt wird • Doc.ShapeAdded -> Feuert, wenn ein Shape irgendeiner Seite des Dokuments hinzugefügt wird • App.ShapeAdded -> Feuert, wenn ein Shape irgendeiner Seite in irgendeinem Dokument der Anwendung hinzugefügt wird • Im VBA-Objektbrowser erhalten Sie Informationen über die einzelnen Ereignisdefinitionen

More Related