Questionnaire design

Question note

Notes are displayed after the question text, using a different look; they also specify the text of the line in matrix presentations (see Tables section).

Example of a note segment:

    % Question note
       [EN]Please be as specific as possible.
       [FR]Veuillez être aussi précis que possible.

The note text may contain HTML codes. Such codes are interpreted directly by the browser.

Recall of previous answers can be done in the note text. See the Response recall section for the syntax of the recall.

If more than one language is defined in the questionnaire, language segments of the note must be preceded by the international ISO language code within brackets (e.g., [EN]). A lonely equal sign (=) in a text field can be used to copy text from the default language to any non-default language.

The text of the note can be borrowed from another question by putting the equal sign "=" left of the name of the question from which to copy.

Question cloning

When a series of questions that are exactly the same except for the Note field (and possibly the display condition) must be created (e.g., to create a battery of questions presented in a table format), it is possible to use a succinct cloning syntax. This is more easily explained with an example:

    Q1
    % question
       Have you ever:
    % note
       [SUFFIX:_A]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    % categories
       Yes
       No
    % skips
    % condition
    % open part
    !

This code creates three questions (Q1_A, Q1_B and Q1_C) which share all characteristics except for the content of the Note. These questions may or may not be then placed into pages and/or tables. If different languages are used, each suffixed entry must contain the proper language segments.

The container question (Q1 in the example above) does not exist as far as CallWeb is concerned; only the suffixed questions do. Therefore, while it is possible to copy from and to the suffixed questions (Q1_A and following in the example), it is not possible to copy from and to the container question (Q1 above). This means that, following the same example, this code is legitimate:

    Q1
    ...
       [SUFFIX:_A]=Q0_A
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    ...
    Q2A
    ...
    % note
       =Q1_A
    ...

and this code as well:

    Q1
    ...
       [SUFFIX:_A]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    ...
    Q2
    ...
    % note
       [SUFFIX:_A]=Q1_A
       [SUFFIX:_B]=Q1_B
       [SUFFIX:_C]=Q1_C
    ...

but that this one is not:

    Q1
    ...
       [SUFFIX:_A]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    ...
    Q2
    % question
       =Q1
       ## Hint: that's because Q1 is a container question, hence it does not exist
    ...
    % note
       =Q1
    ...

We highly discourage building a script containing a regular question (e.g., Q1) AND a container question (e.g., Q1 + various suffixes), or two container questions, with the same name. The compiler is able to deal with such situations but the cwedit module cannot.

Display conditions can also be applied to particular suffixes. Such a display condition is inserted between brackets immediately after the SUFFIX bracket set and immediately before the text of the note. SUFFIX display conditions supersede any display condition that could be attached to the container question. Thus, in the following example:

    Q2
    % question
       Have you ever:
    % note
       [SUFFIX:_A][Q1.EQ.1]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    % categories
       Yes
       No
    % skips
    % condition
       Q1.EQ.2-4
    % open part
    !

the display condition on the first statement is [Q1.EQ.1] while the other statements have a display condition of [Q1.EQ.2-4].

The same logic applies to CORNER=(text) parameters which can be added on the SUFFIX line as follows:

    Q2
    % question
       Have you ever:
    % note
       [SUFFIX:_A][CORNER=([EN]Put this text in the corner of the table)]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    % categories
       Yes
       No
    % skips
    % condition
       Q1.EQ.2-4
    % open part
    !

The CORNER=(text) parameter changes the text displayed in the left corner of a table header, for this question only. It can contain one segment for each questionnaire language, specified using square brackets and two-letter language codes.

SUFFIX questions are not limited to building tables but they are a very quick way to create a series of questions that share a response set and that can be displayed in table format. It is sometimes useful to insert a title row in such a table, as shown in the image to the right where the PRODUCT and FINANCIAL lines act as titles (no data is collected about them). One simple way to create such titles is to add the letter "T" to the keyword "SUFFIX" (making it "SUFFIXT"). A SUFFIX-title question is imposed a minimum of zero answers (so that it can be left unanswered) and all of its response codes are given a behaviour code of "N" (in addition to any other behaviour code the answer categories may have) so that no response object (a radio button or a check box) is shown in the cells of the title line.

Questionnaire design

Question note

Notes are displayed after the question text, using a different look; they also specify the text of the line in matrix presentations (see Tables section).

Example of a note segment:

    % Question note
       [EN]Please be as specific as possible.
       [FR]Veuillez être aussi précis que possible.

The note text may contain HTML codes. Such codes are interpreted directly by the browser.

Recall of previous answers can be done in the note text. See the Response recall section for the syntax of the recall.

If more than one language is defined in the questionnaire, language segments of the note must be preceded by the international ISO language code within brackets (e.g., [EN]). A lonely equal sign (=) in a text field can be used to copy text from the default language to any non-default language.

The text of the note can be borrowed from another question by putting the equal sign "=" left of the name of the question from which to copy.

Question cloning

When a series of questions that are exactly the same except for the Note field (and possibly the display condition) must be created (e.g., to create a battery of questions presented in a table format), it is possible to use a succinct cloning syntax. This is more easily explained with an example:

    Q1
    % question
       Have you ever:
    % note
       [SUFFIX:_A]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    % categories
       Yes
       No
    % skips
    % condition
    % open part
    !

This code creates three questions (Q1_A, Q1_B and Q1_C) which share all characteristics except for the content of the Note. These questions may or may not be then placed into pages and/or tables. If different languages are used, each suffixed entry must contain the proper language segments.

The container question (Q1 in the example above) does not exist as far as CallWeb is concerned; only the suffixed questions do. Therefore, while it is possible to copy from and to the suffixed questions (Q1_A and following in the example), it is not possible to copy from and to the container question (Q1 above). This means that, following the same example, this code is legitimate:

    Q1
    ...
       [SUFFIX:_A]=Q0_A
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    ...
    Q2A
    ...
    % note
       =Q1_A
    ...

and this code as well:

    Q1
    ...
       [SUFFIX:_A]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    ...
    Q2
    ...
    % note
       [SUFFIX:_A]=Q1_A
       [SUFFIX:_B]=Q1_B
       [SUFFIX:_C]=Q1_C
    ...

but that this one is not:

    Q1
    ...
       [SUFFIX:_A]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    ...
    Q2
    % question
       =Q1
       ## Hint: that's because Q1 is a container question, hence it does not exist
    ...
    % note
       =Q1
    ...

We highly discourage building a script containing a regular question (e.g., Q1) AND a container question (e.g., Q1 + various suffixes), or two container questions, with the same name. The compiler is able to deal with such situations but the cwedit module cannot.

Display conditions can also be applied to particular suffixes. Such a display condition is inserted between brackets immediately after the SUFFIX bracket set and immediately before the text of the note. SUFFIX display conditions supersede any display condition that could be attached to the container question. Thus, in the following example:

    Q2
    % question
       Have you ever:
    % note
       [SUFFIX:_A][Q1.EQ.1]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    % categories
       Yes
       No
    % skips
    % condition
       Q1.EQ.2-4
    % open part
    !

the display condition on the first statement is [Q1.EQ.1] while the other statements have a display condition of [Q1.EQ.2-4].

The same logic applies to CORNER=(text) parameters which can be added on the SUFFIX line as follows:

    Q2
    % question
       Have you ever:
    % note
       [SUFFIX:_A][CORNER=([EN]Put this text in the corner of the table)]ridden a bicycle
       [SUFFIX:_B]driven a car
       [SUFFIX:_C]piloted a plane
    % categories
       Yes
       No
    % skips
    % condition
       Q1.EQ.2-4
    % open part
    !

The CORNER=(text) parameter changes the text displayed in the left corner of a table header, for this question only. It can contain one segment for each questionnaire language, specified using square brackets and two-letter language codes.

SUFFIX questions are not limited to building tables but they are a very quick way to create a series of questions that share a response set and that can be displayed in table format. It is sometimes useful to insert a title row in such a table, as shown in the image to the right where the PRODUCT and FINANCIAL lines act as titles (no data is collected about them). One simple way to create such titles is to add the letter "T" to the keyword "SUFFIX" (making it "SUFFIXT"). A SUFFIX-title question is imposed a minimum of zero answers (so that it can be left unanswered) and all of its response codes are given a behaviour code of "N" (in addition to any other behaviour code the answer categories may have) so that no response object (a radio button or a check box) is shown in the cells of the title line.