Reputation: 95
I have a Visio (365) Master Shape I am creating for my work. I have a number of defined shape data fields, such as Type / Status / Display / Category etc... These are defined as defined as shape data and not as shape data set and can be accessed in formulas with the Prop.x notation.
I have selected the master shape for editing from the stencil, opened it for editing, selected the shape and then selected from the menu bar / ribbon 'Insert -> Field', and have tried to display shape text by inserting a field with a custom formula:
=IF(Prop.Display,IF(Prop.Type <> "",Prop.Type,""),"")
The shape data field 'Display' is Boolean with default set to TRUE. The field 'Type' is a delimited list / dropdown that initially starts out blank.
The objective is to have the user select a Type (when they know what it is), and the formula (in theory) should update the shape text to display that selection.
The problem is that when I test the shape and make changes to either the Type field or the Display field nothing happens - no text is ever displayed.
I'm sure that I am missing something simple here, but I cannot figure out what that is. Can anyone point me in the right direction? Any help greatly appreciated.
Cheers
The Frog
Upvotes: 0
Views: 671
Reputation: 95
I figured it out!
The formula to use is the following:
=IF(AND(Prop.Display,FORMULAEXISTS(Prop.Type)),Prop.Type,CHAR(32))
The combination of Prop.Display (boolean) being set to True, AND Prop.Type actually having something selected - tested with the FORMULAEXISTS function, creates a True / False scenario, where true provides the value of Prop.Type, and false provides a blank space - doesn't seem to like "" or CHAR(0) as a value so the single space character is the best I could do.
Cheers and many thanks for pointing me in the right direction.
The Frog
Upvotes: 1
Reputation: 1734
I think this part of formula dont works: if(Prop.Type <> "",Prop.Type,"")
.
For compare text strings use STRSAME function, with syntax: STRSAME(Prop.Type,"")
.
For empty string you can use LEN(Prop.Type)=0
Upvotes: 0