Visio Guy

Archives => Visio 2010 Feature Requests [Read Only] => Topic started by: Lars-Erik on May 06, 2008, 07:16:12 AM

Title: Paging of the shape properties
Post by: Lars-Erik on May 06, 2008, 07:16:12 AM
Currently the custom properties that will be shown is limited to 19, after that you will need to switch views.

To this one:

(http://www.larserikmiedema.nl/filebrowser/Visio/Paging2.jpg)

The second view has alot more options, which aren't always wanted.
We don't want users to edit everything, just the value.
Also in this view hidden properties are no longer hidden...

So make the properties list longer, maybe 10 per page and then have the ability to flip true pages.

Something like this:

(http://www.larserikmiedema.nl/filebrowser/Visio/Paging.jpg)
Title: Re: Paging of the shape properties
Post by: Visio Guy on May 06, 2008, 10:57:29 AM
Well, the other properties dialog -- the anchor bar window from View > Shape Data Window -- does scroll, so you can see a lot more properties.

But I have seen this request many times.
Title: Re: Paging of the shape properties
Post by: vojo on May 07, 2008, 06:25:34 AM
Use actions to set an "index" in a user cell
in each custom prop field hidden cell, have the following formula
   if(user.index = <number>, 1,0)

with multiple action entries, can group custom props by function or list 1st 10, 2nd 10, 3rd 10 or only ones of interest

Could even do a crude 'drop down' within the actions...something like
     Next selection set
     selection set 1
     selection set 2
     selection set 3
     previous selection set
     return to first menu

if next selection set hit...then menu is
     next selection set
     selection set 4
     selection set 5
     selection set 6
     previous
     return

next action = setf(getref(user.next), user.next+1)
selection action = setf(getref(user.select),<number>)
user.index = user.next*10 + user.select

action text for 4 would be
    "selection set " & if(user.next=1,"4","1")

custom.props.hidden for selection 4 would be
     if(user.index=11, 1, 0)
5 would be
     if(user.index=12, 1, 0)

for set 1
     if(user.index = 1,1,0)

etc etc etc
 
Title: Re: Paging of the shape properties
Post by: Lars-Erik on May 07, 2008, 06:42:20 AM
Mmm. Still would love to see a build in option of this.  Though its a nice workaround, it takes alot of work to implement in templates with many shapes. I don't think ill use this in my template because I'm afraid users will forget to check page 2 of the properties this way, thus not filling in all the information. I'll think about it.

Thanks for the idea Vojo
Title: Re: Paging of the shape properties
Post by: Visio Guy on May 07, 2008, 02:46:00 PM
Hey Guys,

The SortKey and/or Invisible columns in the Custom Properties ShapeSheet rows can also be used for property paging hacks. You've already touched on this in the thread, but I'll blab on anyway ;)

There are (or were) shapes that ship(ped) with Visio that use the SortKey column to categorize the data fields. So when you right-click the shape, there may be two items that pop up the properties dialog. Each right-mouse action would first use SETF to change a "which category is visible" flag in a user cell, then it would show the Shape Data dialog.

One might imagine some sort of network shape that has "Hardware Properties..." and "Security Properties..." in the right-mouse context menu.


// ShapeSheet Actions cells:
// Note: DOCMD( 1312 ) invokes the Shape Data dialog...


Actions.Hardware.Menu = "Hardware Properties..."
Actions.Hardware.Action = SETF( GETREF( User.Category ), """HW""" ) + DOCMD( 1312 )

Actions.Security.Menu = "Security Properties..."
Actions.Security.Action = SETF( GETREF( User.Category ), """SEC""" ) + DOCMD( 1312 )

// ShapeSheet User-defined cells:

User.Category = "HW" or "SEC"  //...this gets set by the right-mouse Actions...

// ShapeSheet Shape Data cells for 'Hardware':

Prop.Memory.Sortkey = "HW"
Prop.Memory.Invisible = NOT( STRSAME( User.Category, Prop.Memory.Sortkey ) )

Prop.CPU.Sortkey = "HW"
Prop.CPU.Invisible = NOT( STRSAME( User.Category, Prop.CPU.Sortkey ) )

Prop.Disk.Sortkey = "HW"
Prop.Disk.Invisible= NOT( STRSAME( User.Category, Prop.Disk.Sortkey ) )

// ShapeSheet Shape Data cells for 'Security':

Prop.VirusScanned.Sortkey = "SEC"
Prop.VirusScanned.Invisible = NOT( STRSAME( User.Category, Prop.VirusScanned.Sortkey ) )

Prop.LastUpdate.Sortkey = "SEC"
Prop.LastUpdate.Invisible = NOT( STRSAME( User.Category, Prop.LastUpdate.Sortkey ) )

Prop.CookieFlush.Sortkey = "SEC"
Prop.CookieFlush.Invisible= NOT( STRSAME( User.Category, Prop.CookieFlush.Sortkey ) )

Last note, instead of setting "HW" or "SEC", we could just use indices, like 0 and 1, then the logical test in prop...Invisible would be simpler. Of course the ShapeSheet would then be harder to read...
Title: Re: Paging of the shape properties
Post by: vojo on May 08, 2008, 12:35:37 AM
no problem

I do realize its tedious!!!

The only reason I tend to go done these labor intensive approaches is to avoid security issues running macros/VBA
(it would be great if shapesheet was more user friendly:  insert row after for all sections, variable/max width based on
contents, etc).

I will say you could compartmentize this:
A shape (top group) with generic menus and have subshapes test for their respective index or have
in top group have variables "index1", "index2", etc set 0 or 1 and have subshapes just test repective index variable.
This would require you to do the heavy lifting once, save in your "DE" stencil and pull it out as needed and
add your shapes to this group, then set the subshapes as needed then save.

I think the real usuability issue this creates is that you have to hit actions over and over to traverse the tree.
(it would be great of there was a docmd that triggered the actions menu).  I think you will run into the
same problem if you try to do this inside custom properties (you could do an analog to this but would have
to hit custom props / docmd (1312) twice to actually see your pertinent custom properties).

Frankly, since there are alot similar tools (either expensive, not as pervasive, or out right cartoonish), it would
be great if VISIO worked on beefing up the smart shapes (a more elegant shape to shape msg pipe than the
brute force one I posted, richer built in "menus" like this, or even allow direct reference to an embedded excell
spreadsheet...aka reference a cell by using a specific function...not do all the convoluted stuff to link to an external excell spreadsheet).