The positional value of a options list can be determined by the value of in specific 'repeat' cycle. If you have told Pathagoras to repeat a block 4 times, on the first round, it will return the first in the list of options, second round, the second item, etc. This is similar to the way a MailMerge builds a series of documents from each item in a database.

   If you have a 'reciprocal' document (one prepared for two people with the primary actors reversed -- think simple Wills), you can, with a single action prepare both documents, reversing just the actors are needed.


   Mail Merge: Generating multiple letters (and envelopes) from an existing list. Here, the names and addresses are physically in your document as an options list

   The action is performed by combining a <<*Repeat* block (to control, obviously, the number of documents being prepared) and an <<*Options(increment)* . . . >> block nested inside. As each repeat is implemented, the appropriate Option in the list of options is inserted. You don't need to make a selection in this scenario. The selection is simply the nth item, marrying up with the repeat cycle.

   By way of (a bad) example, let assume the following setup:


<<*Repeat*How many letters?*

 <<*Options(increment)*Mr. Robert Smith/Mr. John Jones/Ms. Mary Marshall/Susan Adams>>

 <<*Options(increment)*123 Main Street/765 Oak Tree Lane/332 Lands End Circle/432 Mason Street>>

 <<*Options(increment)*Jacksonville, FL  32211/Savannah, GA 31776/Houston, TX  44598/San Reno, CA  98876>>        


 Dear <<*Options(increment)*Bob/John/Mary/Susan/Robert>>,


 Thank you for your order of <<*Options(increment)*apples/bananas/cherries/dates>>




   If you selected 4 as the value of the Repeat, the result would be 4 letters, one addres to Mr. Smith (Bob), thanking him for ordering apples; one addressed to Mr. Jones (John), thanking him for ordering bananas, and so forth.

 Now, even though the above is illustrative of the action, as a practical matter, you are not going to pre-list all your names, addresses and products as shown above (which is why we described it as a 'bad example'). You are likely to use a database. Currently the database is linked to your Alias lists. (More data linking will be possible in the future as we see this function being used more in real life. So, if your alias list contains the values for the various items, a letter that looks like this can be processed.

<<*Repeat*How many letters?*


 <<*Options(increment)**Street Address*>>

 <<*Options(increment)**City, ST  ZIP*>>        


 Dear <<*Options(increment)**FirstName*>>,


 Thank you for your order of <<*Options*(increment)*product ordered*>>



         Robert Jackson, Production Supervisor




Reciprocal Documents:

 An I Love You Will that you want to produce for a married couple is a good example. The steps for producing Reciprocal Documents are discussed on the next page.



Include unique language with each successive repeat::

 This is probably a feature looking for an application, but if you need a repeating block text will always include certain base language, but sometimes you will want the intermediate language to change depending upon the value of the repeat cycle, this tool will do it for you.