Microsoft Visio als universelle Graphikengine Visio als Entwicklungswerkzeug Šenaj Lelić Visio Master Trainer Europe, Certified Visio Development Trainer DataAssist e.K.

Download Report

Transcript Microsoft Visio als universelle Graphikengine Visio als Entwicklungswerkzeug Šenaj Lelić Visio Master Trainer Europe, Certified Visio Development Trainer DataAssist e.K.

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
•
•


Das ShapeSheet als erste
Entwicklungsumgebung
Automation mit und von Visio
Visio: eine leistungsfähige Graphikengine und Entwicklungsumgebung für
visuelle Lösungen oder Graphik-Engine
einer größeren Lösung
Wo gibt‘s weitere Info‘s?
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
Šenaj Lelić
[email protected]
 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
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')
Terminologie
 (Smart)Shape
(Shape)
• Zeichnungsobjekt einer VisioSeite mit programmierbarem
Verhalten
 Stencil
(Schablone)
• Thematische Sammlung von
Shapes in einer eigenen,
verteilbaren Datei (.vss)
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 VisioEngine ausgewertet
Die Visio 2000 Produktfamilie
 Visio
Standard
 Visio
Technical
• Ablaufillustration
• HVAC, Maschinenbau
 Visio
Professional
 Visio
Enterprise
• Netzwerke, Software
• IT-Doku & Planung
Visio
Enterprise
Visio
Professional
Visio
Standard
Visio
Technical
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
Network Center
Visio
Professional
Visio
Standard
Visio Standard
 Geschäftsdiagramme
und Fluss-
diagramme
 Grafische Darstellung von
Organisationsstrukturen
 Grafische Planung von
Projekten
 Erstellung von Zeichnungen
für Präsentationen
 Weiterere Geschäftszeichnungen
wie Formulare, Landkarten & Grafiken
Visio Technical
 Exaktes
CAD-ähnliches Zeichnen
und Arbeiten
 Verfahrenstechnik-Zeichnungen
und Plandiagramme
 Grundrisse, Baupläne im
Bereich Facility Management
 Erstellen weiterer anlagetechnischer Zeichnungen
 Elektrische und elektronische
Schemadiagramme für
Steuersysteme
Visio Professional
 LAN-Dokumentation
 Dokumentation
und Entwurf
von
Verzeichnisdiensten
 Planung von Web-Sites
 SoftwarekomponentenEntwurf
 Datenflussdiagramme
 Entwurf von Datenbankmodellen
 Analyse von Geschäftsprozessen
Visio Enterprise (2000 !)
 Die
gesamte Funktionalität
von Visio Professional plus:
 Auto-Discovery
von Netzen
 UML-Softwaremodellierung
 Datenbank-Modellierung
 Software-ReEngineering
 Visio Network Equipment
Individuelle Visio-Lösungen
Inkrementelle Lösungen mit Visio
Entwurf anwendungsspez. Shapes
DB-Assistent
SmartShapes, Datenfelder, etc.
ShapeSheet-Programmierung,
Automation, Modellierung
VBA-Makros
DB-Zugriff
Visuelles Frontend einer Enterprise-Lösung
Komponenten einer Lösung
SHAPES
 Erst
OK
durch die
Kombination aller
Elemente entsteht
eine komplette
Visio-Lösung
VISIO-Solution
Dim appVisio As Object
Dim UIObj As Object
Set appVisio =
CreateObject("App")
Set UIObj =
appVisio.BuiltInMenus
appVisio.SetCustomMenus
UIObj
CODE
TEMPLATES
Visio-Lösungen wachsen
 Machen

Erleichtern Sie sich die Arbeit mit Vorlagen
 Nutzen

Sie Ihre Shapes zu SmartShapes™
Sie die Möglichkeiten der Automation
Erstellen Sie mit Add-Ons visuelle Modelle
 Visio
als visuelles Frontend im Unternehmen
Die Visio-Umgebung
Schablonen
Visio Engine
Vorlagen
VBA
VSL
EXE
Automation
Interface
MS Office
Add-ons
ODBC/ADO
Eigene
Entwicklungsumgebung 1:
Das ShapeSheet in Visio
Shapes: parametrische Objekte
GUI-Aktion
ShapeSheet
Shape als Ergebnis
Das ShapeSheet
 Die
Grundlage für
Visio‘s Flexibilität
 Shapes sind parametrische Objekte
 Alle relevanten ShapeDaten finden sich im
ShapeSheet und
werden dort definiert
und geändert
 Auch für den Einsatz
von Automation notwendiges Grundwissen
Ereignisse im ShapeSheet
 Ereignisse
Abschnitt
• TheText
• EventDblClick
• EventXFMod
• EventDrop
DependsOn im ShapeSheet
 Wird
typischerweise in einer benutzerdefinierten 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
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)
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!
Demo
ShapeSheetProgrammierung
Entwicklungsumgebung 2:
Automation in Visio
Das Visio Objektmodell
 Klar
ActivePage
Active
Window
1
Windows
Document
Page
Master
Selection
Documents
Masters
Master
Connects
Connect
Layers
Layer
Shapes
Shape
Shapes
Shape
Pages
Connect
Page
Document
Application
Connects
Global
strukturierter
Aufbau, schlank
 Vordefinierte Objekte
für Dokument, Seite
und Fenster etc.
 Grafisch über
Online-Hilfe
navigierbar
Active
Document
Window
This
Document
Layers
Layer
Shapes
Shapes
Shape…
Cell
Styles
Style
Shape
Fonts
Connects
Font
Connect
Colors
Color
Characters
VBProject
MenuSets
UI object
UI object
AddOns
AddOn
EventList
Event
VBE
Menus
MenuSet
Menu
AccelTables
AccelTable
AccelItems
AccelItem
ToolbarSets
ToolbarSet
Toolbars
StatusBars
StatusBarItems
StatusBar
StatusBarItem
Toolbar
MenuItems
MenuItem
ToolbarItems
ToolbarItem
MenuItems
MenuItem
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
Wie wird entwickelt
 ShapeSheet
und VBA-Code sind in
Visio miteinander verbunden
 Nicht Visio wird gesteuert, sondern das
darunter liegende ShapeSheet für jedes
Shape (selbst das Zeichenblatt !)
 Für eine effektive Entwicklung sind
sowohl Kenntnisse der ShapeSheetProgrammierung als auch von
Automation (VB(A), C++, Delphi) nötig
 Grundregel: Erst Shapes.... Dann Code
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)
Coding Issues
 Early
vs. late binding, Variants meiden
 VBA code ist Bestandteil der Zeichnung
 Code kann geschützt werden –
Extras / Eigenschaften / Schutz im VBAEditor
 Zusammengesetzte Statements sind
möglich, aber schwerer zu debuggen
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
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)
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")
Set oMaster = oMasters("Star 5")
 Sicherstellen,
'oder
dass auf die Masters
der Schablone zugegriffen wird, nicht
die der Zeichnung!
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 ConvertResult die
Einheiten umrechnen
Text zu Shapes hinzufügen
 Die Text-Eigenschaft des Shapes
oShape.Text = “Das ist ein String"
setzen
 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)
Formeln von Shapes lesen
 In
Visio’s Objektmodell wird eine Formel
durch ein Cell-Objekt repräsentiert
 So erhalten Sie ein Cell-Objekt
Set oCell = 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")
Formel oder Ergebnis?
 Die
Eigenschaft Formula einer Zelle liefert
die ShapeSheet-Formel als String
Dim sFmla = String
sFmla = oCell.Formula
 Die
Eigenschaft Result liefert 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
Eine Formel festlegen
 Setzen Sie die Eigenschaft Formula:
oCell.Formula = "=GUARD(Width*2)"
 Setzen Sie die Eigenschaft
oCell.Result(visNumber) = 42
Result
 Auch ResultInt und ResultIU lassen
setzen, ResultStr ist read-only
 Zum
sich
Überschreiben einer geschützten
Formel benutzen Sie FormulaForce
(Formeln lassen sich mit Guard
schützen)
Eine Collection bearbeiten
 Die
meisten Collections in Visio starten
bei 1, außer UI objects und
Systemsachen (bei 0)
 Die Count Eigenschaft liefert die Anzahl
der Elemente einer Collection
 Seit Visio 2000 auch über for each
For each shp in ActivePage.Shapes
'shape bearbeiten
Next shp
Wichtige Eigenschaften
 Masters,
Pages, Styles, Fonts, Colors
 Name, Fullname, Path
 Creator, Description, Keywords, Subject,
Title
 ReadOnly, Saved, InPlace
Daten aus Seiten auslesen
Eine Seite holen
Set oPage = oPages.Item("pagename")
Set oPage = oPages.Item(index)
Die aktive Seite holen
Set oPage = Application.ActivePage
(Das aktive Fenster muss ein Zeichenfenster sein, sonst erhält man einen
Fehler!)
Daten aus Shapes auslesen
 Eine
Shape-Collection kann 'normale'
Shapes, Gruppen, Führungslinien,
linked/embedded objects enthalten
 Die Type Eigenschaft liefert den Typ des
Shapes:
•visTypeShape,
visTypeGroup,
visTypeGuide, visTypeForeignObject,
visTypePage
 Weitere
Infos in der EntwicklerReferenz Online-Hilfe oder im DVS
Mit Fenstern arbeiten
Das aktive Fenster feststellen
Set oWindow = Visio.ActiveWindow
Den Typ eines Fenster feststellen
If oWindow.Type <> visDrawing Then
Debug.Print "Kein Zeichenfenster"
End If
• Type: visDrawing,
visSheet,
visStencil, visIcon
• SubType: visPageWin, visMasterWin,
visPageGroupWin, visMasterGroupWin
Die Methode CellsSRC
 Nutzen
Sie CellsSRC, um über Abschnitt,
Zeile und Zelle auf Shapes zuzugreifen
Set oCell = oShape.CellsSRC _
(visSectionControls, _
'(Controls Absch.)
visRowControl + 3, _
'(4. Zeile)
visCtlX)
'(Controls.X Zelle)
 Siehe
auch die Methoden SectionExists,
RowExists, CellExists, CellsSRCExists
 Eine Überprüfung sollte immer stattfinden, da evtl. Abschnitte im Shapesheet
fehlen können!
Visio-Ereignisbehandlung
 Verhalten
in ShapeSheet-Zellen
 ShapeSheet Ereignisse
 VBA Code hinter Ereignissen
• Für Visio-Objekte
• Für ActiveX Controls
Zell-Abhängigkeiten
 Eine
Formel kann von anderen Zellen
abhängen
•PinY
•EndY
 Es
=(BeginY+EndY)/2
= PAR(PNT(
Sheet.2!Connections.X1,
Sheet.2!Connections.Y1))
gibt ein Abhängigkeitsnetzwerk:
• PinY hä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ß EndY und PinY neu berechnet werden.
VBA code für Ereignisse
 Ereignisse
sind Teil der Typelib für
Visio
 Die Objekte haben Ereignisse
definiert, die nur bei bestimmten
Objekttypen feuern
 Ereignisbehandlung mit VBA auch in
Visio 5.x
Unterstützte Ereignisse
AfterModal
AppActivated
AppDeactivated
AppObjectActivated
AppObjectDeactivated
BeforeDocumentClose
BeforeDocumentSave
BeforeDocumentSaveAs
BeforeMasterDelete
BeforeModal
BeforePageDelete
BeforeQuit
BeforeSelectionDelete
BeforeShapeDelete
BeforeStyleDelete
BeforeWindowClose
BeforeWindowPageTurn
BeforeWindowSelDelete
CellChanged
ConnectionsAdded
ConnectionsDeleted
DesignModeEntered
DocumentAdded
DocumentChanged
DocumentCreated
DocumentOpened
DocumentSaved
DocumentSavedAs
FormulaChanged
MarkerEvent
MasterAdded
MasterChanged
PageAdded
PageChanged
RunModeEntered
SelectionAdded
SelectionChanged
ShapeAdded
ShapeChanged
ShapeDeleted
StyleAdded
StyleChanged
TextChanged
WindowActivated
WindowOpened
WindowTurnedToPage
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
•
Doc.ShapeAdded
•
App.ShapeAdded
 Im
-> Feuert, wenn ein Shape der Seite
hinzugefügt wird
-> Feuert, wenn ein Shape irgendeiner
Seite des Dokuments hinzugefügt
wird
-> Feuert, wenn ein Shape irgendeiner
Seite in irgendeinem Dokument der
Anwendung hinzugefügt wird
VBA-Objektbrowser erhalten Sie
Informationen über die einzelnen
Ereignisdefinitionen
Document Ereignisse
 Das
vor-instantiierte DocumentObjekt gibt Ihnen Zugriff auf
verschiedene Ereignisse
Arbeiten mit WithEvents
“WithEvents” Schlüsselwort erlaubt
das Schreiben von Code für jedes
Quellobjekt eines Ereignisses
 Die WithEvents Variable muss an ein
bestehendes Objekt 'gebunden' werden:
 Das
Dim WithEvents aPage As Visio.Page
Set oPage = Visio.ActivePage
ActiveX Controls
 Jedes
ActiveX Control kann in ein
Visio-Dokument eingefügt werden.
 Das Dokument muss sich im Run-Mode
befinden, damit Ereignisse ausgelöst
werden
 Ereignisbehandlung für ActiveX-Controls
geschieht auf die gleiche Weise wie für
Visio-Objekte mit WithEvents
 Bis voraussichtlich Jahresende wird es
auch ein Visio ActiveX-Control geben
(für Viewer-Funktionalität)
Hinweise
 Einstellungen
unter Extras/Optionen
können die Ereignisbehandlung
abschalten
 Application.EventsEnabled kann dazu
ebenfalls benutzt werden
 Persistenz wird durch zwei Methoden
möglich:
• DocumentOpened
• RunModeEntered
Shapes verbinden
 Holen
Sie sich ein Zellobjekt, welches
einen Teil des Shapes darstellt, von dem
die Klebung ausgeht
 Nutzen Sie GlueTo oder GlueToPos dieses
Zell-Objektes und geben Sie an, an
welchem Shape Sie ankleben wollen
Die Ausgangszelle
 Steuerelement (Control handle)
oFromCell = oShape.Cells(“Controls.X1”)
 Beginn-
oder Endpunkt eines 1-D
Shapes
oFromCell = oShape.Cells(“BeginX”)
 Ecke eines Shapes (an "PinX" oder
"Geometry1.X1" Zellen bei Führungslinien)
oFromCell = oShape.Cells(“AlignLeft”)
 Jede
Zelle eines X,Y Paares ist möglich
(die andere wird von Visio automatisch
geklebt)
An andere Shapes ankleben

klebt an spezifische Stelle eines
Shapes
GlueTo
oFromCell.GlueTo _
oToShape.Cells("Connections.X1")

klebt an eine X,Y Position,
die einen Anteil des Ausrichtungsfeldes des Shapes darstellt
GlueToPos
oFromCell.GlueToPos oToShape, 0.5, 0.5

erzeugt immer einen
Verbindungspunkt, selbst wenn
bereits einer vorhanden ist.
GlueToPos
Daten zu Shapes hinzufügen
 Sie
erhalten über die Eigenschaft Cells
jede benannte Zelle in einem
ShapeSheet, auch Datenfelder oder
benutzerdefinierte Zellen
 Was passiert, wenn die Zelle nicht
existiert?
Kann durch CellsExists getestet werden
 Zelle kann per VBA hinzugefügt werden
Infos über Connections
 Die Connects
Eigenschaft eines Shapes
liefert dessen Verbindungen
 Enthält für jedes Shape, an das
angeklebt wurde, ein Connect-Objekt
FromSheet, ToSheet Eigenschaften
FromPart, ToPart Eigenschaften
FromCell, ToCell Eigenschaften
Steuerelement zu Shape
A
B
A
verbunden nach B
(2-D nach 2-D über Steuerelement)
A hat einen connects.Count = 1
FromSheet = A, ToSheet = B
FromPart = visControlPoint + 0
ToPart = visConnectionPoint + 0
FromCell, ToCell = Cell-Objekte für FromPart,
ToPart
Window-Eigenschaften
 Zoom
Liest oder setzt die Zoomeinstellung
(Fliesskommawert 1.00 = 100%)
 Page,
PageFromName, PageAsObj
Liest oder setzt die angezeigte Seite
Window-Methoden
 GetViewRect
Liefert Koordinaten des Fensterrahmens
 DockedStencils
Liefert die Namen aller geöffneten
Schablonen
 Activate
Aktiviert das entsprechende Fenster
Windows.Add
 Damit
erzeugen Sie ein neues Fenster im
Bereich der Visio-Anwendung
ActiveWindow.Windows.Add("My Anchor", , _
visAnchorBarAddon)
 Kann
von folgendem Typ sein:
visAnchorbarAddon, visStencilAddon,
oder visDrawingAddon
Windows.Add - 2
 Die
ideale Basis für Add-Ons und eigene
Lösungen innerhalb der Visio
Anwendungsoberfläche
Spatial Relations
Mit SpatialRelation stellen Sie die räumliche
Beziehung zweier Shapes fest.
 Liefert einen der angegebenen Werte:

visSpatialOverlap, visSpatialContain,
visSpatialContainedIn, visSpatialTouching
visSpatialOverlap
Query Events
 Neu
seit Visio 2000
 Sie können jetzt auf Ereignisse testen und
diese bei Bedarf auch abbrechen
QueryCancelSelectionDelete
SelectionDeleteCanceled
BeforeSelectionDelete
Shape wird nicht gelöscht
Shape wird gelöscht
Das Visio-UI anpassen
 Was
kann angepasst werden?
• Menüeinträge
• Shortcuts
• Symbolleisten
• Statuszeilen
 Größe
der Änderung sollte beachtet
werden, je nach Aufwand zwei
Lösungswege
UI-Objekte im Objektmodell
Windows
Documents
MenuSets
Application
MenuSet
Menu
AccelTables
AccelItems
AccelTable
UI
object
ToolBarSets
ToolBarSet
StatusBars
StatusBar
AddOns
Menus
MenuItems
MenuItem
AccelItem
ToolBars
ToolBar
StatusBarItems
StatusBarItem
ToolBarItems
ToolBarItem
MenuItems
MenuItem…
Mögliche UI-Änderungen
 Umfang
der Änderungen
• Kleine Änderungen direkt durchführen
• Große Änderung in UI-File schreiben
 Persistenz
• Dauerhafte Änderungen an das Dokument
oder an die Applikation binden
• Temporäre Änderungen direkt durchführen
oder ein UI-File laden
Unique Ids für Shapes
 Kann
zur Verknüpfung eines Shapes oder
eines Masters mit einem Datensatz in
einer Datenbank verwendet werden
 Als Vorgabe besitzen MasterShapes eine
ID, normale Shapes besitzen keine
 Beispiel:
{2287DC42-B167-11CE-88E90020AFDDD917}
Arbeiten mit GUIDs
Lesen einer UniqueID:
IDStr =
shpObj.UniqueID(visGetGUID)
Lesen
und Erzeugen einer
UniqueID
IDStr = _
shpObj.UniqueID(visGetOrMakeGUID)
Löschen einer UniqueID
shpObj.UniqueID(visDeleteGUID)
Visio und XML (2002)
Visio
2002 kann jede Zeichnung
im Format XML, alternativ zum
Binärformat speichern
Viele Möglichkeiten für
Erweiterungen
Spezifikation in „XML for Visio“Whitepaper (alle Whitepaper auf
MSDN verfügbar)
Embedded Visio
Visio
lässt sich in
Gesamtlösungen einbetten
Aber: Visio muss auf dem System
separat installiert sein
Visio-ActiveX-Control in
Vorbereitung
Planung einer Visio-Lösung
Shapes ... – dann Code!
 Vorlagen für die Lösung erleichtern den
Benutzern die Arbeit
 Programm muss folgende Aufgaben
erfüllen:
 Erst
• User Interface und Schutz
• Dateioperationen, Datenablage
• Behandlung der einzelnen Shapes
Verteilung & Wartung
 Deployment
• Verteilung von Vorlagen und Schablonen
 Wartung
• Problematisch, da VBA Code in Dokument
• Alternative: VBA in der Schablone, 'leere'
Datei
• Alternative: externe Automation
 Weitergehende
Anpassungen
• Über die Registry-Settings, PC-spezifisch!
Demo(s)
AutomationsProgrammierung
mit Visio
Konkrete Anwendung in
Visio selbst –
mitgelieferte Lösungen
Datenbankmodellierung mit Visio
Gemeinsame Engine und Dateiformat
Standard
Technical
Professional
Enterprise
Demo
Datenbankmodellierung
mit Visio
Softwaremodellierung mit Visio
Gemeinsame Engine und Dateiformat
Standard
Technical
Professional
Enterprise
Demo
Softwaremodellierung
mit Visio
Wo gibt's Informationen
 Online
ActiveX Automationsreferenz
• Entwickler-Referenz aus dem Hilfe-Menü
• Installiert in \Visio\Help bei der Installation
• Suche nach Objekt, Eigenschaft, Methode,
Ereignis
 Im
Object Browser (in VBA [F2])
 Microsoft Developer Network unter
http://msdn.microsoft.com/visio
Wo gibt's Informationen (2)
 Im
Ordner DVS
• Libraries
• C-cpp
• VB
enthalten Informationen für C, VB
• Sample Applications
• VB Solutions
• VBA Solutions
 Developing
Visio Solutions Buch
Trainings
 Training
erfolgt stufenweise
• Anwendertraining (2 Tage)
• Visio Development Training (5 Tage)
• Workshops zu Spezialthemen (1-2 Tage)
Wo gibt’s weitere Info’s?





MSDN online
•
http://www.microsoft.com/germany/msdn
MSDN quickie
•
http://www.microsoft.com/germany/msdn/quickie
MSDN TechTalk-Newsgroup
•
news://msnews.microsoft.com/microsoft.public.de.german.te
chtalk
VBA-Magazin
•
•
http://www.vba-magazin.de
4/99, 6/99, 5/2000, 2/2001
Bücher
•
Edson, David “Professional Development with
Visio 2000”, Sams, ISBN: 067231813X
Noch Fragen?
 Microsoft
TechEd 2001
 Visio
Development
Training
 Visio
Newsgroup bei MS
 [email protected]
Fragen!?
Uff...
Vielen Dank
für Ihre Aufmerksamkeit