DAB text can be called in as the value to a variable. You theoretically could use your Instant Database to create entire documents.
Let's say you wanted to link the 'value' of a variable not to a name, address, size, color, quantity, etc., which variables typically represent, you could provide as its value a <<document name>> reference. This opens up a wide range of document assembly possibilities.
When the variable is processed, it is replaced by "<<document name>>" On its next pass through the document, Pathagoras then 'sees' that value and (because it is DAB text), begins to process it. Following the normal Order of Search rules, Pathagoras locates and places the desired text onto the screen. It quite literally is blink of an eye fast.
Further, you could include in your document the following: "[<<document name1>>/<<document name2>>/<<document name3>>]" as a multiple choice variable, and offer the end user a choice of 'documents' to insert. And still further, you could use !groups! to tie a multiple choice variable such as the above to the answer to a preceding multiple choice variable.
The possibilities are endless. One more use: If you use Excel to bring in values to variables, a value that you can insert in your Excel spreadsheet might be a <<document name>>. Keep in mind that Pathagoras doesn't care how the value gets inserted into the document. If it's there between double angle brackets, Pathagoras will process it.
DAB text can be nested within an <<*Options/Optional*>> block. This opens up a wide range of document assembly possibilities. By properly constructing the Options/Optional block, you can pose a simple question to the end user within the Options block which, when answered, calls in the appropriate document or clause. For example, let's assume the following <<*Options*>> text block resides in the source clause of a letter being written to a purchaser of goods. The purpose of the clause is advise the recipient of the letter what the shipping costs would be in various situations. Assume names within the DABs are existing documents in the user's system.
<<*Options(radio)*Order Amount:$0 - $100/$101-$200/$201-$500/$501 + *<<Full charges>>/<<20pcnt discount>>/<<50 pcnt discount>>/<<Free shipping>>>>
When the above text block is encountered during Pathagoras' top-to-bottom 'processing' of the document, Pathagoras will present the 'questions' "$0 - $100" "$101-$200" "$201-$500" and "$501 +" onto a pop-up form for selection. The user makes the appropriate selection and based on that selection, the appropriate <<document name>> value is returned to the screen (albeit only briefly).
On its next pass through the document, Pathagoras then 'sees' that value and (because it is DAB text), begins to process it. Following the normal Order of Search rules, Pathagoras locates and places the desired text onto the screen. It quite literally is blink of an eye fast.
One further addition to your <<*Options/Optional*>> block can add even more power to your source document. You can add a group name. That way, the first answer provided in the top-to-bottom processing of the document will result not only in the insertion of the clause at the 'top,' but also for all other clauses in the same !group! in a locations further down in the document. With !groups!, you can create very complex documents, yet pose very simple questions to the end-user.
Note: The "<<" and ">>" marks are not special keyboard or ASCII code. They are the 'lesser than' and 'greater than' characters above the 'comma' and the 'period' on your keyboard.
While not precisely the same, implementation of above can bring powerful "If . . / Then . . ." logic to your documents. See a further discussion of this at this link.