1 / 46

Visio 2003 Programming

Visio 2003 Programming. Rel. Stefano Castiglioni. Sommario. Scenari di soluzione con Visio 2003 Automazione e oggetti Il modello ad oggetti di Visio Visio 2003 e il VBA Disegno con l’Automazione Integrazione di dati in una soluzione Visio Interoperabilità di Visio attraverso l’ XML

gyan
Download Presentation

Visio 2003 Programming

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. Visio 2003Programming Rel. Stefano Castiglioni

  2. Sommario • Scenari di soluzione con Visio 2003 • Automazione e oggetti • Il modello ad oggetti di Visio • Visio 2003 e il VBA • Disegno con l’Automazione • Integrazione di dati in una soluzione Visio • Interoperabilità di Visio attraverso l’ XML • Installazione di una soluzione Visio • Visio 2003 e l’ambiente .NET • Creazione di un componente COM

  3. Scenari di soluzione con Visio 2003

  4. Soluzioni Visio • Una soluzione Visioè una combinazione di forme, di solito sviluppate ad hoc, e modelli di disegno in cui disporre e usare le forme. • Una soluzione di solito include stencil di forme chiamate master. • La programmazione (VBA, VB6 , C++ ..) permette di creare e analizzare il disegno o recuperare informazioni dallo stesso per poi trasferirle esternamente a fonti di dati esterne (database)

  5. La forma e il suo shapesheet • Shapesheet = Spreadsheet • Automazione della forma attraverso le formule = GETVAL(PinX) + GETVAL(PinY) + Width ="DATA:"&FORMAT(NOW(),"dd-MM-yy") =“AREA:”&Width*Height =GUARD(Pinx)

  6. Demo1

  7. Demo2

  8. Sezione Events • La sezione Events dello shapesheet

  9. Demo3

  10. Simulazione degli eventi • Per attivare eventi in altre sezioni dello shapesheet • ES: cella A,B,C,D della sezione Scratch • OPENTEXTWIN() + DEPENDSON(PinX, PinY) • La formula evidenzierà il testo della forma per la modifica ogni qualvolta che la forma viene spostata

  11. Shortcut menù • È possibile aggiungere attraverso la sezione Actionsdelle azioni al menù di scelta rapida

  12. Demo4

  13. Visio Object Model

  14. Visio 2003 e il VBA Shortcut: ALT+F11

  15. La classe Document • Aggiungere un nuovo documento • Dim docObj As Visio.DocumentSet docObj = Documents.Add("") • Creare un nuovo documento da un modello • Set docObj = Documents.OpenEx(Path &"sample template.vst", visOpenCopy) • Aprire un documento esistente • Set docObj = Documents.Open(Path & "sample.vsd") • Aprire uno stencil esistente • Set docObj = Documents.OpenEx(Path & "sample stencil.vss", visOpenDocked)

  16. Demo 5

  17. La classe Page • Sfogliare le pagine di documento • For Each pg In ActiveDocument.PagesDebug.Print pg.NameNext • Aggiungere una pagina • ThisDocument.Pages.Add • Attivare una pagina • Get the last page of the document • Set pg = ActiveDocument.Pages(“MiaPagina”) • ActiveWindow.Page = PageName

  18. Demo 6

  19. La classe Shape • Disegnare una forma • Dim pg As Visio.PageSet pg = ActiveDocument.Pages.Addpg.DrawLine 1, 1, 3, 4pg.DrawRectangle 2, 2, 3, 5 • Aggiungere del testo alla forma • Dim shp As Visio.ShapeSet shp = pg.DrawRectangle(1, 1, 4, 2)shp.Text = “Testo nella forma" • Raggruppare le forme selezionate • Dim sel As Visio.SelectionActiveWindow.SelectAllSet sel = ActiveWindow.Selectionsel.Group

  20. Demo 7

  21. La classe Cell • Creare una User-defined Cell • Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)iRowIndex = shp.AddNamedRow(visSectionUser, "MyUserCell", visRowUser)Set cel = shp.Cells("User.MyUserCell")cel.Formula = """Dati personali""" • Creare una Custom-property • Set shp = ActivePage.DrawRectangle(2, 2, 4, 4)iRowIndex = shp.AddNamedRow(visSectionProp, "MyCustomProperty", VisRowIndices.visRowProp)Set cel = shp.Cells("Prop.MyCustomProperty")cel.Formula = """Questa è una prova"""MsgBox "cel.Formula = " & cel.Formula • Creare un Unique-ID per la forma • Dim shp As Visio.ShapeSet shp = ActivePage.DrawRectangle(2, 2, 4, 4)shp = shp.UniqueID(visGetOrMakeGUID)Debug.Print shp.UniqueID(visGetOrMakeGUID)

  22. Demo 8

  23. Disegno con l’Automazione • Attraverso l’utilizzo di VBA o di qualsiasi linguaggio che supporta l’automazione (VB6, C, C++, .NET…) è possibile creare quindi soluzioni che incorporano le funzionalità del motore di Visio e dei suoi oggetti. • Esempi di automazione con VBA

  24. Demo 9 • Soluzione che controlla la spesa legata all’acquisto di un impianto stereo. • Monitoraggio degli eventi legati all’aggiunta o all’eliminazione di forme.

  25. Demo 9

  26. Demo 10 • Soluzione che configura una topologia di rete in base agli apparati selezionati. • La soluzione mette in evidenza la capacità di Visio di semplificare e organizzare rappresentazioni complesse quali le infrastrutture di rete.

  27. Demo 10

  28. Integrazione di dati in una soluzione Visio • Visio permette di combinare disegni con altre fonti di dati, tipicamente Database. • È possibile creare disegni partendo da una o più tabelle di un database o viceversa salvare le informazioni associate alle forme (celle definite dall’utente, proprietà personalizzate) nel database. • Esempi

  29. Demo 11

  30. Visio e l’ XML • Con la versione 2002 è possibile salvare i documenti in formato XML • Disegno.vdx • Stencil.vsx • Modello.vtx • Questa caratteristica permette un alto grado di interoperabilità con altre applicazioni e altre piattaforme

  31. Demo 13 • La soluzione carica un documento di Visio salvato in formato XML e visualizza in una pagina HTML l’elenco delle forme con relative caratteristiche in una tabella. • La soluzione sfrutta la possibilità di trasformare file XML in altri formati usando fogli di stile XSL.

  32. Demo 13

  33. Visio 2003 e .NET • L’ambiente .NET è in grado interfacciarsi con tutte le applicazioni COM, quindi anche Visio. • Installando la versione 2003 di Visio, si dispone automaticamente dell’assembly di interoperabilità e di un componente ActiveX che può essere utilizzato in qualsiasi applicazione.

  34. Visio Drawing Control

  35. Demo 14 • La soluzione, prevede l’utilizzo del controllo ActiveX all’interno di un form di una applicazione Windows. • Il controllo dispone di tutte le caratteristiche di un documento creato con Visio 2003.

  36. Demo 14

  37. Demo 15 • La soluzione utilizza Visio attraverso l’automazione per creare un diagramma di flusso. • Per rendere il documento disponibile ad utenti che non dispongono di una licenza Visio, viene generata una pagina web con il diagramma.

  38. Demo 15

  39. Creazione di un componente COM • A partire dalla versione 2002 è possibile creare soluzioni basate su add-in COM • ActiveX DLL • ActiveX EXE • Si può utilizzare Microsoft Office Developer o Microsoft Visual Studio 5 o successivi usando gli add-in designer per Visio. • Download: http://office.microsoft.com/en-us/officeupdate/CD010225661033.aspx

  40. Add-in designer

  41. Demo 12 • Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) • Dim cbar As CommandBar • On Error GoTo error_handler • 'Save the Visio instance • Set g_VisioApp = Application • Exit Sub • error_handler: • MsgBox Err.Description • End Sub

  42. Demo 12 Sub CreaBarraStrumentiOffice() Dim mybar As Office.CommandBar Dim mybars As Office.CommandBars Set mybar = Application.CommandBars("Personalizzata") Set myControl = mybar.Controls _ .Add(Type:=msoControlButton) With myControl .FaceID = 2 .OnAction = "!<StencilWindowCOMAddin.VisioCOMAddin>" '.VisioCOMAddin End With mybar.Visible = True End Sub

  43. Installazione • Una volta creati i componenti COM, DLL, EXE devono essere installati in deteminate directory perché siano disponibili all’utente. • L’operazione può essere eseguita per esempio utilizzando il Package and Deployment wizard presente in Visual Studio o Office Developer

  44. Installazione

  45. Reference • “Programmare Microsoft VISIO” • Ed:Mondadori • “Microsoft Visio 2003 Developer’s Survival Pack” • Ed:Trafford • Autore: Graham Wideman • http://msdn.microsoft.com/library

More Related