Pourquoi utiliser le gestionnaire d’expressions
L’utilisation des possibilités des conditions et INSERTANS est montrée Exemples de filtres et de test sous LimeSurvey, si le fonctionnement reste intéressant, il manque certaines possibilité que le gestionnaire d’expression va pouvoir remplir
- Pouvoir effectuer des filtres complexes avec des OU, des ET, des notions d’ordre ...
- Pouvoir effectuer des calculs complexes avec les réponses de la personne
- Pouvoir adapter totalement le texte des questions selon les réponses précédentes.
- Pouvoir rentrer des informations supplémentaires sans que le répondant ne soit informé ou puisse modifier ces informations.
Ou utiliser le gestionnaire d’expression
Selon l’endroit ou on utilise le gestionnaire d’expression, il faut utiliser les accolades ou non. Ceci est précisé à la suite.
Équation du filtre conditionnel
Le premier endroit ou le gestionnaire d’expression est visible, c’est sur les conditions qui sont maintenant "Équation du filtre conditionnel". Lorsque l’on utilise l’éditeur de condition, on voit sur la page de la question, non pas le code interne de la question mais le code donnée manuellement à la question. On peut donc utiliser directement le gestionnaire d’expression dans l’"Équation du filtre conditionnel".
L’ensemble de l’équation du filtre conditionnel, nous n’utilisons pas les accolades.
Les textes affiché au répondant
Vous pouvez utiliser le gestionnaire d’expressions directement dans es textes affichés aux répondants. Dans le texte des questions, mais aussi dans le texte d’aide ou dans les paramètres avancés (par exemple pour le remplacement de ’Autre’). Cette option est particulièrement utilisées dans la question de type équation.
Vous pouvez aussi utiliser le gestionnaire d’expressions dans les courriels envoyés à la fin du questionnaire, par exemple pour faire un récapitulatif des réponses données sans donner toutes les réponses.
Le texte n’est pas traduit en expression par défaut, pour l’utiliser il faut utiliser les accolades sur l’expression complète [1].
Les équations de validations
Les équations de validation de question ou de validation des textes permettent d’utiliser directement le gestionnaire d’expression.
L’équation de validation de question valide l’ensemble de la question, alors que l’équation de validation des textes est destinée à valider le contenu des champs textes. Les 2 paramètres supplémentaires (les indications de validations) gère ce qu’il va être affiché à l’utilisateur pour savoir ce qu’il doit saisir.
L’ensemble de l’équation du filtre conditionnel, nous n’utilisons pas les accolades.
Certains paramètres avancés
Dans d’autres paramètres avancés, il est aussi d’utiliser les paramètres avancés. Par exemple dans les textes tels Texte personnalisé pour ’Autre’ ou les préfixes et suffixes des réponses.
Mais il est aussi possible de gérer le nombre de réponses maximum, ou la somme totale d’une question multi-numérique.
Sur la plupart des paramètres, le texte n’est pas traduit en expression, il faut donc utiliser les accolades.
Les méthodes
Pour utiliser les réponses données avec le gestionnaire d’expression, il fait utiliser le code de la question.
Pour les sous questions : le code est constitué du : code de la question, un trait de soulignement, code de la sous question (ex QCODE_SQ001
).
Les codes de questions doivent être unique et être constitué des caractères alphanumérique (A-Z et 0-9) et du trait de soulignement (_).
Avec de nombreuses questions, celui-ci peut être difficile à retrouver, il existe quelques astuces pour construire ses expressions plus rapidement.
Utiliser l’éditeur WISYWIG des textes
Pour écrire des expressions complexes, il faut souvent éditeur le code source via l’éditeur wysiwif, ou passer le mode de l’éditeur HTML en popup via vos préférences personnelles ou sur les paramètres globaux de votre installation.
L’éditeur wysiwig va vous permettre d’ajouter la valeur des réponses précédentes, telles qu’elles ont étaient saisies par l’utilisateur.
L’éditeur wysiwig utilise l’ancienne méthode, toujours compatible . Cependant, vous pourrez voir comment LimeSurvey va traduire exactement la valeur dans l’aperçus de la question.
Avec l’éditeur wisywig désactivé, vous pouvez continuer à utiliser cette méthode en utilisant le popup à droite du champs de la question. C’est une méthode conseillée globalement pour éditer les questions : cela permet de gérer finement comment va se présenter la question, sans ajouter de codes supplémentaire et va vous laisser une complète latitude sur les expressions.
Utiliser l’éditeur de conditions
Lorsque vous allez utiliser l’éditeur de conditions, celui-ci va vous permettre de choisir de façon visuelle les différentes questions et réponses. L’éditeur de conditions n’utilise pas directement le gestionnaire d’expression, mais directement les code INSERTANS.
Quand vous allez visualiser la question, vous allez pouvoir voir comment LimeSurvey traduit ces conditions en expression. Vous pouvez démarrer une nouvelle expression en partant de cette base (par exemple pour remplacer de ET (and
) en OU (or
).
Attention : avant de pouvoir modifier manuellement les conditions, il faut supprimer les conditions ajouté avec l’éditeur visuel.
Valider le gestionnaire d’expressions
Attention, une erreur sur les expressions peut bloquer complètement le passage du questionnaire. Il est donc important de valider le questionnaire avant de le lancer en production.
Le fichier de logique du questionnaire va non seulement vous permettre de trouver rapidement tous les codes de questions disponibles, mais aussi de vérifier si il existe des erreurs dans vos expressions.
Le fichier de logique du questionnaire est disponible pour l’ensemble du questionnaire mais vous pouvez aussi l’utiliser sur un groupe ou sur une seule question.
Quelques exemples pratiques
Un test pour afficher madame ou monsieur en fonction d’une question de genre :
if(GENRE=="F","Madame",if(GENRE=="M","Monsieur",""))
Calculer le nombre de réponses données à une question précise :count(QCODE_SQ1,QCODE_SQ2,QCODE_SQ3,QCODE_SQ4)
Savoir si le nombre de caractère est supérieur à 5 :
if(strlen(QCODE)>5,1,0)
Savoir si 2 réponses sont les mêmes :
QCODE1.shown==QCODE2.shown