Visio Discussions > ShapeSheet & Smart Shapes

SetAtRef et al.

<< < (4/5) > >>

wapperdude:
@spandex: 
--- Quote ---Going through your shapesheets, I have a question: when either of your shapes changes line rounding via the Shape Data dialog (dbl-click), what mechanism causes the Rounding field in the same shape to update?
--- End quote ---

The attached drawing shows the SETATREF process as applied to your case.

Wapperdude

wapperdude:
Not at the level that Vojo was requesting, that would take considerably more time, but here's an update to some simple documentation as pertains to this particular post thread.

There is one disclaimer, on page-3, I state that SETATREF avoids endless looping.  Haven't confirmed that statement, so, just beware!

The Visio file has 3 pages.  It's a small start.

Wapperdude

EDIT:  Ooops.  The sheet.2 diagram should look same as sheet.1 block diagram.

spandex:
Thanks so much, Wapperdude, for these examples. I just downloaded the latest updates from the What's with SETATREF anyway? topic, and I plan to go through it until I understand SetAtRef.

I implemented Example 2 in the SETATREF Function.docx file, and I'm having a hard time understanding parts of it. I can see how moving the child shape works, but how does moving the parent cause the child to follow? If it's via normal "dependency" recalculation, what part of the PinX/Y formulas are involved? The first of two articles from Microsoft's blog states this:

During the recalc operation, the SETATREF function is transparent. SETATREF(x) = x. In other words, the result of the recalc is just like if there were no SETATREF wrapped around the cell references.

At the risk of seeming pedantic, SetAtRef most frequently seems to have two arguments. So, which of these two are correct for normal recalc:

SetAtRef(x,y) = x
SetAtRef(x,y) = y

Thanks for any help you can provide!

wapperdude:
I've only seen SETATREF with single argument...best I recall.

Take a look at the latest Visio file...It diagrams basic function of the formula, has examples, progresses to the full syntax implementation...SETATREF(SETATREFEVAL(SETREFEXPR())).

spandex:

--- Quote from: wapperdude on March 25, 2015, 03:34:50 PM ---I've only seen SETATREF with single argument...best I recall.
--- End quote ---

I'm likely using incorrect terminology. I copied this from your SETATREF Function.docx file:

Syntax:  SETATREF(reference [,set_expression [,ignore_eval]])

I use the term arguments to refer to the list of comma-separated values inside the parentheses. If this were correct (and it looks like it isn't), SETATREF with two "arguments" (i.e., SETATREF(reference, set_expression)) is the most prevalent usage I've seen.


--- Quote from: wapperdude on March 25, 2015, 03:34:50 PM ---Take a look at the latest Visio file...It diagrams basic function of the formula, has examples, progresses to the full syntax implementation...SETATREF(SETATREFEVAL(SETREFEXPR())).

--- End quote ---

Fantastic! Thank you SO much for all of your efforts.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version