Genii Weblog

@Transform and @Midas

Tue 14 Dec 2004, 10:56 PM

by Ben Langhinrichs
Rocky Oliver has a really cool article over on his LotusGeek site called Formula Big Top Preview: The Elusive @Transform.  In it, he describes the powerful @Transform function, added to formula language for Notes/Domino 6.x.  I'd suggest you go to his site to read all about it, but I'll excerpt one little bit:<blockquote>@Transform works against a list, and executes a formula against each individual element of the list, returning the modified list as the return value. The syntax of @Transform looks like this:

@Transform(list; name of variable; formula to run)

The list parameter is the list you want to work against.
name of variable is a string that represents a single value in your list in the formula to run.
formula to run is the single line of formula code you want to run against each element in your list.</blockquote>So, at the risk of being obsessive, how could you possibly use this with @Midas Formulas, which works on rich text fields?

It turns out, there are several ways.  I'm just going to show a simple example today, but tomorrow I'll show a much more powerful example, having to do with HTML generation and related to our on-line demo @Midas A La Carte (which you should try if you haven't, as it is entertaining if nothing else).

Getting Counts for Rich Text Targets
Let's say I want to find out the count of a number of different objects in a rich text field.  Let's say, for example, I want to find the number of tables, sections and URL hotspots.  My code could be: 

object_list := "Table":"Section":"URLLink";
counts := @Transform(object_list; "Obj"; Obj+"="+@Text(@DbCommand("Midas":"NoCache"; "GetCount"; ""@DocumentUniqueID"Body"; Obj)));
@Prompt([OK]; "Results"@Implode(counts; ", "));
This returns the result Table=1, File=0, URLLink=3 for this blog posting so far (with the fieldname changed to match this field).

Of course, we could make this a list selected by the user from a checkbox field, and the formula would not have to change at all.  Pretty cool.  But as I said, I have a more powerful example in mind which I need to write up and test tomorrow.  Now, back to Rocky's site to set up a trackback so he knows somebody is reading his articles <grin>.

Copyright 2004 Genii Software Ltd.

What has been said:

No documents found