Shape Data: Ask on drop for compound shapes.

T

twingate

Hi all,

First post here:
I'm trying working on a couple of custom shapes with
associated Shape Data. The "Ask on drop" feature combined
with Fields is very nice but doesn't seem to work for
compound shapes; a master consisting of multiple shapes. Any
idea why?

Also: Id like to have one shapes Shape Data show up as a
field in another shape, but haven't been able to do this. I
was hoping this could be done without having to hack code.

Thanks,
T
 
M

Mark Nelson [MS]

I'm not exactly sure what you are trying to do, but let me take a stab at
it. When you create a master that consists of more than one shape, make
sure that you create a group. There should only be one top-level shape and
the rest should be sub-shapes of the group. If you don't do this, Visio
will automatically group your shapes when the master is dropped on a page.
This would defeat behaviors such as Ask on Drop.

Having a single top-level shape also resolves all the issues around where to
put things like Shape Data. You need to put the Shape Data in the top-level
shape.

--
Mark Nelson
Office Graphics - Visio
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.
 
T

twingate

Mark,

Thanks for your answer, it helped clarify some things.
A follow-up question: I'd like to insert the shape data from
the main group in various sub-shapes. Is there any way I can
do this through the shapesheet? Something like Text Fields -
Value: MainGroup.Prop.Row_1 ?

Thanks,
Thomas
 
D

David Parker

Indeed you can:
It would be useful if you named your Shape Data rows first, instead of
leaving the default, Row_1, Row_2, etc.
To do this, either use the ShapeSheet, or ensure that you are in Developer
Mode (Tools / Options / Advanced ) before you open the Define Shape Data
dialog.

Then, get the Sheet ID number of the parent group shape - use Format /
Special

Finally, you can then select a sub-shape and then Insert / Field.
In the Custom Formula option you can then enter something like:
=Sheet.52!Prop.MyProperty

where 52 was the ID number of the Group shape, and Prop.MyProperty is the
name of the Shape Data row.
(You could use Prop.Row_1 etc but you can see that this is less clear)
 
T

twingate

David,

Thanks a bunch, this speeds things up a great deal when
building diagrams.

Relating to my original post: Visio still seems to group the
shapes a second time when the shape is dropped, and thereby
ignoring 'Ask on drop' for Shape Data. Any ideas why and hoe
to circumvent this?

Goodwill,
Thomas
 
T

twingate

I have tried this in a number of different ways and the only
thing that works is if the master only contains a single
shape. If I build the master from a collection of shapes and
then group these Visio will still group all the shapes a
second time when they are dropped


David said:
You should only have one shape in your Master. This can be a Group with
sub-shapes, but if you have more than one shape in the Master, then
Visio will automatically group them all when you drop them on the page.

twingate said:
David,

Thanks a bunch, this speeds things up a great deal when building
diagrams.

Relating to my original post: Visio still seems to group the shapes a
second time when the shape is dropped, and thereby ignoring 'Ask on
drop' for Shape Data. Any ideas why and hoe to circumvent this?

Goodwill,
Thomas

David said:
Indeed you can:
It would be useful if you named your Shape Data rows first, instead
of leaving the default, Row_1, Row_2, etc.
To do this, either use the ShapeSheet, or ensure that you are in
Developer Mode (Tools / Options / Advanced ) before you open the
Define Shape Data dialog.

Then, get the Sheet ID number of the parent group shape - use Format
/ Special

Finally, you can then select a sub-shape and then Insert / Field.
In the Custom Formula option you can then enter something like:
=Sheet.52!Prop.MyProperty

where 52 was the ID number of the Group shape, and Prop.MyProperty is
the name of the Shape Data row.
(You could use Prop.Row_1 etc but you can see that this is less clear)

Mark,

Thanks for your answer, it helped clarify some things.
A follow-up question: I'd like to insert the shape data from the
main group in various sub-shapes. Is there any way I can do this
through the shapesheet? Something like Text Fields - Value:
MainGroup.Prop.Row_1 ?

Thanks,
Thomas

Mark Nelson [MS] wrote:
I'm not exactly sure what you are trying to do, but let me take a
stab at it. When you create a master that consists of more than
one shape, make sure that you create a group. There should only be
one top-level shape and the rest should be sub-shapes of the
group. If you don't do this, Visio will automatically group your
shapes when the master is dropped on a page. This would defeat
behaviors such as Ask on Drop.

Having a single top-level shape also resolves all the issues around
where to put things like Shape Data. You need to put the Shape
Data in the top-level shape.
 
D

David Parker

You should only have one shape in your Master. This can be a Group with
sub-shapes, but if you have more than one shape in the Master, then Visio
will automatically group them all when you drop them on the page.

twingate said:
David,

Thanks a bunch, this speeds things up a great deal when building diagrams.

Relating to my original post: Visio still seems to group the shapes a
second time when the shape is dropped, and thereby ignoring 'Ask on drop'
for Shape Data. Any ideas why and hoe to circumvent this?

Goodwill,
Thomas

David said:
Indeed you can:
It would be useful if you named your Shape Data rows first, instead of
leaving the default, Row_1, Row_2, etc.
To do this, either use the ShapeSheet, or ensure that you are in
Developer Mode (Tools / Options / Advanced ) before you open the Define
Shape Data dialog.

Then, get the Sheet ID number of the parent group shape - use Format /
Special

Finally, you can then select a sub-shape and then Insert / Field.
In the Custom Formula option you can then enter something like:
=Sheet.52!Prop.MyProperty

where 52 was the ID number of the Group shape, and Prop.MyProperty is the
name of the Shape Data row.
(You could use Prop.Row_1 etc but you can see that this is less clear)

twingate said:
Mark,

Thanks for your answer, it helped clarify some things.
A follow-up question: I'd like to insert the shape data from the main
group in various sub-shapes. Is there any way I can do this through the
shapesheet? Something like Text Fields - Value: MainGroup.Prop.Row_1 ?

Thanks,
Thomas

Mark Nelson [MS] wrote:
I'm not exactly sure what you are trying to do, but let me take a stab
at it. When you create a master that consists of more than one shape,
make sure that you create a group. There should only be one top-level
shape and the rest should be sub-shapes of the group. If you don't do
this, Visio will automatically group your shapes when the master is
dropped on a page. This would defeat behaviors such as Ask on Drop.

Having a single top-level shape also resolves all the issues around
where to put things like Shape Data. You need to put the Shape Data in
the top-level shape.
 
T

twingate

Another problem with grouping the shapes twice is that
individual hyper links for different sub-shapes will not
work in the web-export

David said:
You should only have one shape in your Master. This can be a Group with
sub-shapes, but if you have more than one shape in the Master, then
Visio will automatically group them all when you drop them on the page.

twingate said:
David,

Thanks a bunch, this speeds things up a great deal when building
diagrams.

Relating to my original post: Visio still seems to group the shapes a
second time when the shape is dropped, and thereby ignoring 'Ask on
drop' for Shape Data. Any ideas why and hoe to circumvent this?

Goodwill,
Thomas

David said:
Indeed you can:
It would be useful if you named your Shape Data rows first, instead
of leaving the default, Row_1, Row_2, etc.
To do this, either use the ShapeSheet, or ensure that you are in
Developer Mode (Tools / Options / Advanced ) before you open the
Define Shape Data dialog.

Then, get the Sheet ID number of the parent group shape - use Format
/ Special

Finally, you can then select a sub-shape and then Insert / Field.
In the Custom Formula option you can then enter something like:
=Sheet.52!Prop.MyProperty

where 52 was the ID number of the Group shape, and Prop.MyProperty is
the name of the Shape Data row.
(You could use Prop.Row_1 etc but you can see that this is less clear)

Mark,

Thanks for your answer, it helped clarify some things.
A follow-up question: I'd like to insert the shape data from the
main group in various sub-shapes. Is there any way I can do this
through the shapesheet? Something like Text Fields - Value:
MainGroup.Prop.Row_1 ?

Thanks,
Thomas

Mark Nelson [MS] wrote:
I'm not exactly sure what you are trying to do, but let me take a
stab at it. When you create a master that consists of more than
one shape, make sure that you create a group. There should only be
one top-level shape and the rest should be sub-shapes of the
group. If you don't do this, Visio will automatically group your
shapes when the master is dropped on a page. This would defeat
behaviors such as Ask on Drop.

Having a single top-level shape also resolves all the issues around
where to put things like Shape Data. You need to put the Shape
Data in the top-level shape.
 
M

Mark Nelson [MS]

I would check the Master Explorer window to confirm that you definitely have
a single top-level shape in the master.

--
Mark Nelson
Office Graphics - Visio
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.

twingate said:
Another problem with grouping the shapes twice is that individual hyper
links for different sub-shapes will not work in the web-export

David said:
You should only have one shape in your Master. This can be a Group with
sub-shapes, but if you have more than one shape in the Master, then Visio
will automatically group them all when you drop them on the page.

twingate said:
David,

Thanks a bunch, this speeds things up a great deal when building
diagrams.

Relating to my original post: Visio still seems to group the shapes a
second time when the shape is dropped, and thereby ignoring 'Ask on
drop' for Shape Data. Any ideas why and hoe to circumvent this?

Goodwill,
Thomas

David Parker wrote:
Indeed you can:
It would be useful if you named your Shape Data rows first, instead of
leaving the default, Row_1, Row_2, etc.
To do this, either use the ShapeSheet, or ensure that you are in
Developer Mode (Tools / Options / Advanced ) before you open the Define
Shape Data dialog.

Then, get the Sheet ID number of the parent group shape - use Format /
Special

Finally, you can then select a sub-shape and then Insert / Field.
In the Custom Formula option you can then enter something like:
=Sheet.52!Prop.MyProperty

where 52 was the ID number of the Group shape, and Prop.MyProperty is
the name of the Shape Data row.
(You could use Prop.Row_1 etc but you can see that this is less clear)

Mark,

Thanks for your answer, it helped clarify some things.
A follow-up question: I'd like to insert the shape data from the main
group in various sub-shapes. Is there any way I can do this through
the shapesheet? Something like Text Fields - Value:
MainGroup.Prop.Row_1 ?

Thanks,
Thomas

Mark Nelson [MS] wrote:
I'm not exactly sure what you are trying to do, but let me take a
stab at it. When you create a master that consists of more than one
shape, make sure that you create a group. There should only be one
top-level shape and the rest should be sub-shapes of the group. If
you don't do this, Visio will automatically group your shapes when
the master is dropped on a page. This would defeat behaviors such as
Ask on Drop.

Having a single top-level shape also resolves all the issues around
where to put things like Shape Data. You need to put the Shape Data
in the top-level shape.
 
T

twingate

Mark,

Apparently Ctrl-A did not select shapes not on the visible
page/drawing area. Using the Master explorer did help me
find this though. This means 'Ask on drop' works for the
group Shape Data. Thanks for the hint :)

But grouping shapes causes other problems in combination
with web export:
Exporting the diagram as a web-page using VML causes the
independent hyperlinks assigned to different shapes in the
master to stop functioning. This this is a problem if the
shapes in the master are not grouped!
Is there a way around this?

If I avoid grouping the shapes then hyperlinks work well in
both IE and Firefox but of course all the ActiveX stuff
doesn't work in FF. Links to sub-diagrams(pages) work if the
ActiveX component is not running; ie it works in Firefox and
in IE (both browsers latest versions), but not if it is allowed!
Surely this must be a bug or oversight?

Interestingly enough the links work in the grouped master if
the export is SVG but the rendering is missing a lot of
graphic elements and is pretty much useless. Why support
half-cooked SVG?

If I turn all the Publishing Options off and set the output
to JPG or PNG Visio still exports ActiveX components that
cause some erratic behavior, but the links work as expected.
Why include the controls if they are not used? Is there any
way around this except hacking the html?

To me the 'Save as Web Page' is half-finished beta. Why put
this in a final product?

All in all Visio has a lot of interesting and powerful
functionality, it's just very convoluted and slightly
irrational to learn and unfortunately we end up wasting a
LOT of time.

/T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top