I wrote a post about making a clock face in Visio fifteen years ago, but a reader recently asked about displaying multiple time zones. Well, I have previously written about time zones in Visio, so I accepted the challenge to improve upon my earlier work.
[Read more…] about A Multi-Time Zone Clock for VisioShapeSheet Functions
Update any Visio ShapeSheet cell with External Data
When Microsoft introduced a new way of linking external data to Visio shapes in 2007, I initially bemoaned the inability to update anything but Shape Data row values, unlike the old database add-on that I had been using for 10 years. The new method, though, has many advantages over the old way, not least that it is part of the Visio code library, for any Visio desktop user except the Standard edition.
The smartness of Visio shapes is derived from the formulas in the ShapeSheet that lies behind everything. There is a developer interface into this ShapeSheet in every desktop edition, but there is none in any of the web editions, even though the formulas, for the most part, work perfectly well (see my series of posts ShapeSheet Functions A-Z ).
The newer methodology of linking Visio shapes to data can also be used to refresh Visio diagrams automatically, even if the Visio document is not opened in the desktop edition. The Visio documents merely need to be stored in OneDrive, SharePoint (or Teams). This makes it suitable for solution development without assuming that every consumer has a desktop license. Indeed, the Visio Data Visualizer utilizes these newer external data recordsets embedded within the Visio document.
For my example, I used the Visio Sample Database that has been installed with Visio since 1997 for demonstrating the old database linking technology. It is an old style Access database (mdb), and can be found in a sub-folder of the Visio installation folder. I simply used the Data \ External Data \ Custom Import command to import the Bolts – Square Head table.
[Read more…] about Update any Visio ShapeSheet cell with External DataReferencing Container Data in Visio
Microsoft Visio has a useful Structured Diagramming concept that consists of Containers, Callouts and Connectors. The first of these features make it possible for shapes to know what they are contained within, as a better option to grouping shapes together. Grouping can hide or break the grouped shapes smartness, so Visio provides two ways of allowing shapes to be members of one or more containers. There are a few built-in Container shapes that can be added with the Insert / Diagram Parts / Container gallery, but shape developers can also create their own. Member shapes can be positioned anywhere within the container. There is a second type of container, List, that provides the ability to have ordered member items. There is no ribbon command to add these, but there are a number of these special shapes provided in the OOTB Visio stencils. For example, dragging and dropping a List box shape from the Software and Database / Software / Controls stencil will automatically add three List box item shapes to it.
[Read more…] about Referencing Container Data in VisioCorrecting the Text Control Handle on Visio Network Shapes
There are literally thousands of master shapes in the stencils supplied with Microsoft Visio, so I guess that mistakes can creep in. One error that I have noticed is the inability of the default text control handle of many of the network shapes to actually move the text block horizontally.
[Read more…] about Correcting the Text Control Handle on Visio Network ShapesAutomatically displaying Visio shape text in other shapes
There are times, in Visio, when you just need to ensure that the text in a primary shape is synchronised with the text in different secondary shapes … even if they are on different pages of a Visio document. My previous article, Forcing Display Update of Inherited Data Values , describes a method of synchronising the values in Shape Data rows from a central data source in the document, and that allows for the values to be viewed and edited in multiple pages or shapes. However, the text of a Visio shape is different because it is not stored in a single ShapeSheet cell, so how can you display the text of one shape in another?
[Read more…] about Automatically displaying Visio shape text in other shapesForcing Display Update of Inherited Data Values
I was going to title this “When is a truth not a truth?” because I have found that Visio can sometimes refuse to apparently update the displayed value in a cell, even though it has been changed. However, this was, in this instance, down to a misunderstanding of the formula evaluation events on my part. Take the scenario where you have some data that you want to be available to all pages and all shapes in the Visio document. There are some built-in Document Properties in Visio that are accessible to all pages and shapes using ShapeSheet functions ( eg TITLE(), SUBJECT(), COMPANY(), Categories / CATEGORY(), Tags / KEYWORDS(), Comments / DESCRIPTION(), Author / CREATOR(), MANAGER() and HYPERLINKBASE()). However, Visio does not have custom Document Properties like the other Office applications. Instead, Visio allows for the addition of User-Defined Cells and Shape Data rows in the DocumentSheet of the document. These can be uniquely named, and Shape Data rows can be given a data type (of sorts), a label, prompt and format.
These values can be accessed via a ShapeSheet function from anywhere within the document, which ensures that you only have one version of the truth. However, there is no non-developer user-interface to edit these DocumentSheet Shape Data values in Visio, so what do you do? And how can you be sure that you are always seeing these centralised values correctly?
I created the following master shape to test how this can be done. It is a group shape that contains a single StartDate Shape Data row, which is used to edit or view the date in the similarly named Shape Data row in the DocumentSheet. For good measure, I also added a similarly named Shape Data row to the page, so the Shape Data window in the page could also be used. I then used Insert / Field to display the values in the ShapeSheet, PageSheet and DocumentSheet:
[Read more…] about Forcing Display Update of Inherited Data Values