Conception

Questions calculées

Questions BLANK

Si le mot-clef « BLANK » apparaît sur la ligne de nom de question, alors

  • la question ne s'affiche pas à l'écran;
  • la valeur de la première catégorie de réponse est attribuée à la question;
  • le cas échéant, le questionnaire continue après avoir effectué le saut simple associé à la première catégorie de réponse.

Une question BLANK peut comporter une condition d'affichage pour attribuer une valeur conditionnellement à d'autres réponses ou pour réaliser des sauts complexes.

Sauts complexes

Un saut simple associé au premier choix de réponse d'une question BLANK est respecté. Les questions BLANK peuvent être utilisées pour faire des sauts complexes en utilisant la condition d'affichage, c.-à-d., que la logique de saut complexe est placée dans la condition d'affichage alors que la destination du saut est associée à la première catégorie de réponse.

Les sauts complexes peuvent aussi être mis en oeuvre par le biais de questions CALCUL (voir le prochain paragraphe). Dans ce cas, un calcul est effectué; il retourne une valeur dans la même question (par exemple, mais ce n'est pas nécessaire, en autant qu'il existe une valeur dans la question CALCUL pour contrôler le saut); et les catégories de réponses sont associées à un saut simple. Par exemple, en utilisant une variable de contexte, le code suivant vérifie l'heure et ajuste de flot du questionnaire en conséquence :

    REDIRECT CALCUL
    % Texte
    REDIRECT = ( $contexte{heure} < 120000 ) ? 1 : 2
    % Catégories
    *1*AM
    *2*PM
    % Sauts simples
    1 = ~Q_AM
    2 = ~Q_PM
    % Condition
    % Ouverte
    ! ===================================================<

Questions CALCUL

Si le mot-clef « CALCUL » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le texte de la question se conforme à la syntaxe suivante :

    variable_de_sortie = expression_perl

Cet énoncé retourne le résultat de l'évaluation de « expression_perl » dans « variable_de_sortie ». L'« expression_perl » doit respecter la syntaxe Perl et les noms de questions doivent être précédés d'un signe de dollar ($). Référez-vous au questionnaire de l'ÉchantiCalc du Réseau Circum; il fournit plusieurs exemples de calculs.

Quelques fonctions spéciales peuvent être utilisées dans une question CALCUL pour prendre en charge des besoins spécifiques aux sondages. On retrouve entre autres les suivantes :

add_call_cetappelcette fonction est utilisée pour ajouter une entrée dans l'historique d'appel pour comptabiliser un questionnaire complété sur le Web. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
add_to_dateutilisée pour ajouter ou retrancher du temps d'une valeur date-heure. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
calc_graphutilisée comme calc_graph(field => Q1), cette fonction produit un graphe des données de Q1 et l'insère là où la fonction est appelée. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
combine_into_multipleutilisée comme Q5 = combine_into_multiple($Q1, $Q2, ...), cette fonction combine les réponses de différentes questions fermées (simples ou multiples) en une seule valeur multiple. La valeur retournée ne contient pas de doublons.
decouvrir (ou uncover)utilisée comme ACHAINE = decouvrir("chaîne"), cette fonction retourne la version décodée de la chaîne encodée par la fonction obscurcir.
dernier_accesutilisée comme Q2=dernier_acces("argument"), cette fonction retourne de l'information sur le dernier accès au dossier. Arguments : « date » retourne les 8 chiffres de la date (AAAAMMJJ); « heure » retourne les 6 chiffres de l'heure (HHMMSS); « dateheure » retourne les 14 chiffres de la valeur date-heure (AAAAMMJJHHMMSS).
emailutilisée comme AWHEN_EMAIL_SENT=email("blabla\@domain.com",$AEMAIL_ADDRESS,"EMAIL_ENGLISH"), cette fonction envoie un courriel à AEMAIL_ADDRESS sur la base du texte contenu dans EMAIL_ENGLISH et place la date et l'heure de l'envoi dans AWHEN_EMAIL_SENT. Arguments additionnels, en ordre : le nombre maximum de caractères des lignes de la portion texte du message (65 par défaut), une adresse d'envoi de copie conforme, une adresse d'envoi de copie cachée et une adresse de courriel à placer dans le champ sender.
ferme_le_navigateurutilisée comme ""=ferme_le_navigateur(), cette fonction produit le code JavaScript requis pour fermer la fenêtre du navigateur.
indexpositionutilisée comme Q2=indexposition(nombre,nombre,nombre,...), cette fonction retourne la position du Nième plus grand nombre où N est le premier nombre fourni. Le plus grand chiffre est en position 1. Donc, indexposition(2,1,3,5,5,7,9) retourne 5 parce que 7 est le second plus grand nombre et qu'il est en 5ième position.
maxutilisée comme Qx=max(nombre,nombre,nombre,...), cette fonction retourne le plus grande nombre.
minutilisée comme Qx=min(nombre,nombre,nombre,...), cette fonction retourne le plus petit nombre.
n_appelsutilisée comme AQ=n_appels(), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier; utilisée comme AQ=n_appels("Code1","Code2"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui comportent le code de fin d'appel Code1 ou Code2; utilisée comme AQ=n_appels("Code*","Nocode"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui affichent un code de disposition qui commence par Code ou un code Nocode. Il peut y avoir plusieurs arguments de ce type.
n_dossiersutilisée comme Q2=n_dossiers("CONDITION","PROJET"), cette fonction retourne le nombre de dossiers correspondant à la condition (en syntaxe MySQL, sans mot-clef WHERE) dans le projet mentionné. Si le nom du projet est absent, le projet courant est utilisé.
n_selectionsutilisée comme Q2=n_selections($Q1,1,2,3,4), cette fonction retourne le nombre de réponses dans Q1 parmi une liste de réponses valides données à la suite.
n_suchutilisée comme NSELECT1=n_such(1,4,9,"Q1-Q10"), cette fonction retourne le nombre de réponses égalent à 1, 4 ou 9 parmi les réponses données aux questions Q1 à Q10.
obscurcir (ou cover)utilisée comme ACHAINE = obscurcir("chaîne"), cette fonction retourne une version chiffrée de la chaîne qui peut ensuite être décodée avec la fonction decouvrir. Cette fonction utilise un algorithme simple de chiffrement qui retourne des caractères ASCII imprimables.
positionsutilisée comme POS = positions(nombre,nombre,nombre,...), cette fonction retourne les positions du premier nombre de la liste constituée des nombres qui suivent le premier nombre; les positions sont délimitées par le délimiteur des questions à réponses multiples. Donc, positions(5,1,3,5,5,7,9) retourne 3µ4.
pull_valueutilisée comme AQX = pull_value(MOTCLEF,QUESTION,PROJET,CONDITION), cette fonction extrait les valeurs trouvées dans la question QUESTION du projet PROJET dans les dossiers qui correspondent à la condition MySQL CONDITION. La fonction retourne une liste de valeurs délimitées par des caractères mu. Le MOTCLEF peut être « TOUT » ou « UNIQUE » pour retourner toutes les valeurs, même les doublons ou les valeurs uniques. Les valeurs sont retournées sans ordre particulier. Exemple : AQX = pull_value("TOUT","maquestion","monprojet","RESERVE <> 1") place une liste des valeurs de « maquestion » de « monproject » où REVERVE est différent de 1 dans AQX dans le projet courant.
push_valueutilisée comme AQX = push_value(VALEUR,QUESTION,PROJET,CONDITION,LIMITE), cette fonction place VALEUR dans le champ QUESTION du projet PROJET dans l'unique dossier de ce projet qui correspond à la CONDITION (exprimée en syntaxe MySQL). La fonction retourne le _telkey du dossier qui a été modifié (dans AQX dans notre exemple). Si quelque chose cloche, la fonction retourne une chaîne vide plutôt qu'un _telkey valide. Si plus d'un dossier de PROJET correspond à la CONDITION, la fonction retourne aussi une chaîne vide... à moins que LIMITE ne soit 1 auquel cas la fonction sélectionne aléatoirement un des _telkeys qui correspond à la CONDITION. Exemple : AQX = push_value("1","RESERVE","monprojet","RESERVE <> 1",1). Ceci place un 1 dans la question RESERVE de monprojet dans un dossier choisi aléatoirement parmi les dossiers de monprojet où RESERVE ne contient pas 1 et retourne la valeur du _telkey modifié dans AQX.
put_values_in_caseutilisée comme AQX = put_values_in_case(clef=>valeur, clef=>valeur, ...), cette fonction place des valeurs dans des champs d'un enregistrement particulier d'un certain projet. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
random_integerutilisée comme AQX = random_integer(n), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1.
random_integer2utilisée comme QX = random_integer2(n,"QX"), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1. La sélection d'un entier aléatoire est faite parmi les entiers possibles qui ont été choisis le moins souvent dans QX au moment d'appeler cette fonction. Par exemple, cherchant un entier aléatoire entre 1 et 3, si 1 a été choisi deux fois et 2 et 3 une seule fois, 2 ou 3 sera choisi aléatoirement. Ceci assure une distribution plate de tous les entiers entre 1 et n à terme. Pour utiliser une distribution autre que plate, on peut demander un entier aléatoire entre 1 et 100 et agir en fonction de parts de 100 (p.ex., sauter la question suivante si l'entier aléatoire est moins que 51).
random_subsetutilisée comme COMBO = random_subset($MULTIQ,n), cette fonction retourne une sélection aléatoire de « n » réponses parmi les réponses fournies à la question multiple « MULTIQ ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
recodeutilisée comme Q4RECODE = recode("Q4","Q4RECODE","1,2,3=1","4-6=2","ELSE=3"), cette fonction retourne la valeur codée de Q4 (une question fermée) dans Q4RECODE en utilisant les règles qui suivent le second argument de la fonction. (Toujours dans le même exemple) Si on peut donner plus d'une réponse à Q4 (question à réponses multiples). recode retourne autant de valeurs recodées que possible; autrement, Q4RECODE contient la première catégorie interceptée par les règles. Par exemple, si Q4 contient les réponses 1, 2 et 5, recode retourne 1 et 2 si Q4RECODE est une question à réponses multiples et seulement 1 si elle est une question à réponse unique. Les règles qui suivraient la clause « ELSE » ne seraient jamais testées.
record_wavutilisée comme ANOMFICHIER = record_wav("start") ou PROCESSUS = record_wav("stop"), cette fonction démarre ou arrête l'enregistrement du flux reçu par le microphone de l'ordinateur. Ceci est utilisé en entrevue en face-à-face. Plus d'information dans le livre de recettes.
residualutilisée comme Q3C=residual($Q2,$Q3A,$Q3B,...), cette fonction retourne les réponses de Q2 desquelles on a éliminé les réponses de Q3A et Q3B (il peut y avoir n'importe quel nombre d'argument); cette fonction a été développée pour identifier la troisième sélection dans Q2 (une question permettant trois sélections) une fois que la sélection principale (dans Q3A) et la seconde sélection (dans Q3B) sont exclues.
sauf_codesutilisée comme Q1B = sauf_codes($Q1,1,2,3), cette fonction retourne une réponse multiréponse de laquelle les codes listés (ici, 1, 2 et 3) sont retirés.
select_random_combinationutilisée comme COMBO = select_random_combination(parmi,nombre,exclusif,autre_combinaison,autre_combinaison,...), cette fonction retourne une combinaison de « nombre » d'entiers entre 1 et « parmi ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
shuffle_code_labelsutilisée comme AQy = shuffle_code_labels("Qx","[FR], [EN], ","[FR] et[EN] and"), cette fonction retourne une liste du texte de toutes les catégories de réponse de Qx, dans un ordre aléatoire, séparée par le second argument; le troisième argument fournit le lien entre l'avant-dernière et la dernière catégorie de réponse (typiquement « et », mais ce pourrait être « ou » ou alors une virgule, par exemple). Les substitutions et les conditions d'affichage sont respectées..
straightlinedutilisée comme BINAIRE=straightlined("Q1-Q10","QFLAG"), elle retourne un 1 si toutes les réponses de Q1 à Q10 sont les mêmes (straightlining). QFLAG est un nom de question optionnel; s'il est présent, deux choses se passent : d'abord, un 1 est stocké dans ce champ si le test échoue; ensuite, le test n'est pas fait s'il y a déjà un 1 dans ce champ. Voir le livre de recettes CallWeb pour plus d'information.
substituesubstitue("&Q1") or substitue("&@Q1") or substitue("&&AQ1") est une chaîne de texte produite par les fonctions de rappel
test_email_addressutilisée comme AQX = test_email_address(adresse courriel), cette fonction vérifie si une adresse de courriel est correcte. Voir la recette associée. Assurez-vous de donner à l'option d'installation test_email_address_hostname le nom d'un sous-domaine qui résoud à l'adresse IP du serveur utilisé pour faire le test.
time_betweenutilisée comme AQX = time_between($ATEMPS1,$ATEMPS2,"unité"), cette fonction retourne le nombre d'unités de temps entre les deux premières valeurs; les choix d'unités sont SECONDES, MINUTES, HEURES et JOURS. Les valeurs de temps sont représentées comme AAAAMMJJ au moins; on peut ajouter les heures (HH), les minutes (MM) et les secondes (SS) — les valeurs de temps sont en fait allongées à 14 caractères en ajoutant autant de zéros que nécessaire à droite de la valeur.

BOUTON CALCULE

Il est parfois utile de faire un calcul mathématique sur une page, comme faire le total d'une série de réponses numériques et afficher le résultat. On peut faire cela en ajoutant un bouton à la page; ce bouton fera les opérations programmées dans une question CALCUL et réaffichera la même page, où un rappel de valeurs pourrait afficher les nouvelles informations.

Syntaxe de BOUTON CALCULE :

<COMPUTE BUTTON>QUESTION_CALCUL, texte</COMPUTE BUTTON>
ou
<BOUTON CALCULE>QUESTION_CALCUL, texte</BOUTON CALCULE>

QUESTION_CALCUL est le nom de la question CALCUL déclenchée par le bouton. Le texte qui suit QUESTION_CALCUL et une virgule est affiché sur le bouton. Si le texte est le nom d'un fichier (d'image), cette image est utilisée pour afficher le bouton. Dans ce cas, un troisième segment peut comporter le texte ALT de l'image. Une quatrième portion, toujours délimitée par une virgule, peut contenir le mot-clef NOTEST pour s'assurer que le calcul sous le bouton soit effectué même si les données sur la page ne se conforment pas aux tests normaux de validation.

Par exemple, le code suivant :

    Q3 MIN=0 MAX=1
    % question
    [EN]How many people from each of the following age groups live in your household, including you who have already indicated being over 17?
    [FR]Combien de personnes de chacun des groupes d'âges suivants votre ménage compte-t-il en vous incluant et compte tenu que vous avez déjà indiqué être âgé de plus de 17 ans?
    % note
    [SUFFIX:A][EN]Less than 10 years old[FR]Moins de 10 ans
    [SUFFIX:B][EN]From 11 to 17 years old[FR]De 11 à 17 ans
    [SUFFIX:C][EN]18 and more[FR]18 ans ou plus
    % catégories
    *1*=*[EN]Number of people[FR]Nombre de personnes
    % sauts
    % condition
    % ouverte
    1 = N2.0 0 10
    ! ==================================================
    Q3D MIN=0 MAX=1
    % question
    =Q3A
    % note
    [EN]<COMPUTE BUTTON>CALCQ3, cw/sumup.gif</COMPUTE BUTTON>[FR]<BOUTON CALCULE>CALCQ3, Additionner</BOUTON CALCULE>
    % catégories
    *1*NM*[EN]&&ACALCQ3[FR]&&ACALCQ3
    % sauts
    % condition
    % ouverte
    ! ==================================================
    CALCQ3 CALCUL
    % question
    ACALCQ3 = $AQ3A + $AQ3B + $AQ3C
    % note
    % catégories

    % sauts
    % condition
    % ouverte
    1 = N3.0 0 999
    ! ==================================================

affiche le tableau suivant :

 Nombre de personnes
Moins de 10 ans
De 11 à 17 ans
18 ans ou plus
(valeur rappelée de &&ACALCQ3 ici)

Note : d'autres logiciels de sondage Web utilisent JavaScript pour de telles opérations; pour être cohérent avec la philosophie de CallWeb, aucun JavaScript n'est utilisé pour programmer les BOUTON CALCULE. De plus, les opérations déclenchées par BOUTON CALCULE sont laissées au libre choix du concepteur du questionnaire (p.ex., total, somme des produits, extraction de données, manipulation de chaîne de caractères) puisqu'elles sont encapsulées dans une question CALCUL qui peut faire n'importe quelle opération et modifier plusieurs champs d'un seul coup.

La condition d'affichage de la question CALCUL déclenchée par le bouton est respectée.

Questions RANDOM

RANDT est obsolète. Veuillez utiliser la fonction random_integer décrite plus haut.

Si le mot-clef « RANDOM » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le reste de la question se conforme à l'une des syntaxes suivantes :

    RANDT(nombre,variable_de_sortie)
    RANDT(variable_d_entree,variable_de_sortie)

La fonction RANDT retourne, dans « variable_de_sortie », un entier aléatoirement choisi entre 1 et « nombre » ou la valeur de la question « variable_d_entree ».

Conception

Questions calculées

Questions BLANK

Si le mot-clef « BLANK » apparaît sur la ligne de nom de question, alors

  • la question ne s'affiche pas à l'écran;
  • la valeur de la première catégorie de réponse est attribuée à la question;
  • le cas échéant, le questionnaire continue après avoir effectué le saut simple associé à la première catégorie de réponse.

Une question BLANK peut comporter une condition d'affichage pour attribuer une valeur conditionnellement à d'autres réponses ou pour réaliser des sauts complexes.

Sauts complexes

Un saut simple associé au premier choix de réponse d'une question BLANK est respecté. Les questions BLANK peuvent être utilisées pour faire des sauts complexes en utilisant la condition d'affichage, c.-à-d., que la logique de saut complexe est placée dans la condition d'affichage alors que la destination du saut est associée à la première catégorie de réponse.

Les sauts complexes peuvent aussi être mis en oeuvre par le biais de questions CALCUL (voir le prochain paragraphe). Dans ce cas, un calcul est effectué; il retourne une valeur dans la même question (par exemple, mais ce n'est pas nécessaire, en autant qu'il existe une valeur dans la question CALCUL pour contrôler le saut); et les catégories de réponses sont associées à un saut simple. Par exemple, en utilisant une variable de contexte, le code suivant vérifie l'heure et ajuste de flot du questionnaire en conséquence :

    REDIRECT CALCUL
    % Texte
    REDIRECT = ( $contexte{heure} < 120000 ) ? 1 : 2
    % Catégories
    *1*AM
    *2*PM
    % Sauts simples
    1 = ~Q_AM
    2 = ~Q_PM
    % Condition
    % Ouverte
    ! ===================================================<

Questions CALCUL

Si le mot-clef « CALCUL » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le texte de la question se conforme à la syntaxe suivante :

    variable_de_sortie = expression_perl

Cet énoncé retourne le résultat de l'évaluation de « expression_perl » dans « variable_de_sortie ». L'« expression_perl » doit respecter la syntaxe Perl et les noms de questions doivent être précédés d'un signe de dollar ($). Référez-vous au questionnaire de l'ÉchantiCalc du Réseau Circum; il fournit plusieurs exemples de calculs.

Quelques fonctions spéciales peuvent être utilisées dans une question CALCUL pour prendre en charge des besoins spécifiques aux sondages. On retrouve entre autres les suivantes :

add_call_cetappelcette fonction est utilisée pour ajouter une entrée dans l'historique d'appel pour comptabiliser un questionnaire complété sur le Web. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
add_to_dateutilisée pour ajouter ou retrancher du temps d'une valeur date-heure. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
calc_graphutilisée comme calc_graph(field => Q1), cette fonction produit un graphe des données de Q1 et l'insère là où la fonction est appelée. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
combine_into_multipleutilisée comme Q5 = combine_into_multiple($Q1, $Q2, ...), cette fonction combine les réponses de différentes questions fermées (simples ou multiples) en une seule valeur multiple. La valeur retournée ne contient pas de doublons.
decouvrir (ou uncover)utilisée comme ACHAINE = decouvrir("chaîne"), cette fonction retourne la version décodée de la chaîne encodée par la fonction obscurcir.
dernier_accesutilisée comme Q2=dernier_acces("argument"), cette fonction retourne de l'information sur le dernier accès au dossier. Arguments : « date » retourne les 8 chiffres de la date (AAAAMMJJ); « heure » retourne les 6 chiffres de l'heure (HHMMSS); « dateheure » retourne les 14 chiffres de la valeur date-heure (AAAAMMJJHHMMSS).
emailutilisée comme AWHEN_EMAIL_SENT=email("blabla\@domain.com",$AEMAIL_ADDRESS,"EMAIL_ENGLISH"), cette fonction envoie un courriel à AEMAIL_ADDRESS sur la base du texte contenu dans EMAIL_ENGLISH et place la date et l'heure de l'envoi dans AWHEN_EMAIL_SENT. Arguments additionnels, en ordre : le nombre maximum de caractères des lignes de la portion texte du message (65 par défaut), une adresse d'envoi de copie conforme, une adresse d'envoi de copie cachée et une adresse de courriel à placer dans le champ sender.
ferme_le_navigateurutilisée comme ""=ferme_le_navigateur(), cette fonction produit le code JavaScript requis pour fermer la fenêtre du navigateur.
indexpositionutilisée comme Q2=indexposition(nombre,nombre,nombre,...), cette fonction retourne la position du Nième plus grand nombre où N est le premier nombre fourni. Le plus grand chiffre est en position 1. Donc, indexposition(2,1,3,5,5,7,9) retourne 5 parce que 7 est le second plus grand nombre et qu'il est en 5ième position.
maxutilisée comme Qx=max(nombre,nombre,nombre,...), cette fonction retourne le plus grande nombre.
minutilisée comme Qx=min(nombre,nombre,nombre,...), cette fonction retourne le plus petit nombre.
n_appelsutilisée comme AQ=n_appels(), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier; utilisée comme AQ=n_appels("Code1","Code2"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui comportent le code de fin d'appel Code1 ou Code2; utilisée comme AQ=n_appels("Code*","Nocode"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui affichent un code de disposition qui commence par Code ou un code Nocode. Il peut y avoir plusieurs arguments de ce type.
n_dossiersutilisée comme Q2=n_dossiers("CONDITION","PROJET"), cette fonction retourne le nombre de dossiers correspondant à la condition (en syntaxe MySQL, sans mot-clef WHERE) dans le projet mentionné. Si le nom du projet est absent, le projet courant est utilisé.
n_selectionsutilisée comme Q2=n_selections($Q1,1,2,3,4), cette fonction retourne le nombre de réponses dans Q1 parmi une liste de réponses valides données à la suite.
n_suchutilisée comme NSELECT1=n_such(1,4,9,"Q1-Q10"), cette fonction retourne le nombre de réponses égalent à 1, 4 ou 9 parmi les réponses données aux questions Q1 à Q10.
obscurcir (ou cover)utilisée comme ACHAINE = obscurcir("chaîne"), cette fonction retourne une version chiffrée de la chaîne qui peut ensuite être décodée avec la fonction decouvrir. Cette fonction utilise un algorithme simple de chiffrement qui retourne des caractères ASCII imprimables.
positionsutilisée comme POS = positions(nombre,nombre,nombre,...), cette fonction retourne les positions du premier nombre de la liste constituée des nombres qui suivent le premier nombre; les positions sont délimitées par le délimiteur des questions à réponses multiples. Donc, positions(5,1,3,5,5,7,9) retourne 3µ4.
pull_valueutilisée comme AQX = pull_value(MOTCLEF,QUESTION,PROJET,CONDITION), cette fonction extrait les valeurs trouvées dans la question QUESTION du projet PROJET dans les dossiers qui correspondent à la condition MySQL CONDITION. La fonction retourne une liste de valeurs délimitées par des caractères mu. Le MOTCLEF peut être « TOUT » ou « UNIQUE » pour retourner toutes les valeurs, même les doublons ou les valeurs uniques. Les valeurs sont retournées sans ordre particulier. Exemple : AQX = pull_value("TOUT","maquestion","monprojet","RESERVE <> 1") place une liste des valeurs de « maquestion » de « monproject » où REVERVE est différent de 1 dans AQX dans le projet courant.
push_valueutilisée comme AQX = push_value(VALEUR,QUESTION,PROJET,CONDITION,LIMITE), cette fonction place VALEUR dans le champ QUESTION du projet PROJET dans l'unique dossier de ce projet qui correspond à la CONDITION (exprimée en syntaxe MySQL). La fonction retourne le _telkey du dossier qui a été modifié (dans AQX dans notre exemple). Si quelque chose cloche, la fonction retourne une chaîne vide plutôt qu'un _telkey valide. Si plus d'un dossier de PROJET correspond à la CONDITION, la fonction retourne aussi une chaîne vide... à moins que LIMITE ne soit 1 auquel cas la fonction sélectionne aléatoirement un des _telkeys qui correspond à la CONDITION. Exemple : AQX = push_value("1","RESERVE","monprojet","RESERVE <> 1",1). Ceci place un 1 dans la question RESERVE de monprojet dans un dossier choisi aléatoirement parmi les dossiers de monprojet où RESERVE ne contient pas 1 et retourne la valeur du _telkey modifié dans AQX.
put_values_in_caseutilisée comme AQX = put_values_in_case(clef=>valeur, clef=>valeur, ...), cette fonction place des valeurs dans des champs d'un enregistrement particulier d'un certain projet. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
random_integerutilisée comme AQX = random_integer(n), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1.
random_integer2utilisée comme QX = random_integer2(n,"QX"), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1. La sélection d'un entier aléatoire est faite parmi les entiers possibles qui ont été choisis le moins souvent dans QX au moment d'appeler cette fonction. Par exemple, cherchant un entier aléatoire entre 1 et 3, si 1 a été choisi deux fois et 2 et 3 une seule fois, 2 ou 3 sera choisi aléatoirement. Ceci assure une distribution plate de tous les entiers entre 1 et n à terme. Pour utiliser une distribution autre que plate, on peut demander un entier aléatoire entre 1 et 100 et agir en fonction de parts de 100 (p.ex., sauter la question suivante si l'entier aléatoire est moins que 51).
random_subsetutilisée comme COMBO = random_subset($MULTIQ,n), cette fonction retourne une sélection aléatoire de « n » réponses parmi les réponses fournies à la question multiple « MULTIQ ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
recodeutilisée comme Q4RECODE = recode("Q4","Q4RECODE","1,2,3=1","4-6=2","ELSE=3"), cette fonction retourne la valeur codée de Q4 (une question fermée) dans Q4RECODE en utilisant les règles qui suivent le second argument de la fonction. (Toujours dans le même exemple) Si on peut donner plus d'une réponse à Q4 (question à réponses multiples). recode retourne autant de valeurs recodées que possible; autrement, Q4RECODE contient la première catégorie interceptée par les règles. Par exemple, si Q4 contient les réponses 1, 2 et 5, recode retourne 1 et 2 si Q4RECODE est une question à réponses multiples et seulement 1 si elle est une question à réponse unique. Les règles qui suivraient la clause « ELSE » ne seraient jamais testées.
record_wavutilisée comme ANOMFICHIER = record_wav("start") ou PROCESSUS = record_wav("stop"), cette fonction démarre ou arrête l'enregistrement du flux reçu par le microphone de l'ordinateur. Ceci est utilisé en entrevue en face-à-face. Plus d'information dans le livre de recettes.
residualutilisée comme Q3C=residual($Q2,$Q3A,$Q3B,...), cette fonction retourne les réponses de Q2 desquelles on a éliminé les réponses de Q3A et Q3B (il peut y avoir n'importe quel nombre d'argument); cette fonction a été développée pour identifier la troisième sélection dans Q2 (une question permettant trois sélections) une fois que la sélection principale (dans Q3A) et la seconde sélection (dans Q3B) sont exclues.
sauf_codesutilisée comme Q1B = sauf_codes($Q1,1,2,3), cette fonction retourne une réponse multiréponse de laquelle les codes listés (ici, 1, 2 et 3) sont retirés.
select_random_combinationutilisée comme COMBO = select_random_combination(parmi,nombre,exclusif,autre_combinaison,autre_combinaison,...), cette fonction retourne une combinaison de « nombre » d'entiers entre 1 et « parmi ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
shuffle_code_labelsutilisée comme AQy = shuffle_code_labels("Qx","[FR], [EN], ","[FR] et[EN] and"), cette fonction retourne une liste du texte de toutes les catégories de réponse de Qx, dans un ordre aléatoire, séparée par le second argument; le troisième argument fournit le lien entre l'avant-dernière et la dernière catégorie de réponse (typiquement « et », mais ce pourrait être « ou » ou alors une virgule, par exemple). Les substitutions et les conditions d'affichage sont respectées..
straightlinedutilisée comme BINAIRE=straightlined("Q1-Q10","QFLAG"), elle retourne un 1 si toutes les réponses de Q1 à Q10 sont les mêmes (straightlining). QFLAG est un nom de question optionnel; s'il est présent, deux choses se passent : d'abord, un 1 est stocké dans ce champ si le test échoue; ensuite, le test n'est pas fait s'il y a déjà un 1 dans ce champ. Voir le livre de recettes CallWeb pour plus d'information.
substituesubstitue("&Q1") or substitue("&@Q1") or substitue("&&AQ1") est une chaîne de texte produite par les fonctions de rappel
test_email_addressutilisée comme AQX = test_email_address(adresse courriel), cette fonction vérifie si une adresse de courriel est correcte. Voir la recette associée. Assurez-vous de donner à l'option d'installation test_email_address_hostname le nom d'un sous-domaine qui résoud à l'adresse IP du serveur utilisé pour faire le test.
time_betweenutilisée comme AQX = time_between($ATEMPS1,$ATEMPS2,"unité"), cette fonction retourne le nombre d'unités de temps entre les deux premières valeurs; les choix d'unités sont SECONDES, MINUTES, HEURES et JOURS. Les valeurs de temps sont représentées comme AAAAMMJJ au moins; on peut ajouter les heures (HH), les minutes (MM) et les secondes (SS) — les valeurs de temps sont en fait allongées à 14 caractères en ajoutant autant de zéros que nécessaire à droite de la valeur.

BOUTON CALCULE

Il est parfois utile de faire un calcul mathématique sur une page, comme faire le total d'une série de réponses numériques et afficher le résultat. On peut faire cela en ajoutant un bouton à la page; ce bouton fera les opérations programmées dans une question CALCUL et réaffichera la même page, où un rappel de valeurs pourrait afficher les nouvelles informations.

Syntaxe de BOUTON CALCULE :

<COMPUTE BUTTON>QUESTION_CALCUL, texte</COMPUTE BUTTON>
ou
<BOUTON CALCULE>QUESTION_CALCUL, texte</BOUTON CALCULE>

QUESTION_CALCUL est le nom de la question CALCUL déclenchée par le bouton. Le texte qui suit QUESTION_CALCUL et une virgule est affiché sur le bouton. Si le texte est le nom d'un fichier (d'image), cette image est utilisée pour afficher le bouton. Dans ce cas, un troisième segment peut comporter le texte ALT de l'image. Une quatrième portion, toujours délimitée par une virgule, peut contenir le mot-clef NOTEST pour s'assurer que le calcul sous le bouton soit effectué même si les données sur la page ne se conforment pas aux tests normaux de validation.

Par exemple, le code suivant :

    Q3 MIN=0 MAX=1
    % question
    [EN]How many people from each of the following age groups live in your household, including you who have already indicated being over 17?
    [FR]Combien de personnes de chacun des groupes d'âges suivants votre ménage compte-t-il en vous incluant et compte tenu que vous avez déjà indiqué être âgé de plus de 17 ans?
    % note
    [SUFFIX:A][EN]Less than 10 years old[FR]Moins de 10 ans
    [SUFFIX:B][EN]From 11 to 17 years old[FR]De 11 à 17 ans
    [SUFFIX:C][EN]18 and more[FR]18 ans ou plus
    % catégories
    *1*=*[EN]Number of people[FR]Nombre de personnes
    % sauts
    % condition
    % ouverte
    1 = N2.0 0 10
    ! ==================================================
    Q3D MIN=0 MAX=1
    % question
    =Q3A
    % note
    [EN]<COMPUTE BUTTON>CALCQ3, cw/sumup.gif</COMPUTE BUTTON>[FR]<BOUTON CALCULE>CALCQ3, Additionner</BOUTON CALCULE>
    % catégories
    *1*NM*[EN]&&ACALCQ3[FR]&&ACALCQ3
    % sauts
    % condition
    % ouverte
    ! ==================================================
    CALCQ3 CALCUL
    % question
    ACALCQ3 = $AQ3A + $AQ3B + $AQ3C
    % note
    % catégories

    % sauts
    % condition
    % ouverte
    1 = N3.0 0 999
    ! ==================================================

affiche le tableau suivant :

 Nombre de personnes
Moins de 10 ans
De 11 à 17 ans
18 ans ou plus
(valeur rappelée de &&ACALCQ3 ici)

Note : d'autres logiciels de sondage Web utilisent JavaScript pour de telles opérations; pour être cohérent avec la philosophie de CallWeb, aucun JavaScript n'est utilisé pour programmer les BOUTON CALCULE. De plus, les opérations déclenchées par BOUTON CALCULE sont laissées au libre choix du concepteur du questionnaire (p.ex., total, somme des produits, extraction de données, manipulation de chaîne de caractères) puisqu'elles sont encapsulées dans une question CALCUL qui peut faire n'importe quelle opération et modifier plusieurs champs d'un seul coup.

La condition d'affichage de la question CALCUL déclenchée par le bouton est respectée.

Questions RANDOM

RANDT est obsolète. Veuillez utiliser la fonction random_integer décrite plus haut.

Si le mot-clef « RANDOM » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le reste de la question se conforme à l'une des syntaxes suivantes :

    RANDT(nombre,variable_de_sortie)
    RANDT(variable_d_entree,variable_de_sortie)

La fonction RANDT retourne, dans « variable_de_sortie », un entier aléatoirement choisi entre 1 et « nombre » ou la valeur de la question « variable_d_entree ».