Questionnaire design

Question name line

The question name line uses the following syntax (all information must be supplied on a single line):

    QUESTION_NAME MIN=n MAX=n NCOLS=n SUBSET=question CODESIN=question CATEGORIES=question CORNER=(text) ONE OR MORE KEYWORDS MUST=(condition)

The question name:

  • may contain up to 64 characters;
  • must start with a letter other than A;
  • may contain letters, numbers and the underscore character.

The MIN= parameter is the minimum number of responses expected. Set at zero, it allows nonresponse to a question. The default is 1.

The MAX= parameter is the maximum number of responses expected. Set at a value greater than 1, it forces the use of check boxes rather than radio buttons. The default is 1.

Setting both MIN and MAX at zero creates a question without answer categories. CallWeb displays the question text and note, if applicable.

The NCOLS= parameter determines over how many columns the response categories will span. The overall system default is a single column list. This system default can be overridden by a questionnaire-wide default using the # N COLONNES PAR DEFAUT instruction. Finally, the question-level NCOLS parameter can override all of the defaults on a question by question basis.

The SUBSET=question parameter names the open-end part to use to reduce the list of answer categories using a substring in the code labels (see a full description).

The CODESIN=question parameter names the open-end part to use to reduce the list of answer categories using any criteria from a related data base (see a full description).

The CATEGORIES=question parameter names the open-end part to use as input to create the list of answer categories (see a full description).

The MUST=(condition) parameter specifies a logical condition under which an answer MUST be supplied to the question.

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 (e.g., [EN]).

  • See the section on Display conditions for the syntax of logical conditions.
  • The logical condition must be within parentheses (for xBase-style conditions) or braces (for Perl-style conditions).
  • This is in addition to the MIN and MAX parameters such that a question can have a minimum of zero answers (be allowed to not be answered except under circumstances defined in the MUST condition).
  • The MUST condition is applied only if the question is displayed according to its display condition.
  • The MUST condition should be specified last on the Question Name line.
  • Example of use: one can build a two-variable-side-by-side matrix of, say, importance ratings, where the last entry is an "other" with an open-end box and a rating scale. These two questions have a minimum of zero answers since some people may have no "other" answer but if a scale rating is supplied, a description must be offered in the open-end box. In this case, MUST=(Q2.GT.1) applied to Q1 would insist upon the supply of an answer to Q1 if Q2 was answered to.

The KEYWORDS can be any of the following values (logically, some can be used concurrently, others not):

AFFECTING RESPONSE CATEGORIES
ROTATIONresponse categories without a [B]locked behaviour code are presented in random order (formerly but still working: codes with values of less than 900). It can also be used with the ROTATION=Qx syntax; the permutation of the current question is then copied from the permutation of Qx (also called "parallel permutation" or "controlled permutation").
INVERSIONresponse categories without a [B]locked behaviour code are randomly inverted (formerly but still working: codes with values of less than 900). It can also be used with the INVERSION=Qx syntax; the inversion of the current question is then copied from the inversion of Qx (also called "parallel inversion" or "controlled inversion").
ALPHAresponse codes without a [B]locked behaviour code are alphabetically ordered according to the response label in the language displayed (formerly but still working: codes with values of less than 900)
DROPDOWNresponse categories are presented in a dropdown list instead of as a set of radio buttons or checkboxes
CHECKALLthis keyword automatically sets the maximum number of allowable answers to the number of non exclusive answer categories.
SCALEthis parameter tells CallWeb to display the response categories as a horizontal scale. Used alone, the scale cell widths are left to the browser to determine; used as "SCALE=nn", the scale cell widths are no less than "nn" pixels. Add a C before "nn" and the scale is centred on the page. This feature does not work in conjunction with the succinct cloning syntax.
FORCEHEADER(or FORCEENTETE) when questions are displayed in table format, this question type forces the addition of the table banner (the text of response categories) before the current question.
ONCEACROSSonly one respondent can select any given category of response (with a code less than 9000); already-selected categories are not shown in the list of possible answers.
NOTESTcancels compilation tests on response categories (useful to speed up the compilation when a question includes thousands of answer categories, it has been tested in the past and no change was made to it).
SEMANTICsplits the note field into two pieces at the last slash character and places the second piece in response categories to provide the effect of a semantic differential scale. Note: do not use note copying or response category copying in SEMANTIC questions.
NOPRINTCATdeactivates the printing of response categories in print mode (useful for very long lists of categories).
DONOTPRINTdeactivates the printing of the question in print mode.
SUGGdisplays the warning message for an insufficient number of responses only once (then allows continuing with fewer responses than required by the MIN parameter). Note: works only once a record is saved in the data base.
PERFORMING CALCULATIONS
BLANK(never displayed) the first code is attributed to the variable if the display condition is true (see also calculations)
CALCUL(never displayed) the question performs a calculation and returns the result in another (or the same) variable
RANDOM(never displayed) a random integer is attributed to the variable (see also calculations)
WEIGHTa weight is stored in the open-end part of this variable and is used in reporting frequencies in cwfreq and cwquestionnaire
AFFECTING THE DISPLAY OF BUTTONS
CULDESACthe questionnaire stops at that question without leaving to an external URL. The question is displayed, without a "next" button or image. If the question is part of a multi-question page, it must come last since the last question of the page determines the display of the button set.
BACKWALLat that question, the questionnaire does not display a button to go back to the previous question and does not allow to backtrack. If the question is part of a multi-question page, it must come last since the last question of the page determines the display of the button set.
UNLOCKif it is the last question of a page or if the question is on a page of its own, a "Save and close" button is added which validates the input, saves the data, releases the lock on the case and closes the window.
NOSTOPif it is the last question of a page or if the question is on a page of its own, the "Stop" button is not displayed.
NOTHERMOMETERsuspends the display of the progress bar on the current page (if located on the first question of a page for a progress bar located at the top of the page or the last one for a bar at the bottom of the page).
NOLANGUAGEsuspends the display of the language button(s) on the current page (if located on the first question of a page for a progress bar located at the top of the page or the last one for a bar at the bottom of the page).
SUBMITuses the "# Submit Text" and "# Submit Image" pound instructions for the Next Page button.
NOPRETESTdeactivates the "# Pretest" pound instructions for the question.
TYPES OF QUESTIONS
RELATIONestablishes a relational link between the current project and another project acting as a child. This question displays buttons to add children, delete them and modify them. See the section on hierarchical projects for more details.
ERASERELdefines a question that is used to probe for confirmation of deletion in hierarchical projects. See the section on hierarchical projects for more details. Such a question is automatically made BACKWALL; it is not shown in the normal flow of the questionnaire.
NEVERUPDATE(never displayed) CallWeb never updates the data base for that variable (may be useful when CallWeb is one component of a larger data base context)
STOCK(never displayed) a passive question, it does nothing but can be used to stock information via a CALCUL question; it is also used to insert "Other, specify" boxes in tables
ONLYONCEonce such a question has been answered, CallWeb refuses to change the answer provided. This stubborn behaviour is also valid for the open-end part.
AUTONEXTused as AUTONEXT=n, it moves on to the next questionnaire screen automatically after n seconds and attributes the first defined response category to the answer. Display conditions are respected. This instruction requires JavaScript on the client station.
MEMOdisplays a table of questions and answers for the list of questions comprised in the question text (in the form: Q1-Q5, Q7, Q8-Q10,...); only regular questions containing answers are displayed. Display conditions are respected.
MEMEXCLexcludes a question from being displayed by a MEMO question.
EMAIL(never displayed) the question is used by cwEmail to send invitation/notification messages to participants
VERBATIMdisplays all character open-ends in a questionnaire in a single window and allows for cleaning their content. Only open ends already containing something are displayed. A VERBATIM question is forced, during compilation, to a minimum and a maximum of zero answers. Also, such a question cannot be part of a TABLE/MATRICE pound instruction, but it can be part of a GROUP/ECRAN definition and it can bear a display condition
VBTMEXCLexcludes a question from being displayed by a VERBATIM question.
QUOTA(never displayed) the question contains instructions regarding completion quotas
INFOCATI(displayed only from the interviewer interface) used by the CallWeb's CATI environment; identifies questions whose data are displayed to the interviewer along with the next telephone number to dial. An INFOCATI field with a T type open-end part displays a dial button if the project uses a dialler.
CONTACT(displayed only from the interviewer interface) used by the CallWeb's CATI environment; identifies a single question that contains the contact script for a telephone survey. Such a question may use recalled values
DESTOP(never displayed) used in the block of questions reached by a STOP button, it branches the flow back to the question from which the STOP button was invoked.
PAGEBREAKspecifies that a page break should be inserted after this question if the questionnaire is printed. It can be used in addition to _print mode. A page break is NOT inserted within a matrix.
GOTOURL(never displayed) specifies that the flow will go to a URL found in the URL option. Details are found in a related recipe.
NOPARAGRAPHavoids placing the text of the question within an HTML paragraph bearing the QUESTION CSS style.

Questionnaire design

Question name line

The question name line uses the following syntax (all information must be supplied on a single line):

    QUESTION_NAME MIN=n MAX=n NCOLS=n SUBSET=question CODESIN=question CATEGORIES=question CORNER=(text) ONE OR MORE KEYWORDS MUST=(condition)

The question name:

  • may contain up to 64 characters;
  • must start with a letter other than A;
  • may contain letters, numbers and the underscore character.

The MIN= parameter is the minimum number of responses expected. Set at zero, it allows nonresponse to a question. The default is 1.

The MAX= parameter is the maximum number of responses expected. Set at a value greater than 1, it forces the use of check boxes rather than radio buttons. The default is 1.

Setting both MIN and MAX at zero creates a question without answer categories. CallWeb displays the question text and note, if applicable.

The NCOLS= parameter determines over how many columns the response categories will span. The overall system default is a single column list. This system default can be overridden by a questionnaire-wide default using the # N COLONNES PAR DEFAUT instruction. Finally, the question-level NCOLS parameter can override all of the defaults on a question by question basis.

The SUBSET=question parameter names the open-end part to use to reduce the list of answer categories using a substring in the code labels (see a full description).

The CODESIN=question parameter names the open-end part to use to reduce the list of answer categories using any criteria from a related data base (see a full description).

The CATEGORIES=question parameter names the open-end part to use as input to create the list of answer categories (see a full description).

The MUST=(condition) parameter specifies a logical condition under which an answer MUST be supplied to the question.

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 (e.g., [EN]).

  • See the section on Display conditions for the syntax of logical conditions.
  • The logical condition must be within parentheses (for xBase-style conditions) or braces (for Perl-style conditions).
  • This is in addition to the MIN and MAX parameters such that a question can have a minimum of zero answers (be allowed to not be answered except under circumstances defined in the MUST condition).
  • The MUST condition is applied only if the question is displayed according to its display condition.
  • The MUST condition should be specified last on the Question Name line.
  • Example of use: one can build a two-variable-side-by-side matrix of, say, importance ratings, where the last entry is an "other" with an open-end box and a rating scale. These two questions have a minimum of zero answers since some people may have no "other" answer but if a scale rating is supplied, a description must be offered in the open-end box. In this case, MUST=(Q2.GT.1) applied to Q1 would insist upon the supply of an answer to Q1 if Q2 was answered to.

The KEYWORDS can be any of the following values (logically, some can be used concurrently, others not):

AFFECTING RESPONSE CATEGORIES
ROTATIONresponse categories without a [B]locked behaviour code are presented in random order (formerly but still working: codes with values of less than 900). It can also be used with the ROTATION=Qx syntax; the permutation of the current question is then copied from the permutation of Qx (also called "parallel permutation" or "controlled permutation").
INVERSIONresponse categories without a [B]locked behaviour code are randomly inverted (formerly but still working: codes with values of less than 900). It can also be used with the INVERSION=Qx syntax; the inversion of the current question is then copied from the inversion of Qx (also called "parallel inversion" or "controlled inversion").
ALPHAresponse codes without a [B]locked behaviour code are alphabetically ordered according to the response label in the language displayed (formerly but still working: codes with values of less than 900)
DROPDOWNresponse categories are presented in a dropdown list instead of as a set of radio buttons or checkboxes
CHECKALLthis keyword automatically sets the maximum number of allowable answers to the number of non exclusive answer categories.
SCALEthis parameter tells CallWeb to display the response categories as a horizontal scale. Used alone, the scale cell widths are left to the browser to determine; used as "SCALE=nn", the scale cell widths are no less than "nn" pixels. Add a C before "nn" and the scale is centred on the page. This feature does not work in conjunction with the succinct cloning syntax.
FORCEHEADER(or FORCEENTETE) when questions are displayed in table format, this question type forces the addition of the table banner (the text of response categories) before the current question.
ONCEACROSSonly one respondent can select any given category of response (with a code less than 9000); already-selected categories are not shown in the list of possible answers.
NOTESTcancels compilation tests on response categories (useful to speed up the compilation when a question includes thousands of answer categories, it has been tested in the past and no change was made to it).
SEMANTICsplits the note field into two pieces at the last slash character and places the second piece in response categories to provide the effect of a semantic differential scale. Note: do not use note copying or response category copying in SEMANTIC questions.
NOPRINTCATdeactivates the printing of response categories in print mode (useful for very long lists of categories).
DONOTPRINTdeactivates the printing of the question in print mode.
SUGGdisplays the warning message for an insufficient number of responses only once (then allows continuing with fewer responses than required by the MIN parameter). Note: works only once a record is saved in the data base.
PERFORMING CALCULATIONS
BLANK(never displayed) the first code is attributed to the variable if the display condition is true (see also calculations)
CALCUL(never displayed) the question performs a calculation and returns the result in another (or the same) variable
RANDOM(never displayed) a random integer is attributed to the variable (see also calculations)
WEIGHTa weight is stored in the open-end part of this variable and is used in reporting frequencies in cwfreq and cwquestionnaire
AFFECTING THE DISPLAY OF BUTTONS
CULDESACthe questionnaire stops at that question without leaving to an external URL. The question is displayed, without a "next" button or image. If the question is part of a multi-question page, it must come last since the last question of the page determines the display of the button set.
BACKWALLat that question, the questionnaire does not display a button to go back to the previous question and does not allow to backtrack. If the question is part of a multi-question page, it must come last since the last question of the page determines the display of the button set.
UNLOCKif it is the last question of a page or if the question is on a page of its own, a "Save and close" button is added which validates the input, saves the data, releases the lock on the case and closes the window.
NOSTOPif it is the last question of a page or if the question is on a page of its own, the "Stop" button is not displayed.
NOTHERMOMETERsuspends the display of the progress bar on the current page (if located on the first question of a page for a progress bar located at the top of the page or the last one for a bar at the bottom of the page).
NOLANGUAGEsuspends the display of the language button(s) on the current page (if located on the first question of a page for a progress bar located at the top of the page or the last one for a bar at the bottom of the page).
SUBMITuses the "# Submit Text" and "# Submit Image" pound instructions for the Next Page button.
NOPRETESTdeactivates the "# Pretest" pound instructions for the question.
TYPES OF QUESTIONS
RELATIONestablishes a relational link between the current project and another project acting as a child. This question displays buttons to add children, delete them and modify them. See the section on hierarchical projects for more details.
ERASERELdefines a question that is used to probe for confirmation of deletion in hierarchical projects. See the section on hierarchical projects for more details. Such a question is automatically made BACKWALL; it is not shown in the normal flow of the questionnaire.
NEVERUPDATE(never displayed) CallWeb never updates the data base for that variable (may be useful when CallWeb is one component of a larger data base context)
STOCK(never displayed) a passive question, it does nothing but can be used to stock information via a CALCUL question; it is also used to insert "Other, specify" boxes in tables
ONLYONCEonce such a question has been answered, CallWeb refuses to change the answer provided. This stubborn behaviour is also valid for the open-end part.
AUTONEXTused as AUTONEXT=n, it moves on to the next questionnaire screen automatically after n seconds and attributes the first defined response category to the answer. Display conditions are respected. This instruction requires JavaScript on the client station.
MEMOdisplays a table of questions and answers for the list of questions comprised in the question text (in the form: Q1-Q5, Q7, Q8-Q10,...); only regular questions containing answers are displayed. Display conditions are respected.
MEMEXCLexcludes a question from being displayed by a MEMO question.
EMAIL(never displayed) the question is used by cwEmail to send invitation/notification messages to participants
VERBATIMdisplays all character open-ends in a questionnaire in a single window and allows for cleaning their content. Only open ends already containing something are displayed. A VERBATIM question is forced, during compilation, to a minimum and a maximum of zero answers. Also, such a question cannot be part of a TABLE/MATRICE pound instruction, but it can be part of a GROUP/ECRAN definition and it can bear a display condition
VBTMEXCLexcludes a question from being displayed by a VERBATIM question.
QUOTA(never displayed) the question contains instructions regarding completion quotas
INFOCATI(displayed only from the interviewer interface) used by the CallWeb's CATI environment; identifies questions whose data are displayed to the interviewer along with the next telephone number to dial. An INFOCATI field with a T type open-end part displays a dial button if the project uses a dialler.
CONTACT(displayed only from the interviewer interface) used by the CallWeb's CATI environment; identifies a single question that contains the contact script for a telephone survey. Such a question may use recalled values
DESTOP(never displayed) used in the block of questions reached by a STOP button, it branches the flow back to the question from which the STOP button was invoked.
PAGEBREAKspecifies that a page break should be inserted after this question if the questionnaire is printed. It can be used in addition to _print mode. A page break is NOT inserted within a matrix.
GOTOURL(never displayed) specifies that the flow will go to a URL found in the URL option. Details are found in a related recipe.
NOPARAGRAPHavoids placing the text of the question within an HTML paragraph bearing the QUESTION CSS style.