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