gwcoffey.com

Archived Post

This post is archived from Six Fried Rice, a company and blog I used to run. Some posts have been edited slightly to fix typographical errors, and remove unnecessarily-gendered language. You can view the full archive here.

One of the least talked about features of FileMaker 9 is a new calculation doodad called Self. Although the primary purpose of this function is to facilitate the Conditional Formatting feature (which can perform calculations on such unnamed items as text objects and buttons), Self comes in handy in lots of common situations.

The Self function is simple in concept: it returns the value of whatever object it lives in. For instance, if you put Self in a validation calculation, it will return the value in the field being validated.

This might seem a little…well..pointless. After all, there’s another way to get at that field’s value in a calculation: put the field name in the calculation.

The advantage of Self is subtle. Since you don’t have to refer to the field explicitly by name, you can easily copy and paste the formula somewhere else without the need to edit it. How often have you added the exact same validation calculation to several different fields? Before Self you had to adjust it in each field to refer to the correct value. With Self, the same formula — unchanged — works in each place.

Self has one more capability that’s a little less useful. When you use Conditional Formatting (Format → Conditional in layout mode), you can perform calculations on text objects and buttons. For example, if you apply conditional formatting to a text object, you can use Self in the condition formula. In that case, Self returns the contents of the text object itself. More specifically, it returns the browse mode contents. If the text object contains merge fields or other special symbols, the result of Self includes the actual replacement data.

I’m not entirely sure what you’d ever do with that ability (and I’ve spent far too much time trying to think of something). If you find a cool use for it, let us know in the comments 😄