How to store in shape data entered text back into the appropriateShape Data field?

B

bramzjunk

Currently I use shapes where some textfields reference Shape Data
fields.
To prevent editing this field I set LockTextEdit in the Protetection
section of the Shapesheet to 1.

But now I want to let some other persons only change visible
properties of the Shape. (i.e. the Prop.Label and Prop.Description
form the Shape Data Field). And not confront them with the other
metadata stored in the Shape Data fields.

The most user friendly option would be to directly manipulate visible
texts on the shapes in the drawing itself.

So if there is some way to edit these textfields and store the result
back into the shape data field that would be (e.g. by editing a field
shown in Shapetext , or by editing textfields presented with the Data
Graphic info)

I am looking for some kind of SETATREF formula that operates on
textstrings or a VB script that can do this trick....

Who can help me out?
 
P

Paul Herber

Currently I use shapes where some textfields reference Shape Data
fields.
To prevent editing this field I set LockTextEdit in the Protetection
section of the Shapesheet to 1.

But now I want to let some other persons only change visible
properties of the Shape. (i.e. the Prop.Label and Prop.Description
form the Shape Data Field). And not confront them with the other
metadata stored in the Shape Data fields.

I think you just want to set certain properties to be invisible. You
can do this in the shape's shapesheet, it isn't available from the
standard ShapeData dialog box.
 
B

bramzjunk

Thanx Paul,

Setting certain properties invisible solves part of the problem.
When not in developer mode, the users can't access the fields.
But still they need to edit the data in the shape data box.

To make the solution more visio newbie friendly "Just select a shape
and hit F2 to edit the text" ) I still search for a solution where the
user can directly manipulate displayed text in the drawing. The
results should be stored in the shape data fields.

Or another way of cross referencing texts:

Suppose i have two shapes (sheet.1 and sheet.2)
Now i want to place a custom field in sheet.2, refering to the label
from a custom field defined in sheet.1.
that's easy: "=Sheet.1!Prop.label"

But now i want to edit this label, and store the result in the
referenced cell.
If it would be any other property, say width, i could use:
Width =GUARD(SETATREF(Sheet.1!Width)

but for a textstring the SETATREF function does not work....


Is there a way to make one single textstring editable and displayed at
two places at once?

Kind regards,

bram
 
J

John... Visio MVP

Thanx Paul,

Setting certain properties invisible solves part of the problem.
When not in developer mode, the users can't access the fields.
But still they need to edit the data in the shape data box.

To make the solution more visio newbie friendly "Just select a shape
and hit F2 to edit the text" ) I still search for a solution where the
user can directly manipulate displayed text in the drawing. The
results should be stored in the shape data fields.

Or another way of cross referencing texts:

Suppose i have two shapes (sheet.1 and sheet.2)
Now i want to place a custom field in sheet.2, refering to the label
from a custom field defined in sheet.1.
that's easy: "=Sheet.1!Prop.label"

But now i want to edit this label, and store the result in the
referenced cell.
If it would be any other property, say width, i could use:
Width =GUARD(SETATREF(Sheet.1!Width)

but for a textstring the SETATREF function does not work....


Is there a way to make one single textstring editable and displayed at
two places at once?

Kind regards,

bram


The trick I use is to have two fields.
The first is editable and the second references the first, but is not
editable.
You decide what controls the visibility of the first field. The visibility
of the second field is the negation of the first field's visibility.

So at any one time only one field is visible.

John... Visio MVP
 

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