My last article looked at parsing an XML string with a known structure and order of elements and attributes. This can be acceptable in some scenarios, but what if the elements or attributes are in a different order? Then it is necessary to use the element and attribute names rather than their index position. This requires a little more complexity to the ShapeSheet functions, and this can result in longer processing time, so needs to be used cautiously, but it is possible, as I demonstrate in this article.
[Read more…] about More Parsing XML Data in Visio ShapesShape Design
Parsing XML data in Visio Shapes
One of my current projects uses XML data, and some of the values in the XML data control the display and content of Visio shapes. Therefore, I looked deeper into how the XML data can be used directly to control parts of the graphics.
Although the external data linking feature in Visio Professional and Visio Plan 2 does have the ability to use XML files, the structure of these XML files is in a particular ADO format, and not suitable for the XML data in this project.
Also, Visio documents can have embedded XML data within it, and there are several methods available to work with the XML, such as Document.SolutionXMLElement. In fact, there are several ShapeSheet cells that can also hold SolutionXML too, as found in the Visio SDK :
The cell must be an A through D cell of the Scratch section or value cell of the User or Custom Properties section.
Custom Properties is the former name of Shape Data, and the SDK contains sample code for putting XML into the Document and a ShapeSheet cell. Unfortunately, the SolutionXML functions only work with the Document, not with a Cell.
Again, there does not seem to be a compelling reason to use SolutionXML with shape cells in my current project because it just adds extra characters, and slightly modifies the XML characters.
Visio cells can store very large amounts of text within them, and in this particular project, I have well structured XML with predictable elements and attributes. Similarly, there are many variations of books.xml on the web, ( small, medium, large ) which I have used for this article to demonstrate what can be done with XML in shapes.
In my case, I have created a Visio shape which has a Shape Data row to store the XML data, and other User-defined Cells to parse the XML data, then more Shape Data rows to just check the contents. I then have a 20 book sub-shapes that can become visible and display the information in the parent XML data automatically:
[Read more…] about Parsing XML data in Visio ShapesHighlighting dirty text in Visio shapes
I suppose I should explain what I mean by dirty text first 🙂
I often display the value of a Shape Data row in Visio text, but sometimes the solution requires that the value is also editable. This is ok if the client accepts that all editing is done with the Shape Data window or dialog, but not if the user more naturally wants to edit the text in the shape. In my current solution, I want to pass the manually edited text to another process for checking, and then only update the Shape Data row when validated or accepted, before re-setting the text with the inserted field. My first task was to spot with text had been manually overtyped, so I decided that checking the value of a new User-defined Cell, called IsDirty, was best, and then this value can be used to change the color of the text (or it could be the LineColor or FillForegnd) to make this value visible.
When Insert / Field is used in Visio, it creates a Text Fields section which can hold the reference to the inserted field.
If the text is manually overtyped, then the rows in the Text Fields section get deleted.
[Read more…] about Highlighting dirty text in Visio shapesNavigate to named areas in Visio with SS Plus
Many years ago, when I was an architect, I used a Unix CAD system with large buildings. I was able to navigate quickly to rectangular areas that I had named. Well, the Export to PowerPoint feature in Visio Plan 2 provides Slide Snippets, which are named areas that can be exported to PowerPoint. My SS Plus add-in already provides enhancements to this feature that provides formatted text and hyperlinks to be exported too, but I was missing a trick. So, now I have added in a dynamic sub-menu that provides quick navigation to these named Slide Snippet areas and can optionally integrate with LayerManager to apply a named LayerSet too!
I have made a short video to demonstrate this:
[Read more…] about Navigate to named areas in Visio with SS PlusCounting glued and connected shapes in Visio
I got a surprise in one of my projects when I counted the shapes glued together using the Shape.GluedShapes(…) method … the sum of the filtered glued shapes just didn’t add up to the unfiltered count. So, I thought I should check the Shape.ConnectedShapes(…) method too … and there is a scenario where that has a similar result.
In the following diagram, I have different coloured squares with connection points of different types at the centre of each edge (as denoted by the connection type numbers), and one under a control point in the bottom left corner. I have glued the ends of coloured connector lines, statically (Red and Black) and dynamically (Green), and glued the Purple Square directly to the Orange Square. The Blue Square shape is glued to a connection point on the green dynamic connector.
I then ran some code to get the count of glued and connected shapes … and noticed some apparent discrepancies…
[Read more…] about Counting glued and connected shapes in VisioMy new book on Visualizing Processes with Microsoft Visio has launched
Back in the early 1990s, there was an application called ABC Flowcharter that was the market leader for diagramming business flowcharts, but some of the brains behind Aldus PageMaker saw an opportunity to create something smarter, and left to write the Visio product, with the stated aim to overtake ABC Flowcharter within 2 years. They did it in just 18 months and Visio expanded to cover more types of diagramming, especially organization charts and network diagramming. Visio became the default vector-based, data-diagramming application for the desktop, and so Microsoft acquired the company in 2000, who started to integrate it with Microsoft Office applications. Many imitators on the desktop tried to emulate Visio, but most fell by the wayside. There were constant requests for Visio to work on Apple Macs, but Microsoft resisted making a Mac specific version, and instead started to make Visio work in a web-browser, so it can work anywhere on any modern device. There are literally millions of lines of code on Visio, so it was never going to be straightforward or easy, but now we do have a light edition of Visio provided to all M365 business subscribers, and two extra subscription levels for more features and capabilities. We still have desktop Visio Standard and Professional, but the edition that straddles both the desktop and web is Visio Plan 2. It has some desktop only features delivered via web-services, and an enhanced browser-based editing experience. Visio Plan 2 is the edition for heavy or advanced users, but any of the desktop editions can be viewed as a design studio for content that can be used by the browser users because of Visio’s unique ShapeSheet feature that contains Excel-like formulas to control the properties of the shapes. Almost all of these formulas work in the web browser, but desktop Visio is required to write the formulas initially. This means that powerful customizations are possible without any web-scripting, and achievable by anyone who can write formulas in Excel!
So, this new book focuses on the original driver for Visio, process flowcharts, and explains how the different Visio editions can be used to create, edit, collaborate, comment, present, automate, export them, and finally how to customize them. Find out more at Visualize Complex Processes with Microsoft Visio!
[Read more…] about My new book on Visualizing Processes with Microsoft Visio has launched