Below is a sample of an Ask table that contains a wide variable of elements. It is a 'perfect' sample for discussion.
<<*AskOptions(radio)*!ClientSex!Client = Male/Client = Female*>>
<<*AskRepeat*!NumCdn!Number of Children*>>
<<*If*!NumCdn!="0",,<<*AskOptional*!AllAdults!All children adults?*>>>>
<<*AskOptions(radio)*!ResTrust!Residual Trust/No Residual Trust*>>
<<*AskOptions(radio)*!T is Trustee?!Testator is Trustee/Testator not Trustee*>>
<<*AskOptions(radio)*!TrSign!Trust signed today/Trust signed earlier*>>
<<*AskOptions(radio)*!POA!Powers of Appointment Not Exercised/Powers of Appointment Exercised*>>
<<*AskOptions(radio)*!corpExec!Corporate Executor/No Corporate Executor*>>
<<*AskOptional*!MultiSuccessorExecs!Multiple successor executors?*>>
1.Simply determines the sex of the client. Not the (radio) attribute. That insures that, when the Interview is presented, then user can select only one of the two choices.
2.Determines marital status and assigns it to the groupname !Married?!
3.The (*If*) line compares two previous values to determine a third. The determined value is clear in the underlying document – !Sp Type! will be either ‘Husband’ or ‘Wife’. However, in logic equations such as this, we must speak in terms of position, not absolute value. Here is how the line is evaluated:
•If the value assigned to !Married! is the position 1 answer (in this case “Married”) AND if the !ClientSex! answer is “Male” (also the position 1 answer in its group), then the !SpType! will be the second choice (‘Wife’).
•If the !ClientSex! is ‘2’, then !SpType! will become ‘1’ (or ‘Husband’)
•The number in parentheses is optional. It is used to indicate how many choices that the !groupname! presents in the main document. In this case 2. While optional, it is much preferred.
4.Line 4 asks for the number of repeating variable given the groupname !NumCdn! (number of children)
5.If the number assigned to the groupname !NumCdn! is 0, then it assigns the 'true' value to 'nothing', but this 'nothing' still needs to be stated. That is done simple with a 'blank' comma. That way, Pathagoras can know where the 'false' value starts. (Note: this could also be re-written with a different comparator:
<<*If*!NumCdn!>”0”,<<*AskOptional*!AllAdults!All children adults?*>>,>>
6.Line 15 contains a multiple comparisons, connected by 'and'. It is just another way of stating lines 5 and 14.
a.!GroupNames! can be anything. They should help you and the end user (if the end user might see the Ask Table) to determine the purpose of the group. The question mark is not a mandatory element, but may be helpful. (The same groupname could have been !Married! or !Client is Married! or anything else.
b.Typically, the shorter the !GroupName! the better, but only because it takes up less space. So !ST! arguably would be better than !SpouseType!. The drawback is that a later user may not understand what !ST! stood for and may become frustrated. So, in the example, we settled on !SpType!
c.The placement of the various lines within the Ask block are not critical, so long as precedent values have been assigned before a dependent value is determined. So line 3 above could actually be anywhere, including line 11, so long as the values that line needs to complete the evaluation (in this case, 1 and 2) precede it.
d.The evaluation process uses classic Boolean logic structure. If ‘this’, then ‘that’, else ‘other that’. The astute reader will observe that the logic equation in 3 is imperfect. If the parties are not married and ClientSex = 1 (or 2), the equation will evaluate to the ‘false’ side, SpType = 1. However, as the document is structured, the value is acceptable because in actuality, it doesn’t matter. All ‘married’ references are processed out of the document when the ‘Client not married’ selection was made, and it simply does not matter if the client is not married to a Husband or not married to a Wife. The same pertains to line 5. If there are no children, it doesn’t matter if selection assigned to ‘AllChildren’ is Adults.
e.As Pathagoras reads down the Ask table, it will stop at and evaluate all ‘If’ lines. If the precedent values have already been assigned, it will proceed forward. If not, it will stop, and present another Interview screen for completion of the required variables.
f.If the value assigned to an undeclared GroupName is ‘True’ or ‘False’, the type of block in the underlying document will always be “<<*Optional*>>, with 2 and only 2 possible values: True or False (or Keep or Delete). Otherwise, it will be assigned as an <<*Options*>> block, with the number of elements as stated in the parenthesis, if provided.
An <<*Ask. . .*>> table comprises plain Word text. You can edit it to suit your office's needs. Just highlight, cut and paste until you have the order of questions you wish to present to the end user.