.1 Need at least 4 kinds of question fields:
(a) Question fields that can be conditional triggers:
(i) Radio buttons (ie, client can click a radio button to select one option only)
(ii) Checkbox (ie, the box is either ticked or empty)
(b) Question fields that can’t be conditional triggers:
(i) Short text input field (for one line of text)
(ii) Long text input field (to insert a large block of text, where the typing field is expandable by dragging the bottom right corner outwards)
1.2 Also need the ability to add fields that contain rich text that the form creator has entered.
1.3 So in total that's at least 5 kinds of fields.
1.4 Each field needs to be able to be either shown, or not shown, depending upon answers given to other questions in the form.
1.5 The form creator should be able to program in the visibility of each field using "Excel-style" formulas - ie, something like SHOWIF to start creating a visibility condition and then “AND” and “OR” to set the conditions.
1.6 Each field in the form would be automatically assigned a “field number” in the back end (visible only to the form creator), and then the possible answers to that field would similarly be automatically assigned a “letter code” in the back end (also visible only to the form creator). For example, take the following:
Here's some text for a radio button question?
First possible answer [*]
Second possible answer [*]
Third possible answer [*]
Now here's some text for a checkbox question? Tick if so: [ ]
Now here's a short text input field question: [ ]
1.7 In the back end, the top one would be automatically named Field#1, the middle one would be automatically named Field#2 and the bottom one would be automatically named Field#3. Then the possible answers to Field#1 would be automatically named A, B and C in the backend, and the possible answers to the checkbox field would similarly be named A and B (ie, A means blank, B means checked). The bottom one cannot be a conditional trigger.
1.8 So the form creator could then program in a condition as to the visibility of the third question, using an Excel-style formula - eg, in the settings for Field#3:
SHOWIF(AND(OR(Field#1=A,Field#1=B),Field#2=B)) ... this would mean:
Show Field#3 if Field#1 is answered either A or B, and Field#2 is ticked.
When the user change his/her mind in a form
1.9 Any question that is invisible because its SHOWIF conditionality is not satisfied should be treated as unanswered for the purposes of the SHOWIF conditionality of other questions. For example:
Let’s say the visibility of Q10 depends upon the answer to Q9, and the visibility of Q9 depends upon the answer to Q8. The user answers Q9 to make Q10 appear, but then goes back and changes his/her answer to Q8 so that Q9 becomes hidden. Q9 should then be treated as unanswered for the purposes of determining the visibility of Q10.
1.10 If necessary, this could involve actually “clearing” the answer to Q9 when it becomes hidden. Preferably, the answer to Q9 would be kept in memory, but while it is hidden it would be treated as unanswered for the purposes of other SHOWIF formulas in the form.
2. Using the form responses to generate Word documents
2.1 Then we need to be able to use the form responses to trigger things inside a Word document. This requires:
(a) Firstly, linking each form questionnaire to a particular Word document file. The Word document file can be prepared offline, and then uploaded and linked to the relevant form. This will probably require macros to be installed within Word locally on the form creator’s computer.
(b) Secondly, creating text-grab fields in the Word document itself. This is where the form creator would insert a Word field, and then mark it to dynamically grab and insert text that has been entered into the form questionnaire.
Note: Word already has something called an INCLUDETEXT field, which grabs and inserts text from another file – see here: http://office.microsoft.com/en-au/word-help/field-codes-includetext-field-HP005186165.aspx ... If we can save the form questionnaire responses in XML format, and automatically mark each of the questionnaire responses with an XPath expression, perhaps we could then use the INCLUDETEXT field in Word to grab the relevant marked bits from the questionnaire responses.
! If you are able to do this contact me and we should discuss as there is other functions that need to be implemented.