Sometimes, the answer to a particular question will lead to an answer to a subsequent question. In such cases, rather than responding to each <<*Options/Optional*>> text block, you can create text block ‘groupings.’ When you answer the question, or select a certain option (or set of options), from the first member of the group, Pathagoras will hunt down other members of the group and select the corresponding choices.
Structure:
<<*Options*!groupname!(prompt1/prompt2)(etc.)* . . .>>
<<*Optional*!groupname!(prompt)*. . .>>
Note: The asterisks surrounding 'Options' or 'Optional' are part of the command. That's so it will be distinguished from the possible appearance of these words in your text). If you have added a !group name! or prompts/questions, or both, a final '*' must be inserted to close the 'administrative' section of the block.
Note: At the risk of repetition ad nausea um, but recognizing that this may be the first time you have seen this, the coloring used in any example is not required. They are for emphasis only. If used in your document (and we do encourage it), the colors will have no effect on the final product.
Examples:
We suggest that the primary color for the living room be <<*Options*!colors!*red/yellow/burnt orange>> and the contrasting trim be <<*Options*!colors!*yellow/purple/royal blue>>.
<<*Optional*!Disclaimer!Include disclaimer language?*We disclaim all liability if you try to shave your head with our chainsaw.>> (blah blah blah . . .) and furthermore <<*Optional*!Disclaimer!*we also disclaim responsibility if you try to use our hedge trimmer to file down your fingernails.>> |
Notes:
•The groupname (the text between the two “!” marks) can be no longer than 39 characters. Regardless of that allowance, we recommend 'the shorter the better' (including a single character). See the 'light bulb' below for more.
•The automatic selection of subsequent choices by Pathagoras in <<*Options*>> blocks depends upon the position of the choice made when the group is first encountered. So, in the first above example, if ‘yellow’ (the second option) is selected when the first block is encountered, ‘purple’ (the second option in the subsequent blocks of the same !group!) will be selected automatically when it is encountered.
There are two 'exceptions' to this rule:
(1) When you !group! a <<*Repeat* . . .> block with an <<*Options* . . .>> block, the selection of the <<*Options* . . .>> text depends upon whether '0', '1' or '2+' is the response to the *Repeat* question. This 0/1/2+ rule is discussed here.
(2) When the value being selected/tested is numeric (e.g, grades, scores, temperatures), and you are using the <<*AskValueInRange*>> command. The <<*AskValueInRange*>> command directs Pathagoras to select a response that falls within various ranges of values. the <<*AskValue*>> command is discussed here.)
•A !groupname! is mandatory for <<*Optional/Options*. . .>> blocks placed in headers and footers. Since <<*Optional/Options*. . .>> blocks in headers and footers cannot be processed 'stand-alone', there must be a 'referral' to the header/footer via a !groupname! set in the document body. Therefore, a header/footer <<*Options/Optional* . . .>> block must contain a !groupname!, and that !groupname! must have its origin within the document body.
The document body origin can be done (1) via a 'regular' <<*Options*!groupname!* . . . .>> setup, (2) via an Interview (e.g., <<*AskOptions*!groupname!* . . . .>> or (3) via a <<*Set*!groupname!= . . .>>
When creating a second and subsequent members of a !group!, AND if you are using prompts (shorthand terms used to help the end-user select a particular option), those prompts need not (actually should not) be repeated. Once the first member of the !group! is processed, Pathagoras has all the information it needs to handle the remainder. Those extra repeats of the prompt language takes up space in the documents, makes it harder for you debug your documents and may be confusing to you and your end-user when generally perusing the document before processing.
!GroupNames! are only needed when you intend to effect the 'auto-select' functions described about. So, the name of the group is typically not important. It is the prompts in the first appearance that is important. As to naming a group, we recommend 'the shorter the better.' However, the !GroupName! is displayed at the top of the selection screen (above the first set of choices). If you think the end-users could benefit from additional guidance as to the selection(s) they are about to make, a meaningful !groupname! would be appropriate.
LIMITATIONS: You cannot use the following characters in a !GroupName!: &,^,<,>,#,=,~,`,",*
GroupNames is one major area where Pathagoras distinguishes itself from other programs. All other programs use If/Then/Else logic to analyze the result of text sections. The coding typically looks like this: "If 'Sex of Client'='Male', then use this text, but 'Sex of Client='Female', then use this text." While you may not see the formula as you peruse the document, it is in your document nevertheless (in those gray fields that Pathagoras shuns). It's not that they take up space that is the problem. It's that you have to worry about programming, or if another product handles the programming for you, you have to make sure you made the right selections, and that after editing, your result is correct. With Pathagoras, all you have to worry about is 'position.' Imagine you are working with 50 choices, like the 50 United States. Then imagine having to program "If State=Alabama, then Capital=Montgomery else if State = Alaska, then Capital = Anchorage", etc. Pathagoras' positional logic allows you to simply list the 50 States, separating each with a slash, and separately list the capitals in the same order, separating with slashes. When you have grouped the variables with a simple group (we like !s!) and select e.g., Florida (13th in the list), Pathagoras can quickly return 'Tallahassee' (13th in the list). Plain text . . . Plain easy. (No, you don't actually have to list all 50 States and their Capitals in you document. Use *Aliases* to lighten that load.) |
See also: