x

Principaux chapitres

  1. LimeSurvey Cloud ou LimeSurvey CE
  2. LimeSurvey Cloud - Guide de démarrage rapide
  3. LimeSurvey CE - Installation
  4. Comment concevoir une bonne enquête (Guide)
  5. Commencer
  6. Configuration de LimeSurvey
  7. Introduction - Enquêtes
  8. Afficher les paramètres de l'enquête
  9. Afficher le menu de l'enquête
  10. Afficher la structure de l'enquête
  11. Présentation - Questions
  12. Introduction - Groupes de questions
  13. Introduction - Enquêtes - Gestion
  14. Options de la barre d'outils de l'enquête
  15. Enquête multilingue
  16. Guide de démarrage rapide - ExpressionScript
  17. Fonctionnalités avancées
  18. FAQ générale
  19. Dépannage
  20. Solutions de contournement
  21. Licence
  22. Journal des changements de version
  23. Plugins - Avancé
 Actions

ExpressionScript Engine - Quick start guide/fr: Difference between revisions

From LimeSurvey Manual

Maren.fritz (talk | contribs)
Created page with "Notez que vous n’utilisez pas d’accolades lorsque vous saisissez une équation de pertinence."
Maren.fritz (talk | contribs)
Created page with "===Affichage/Modification de la pertinence au niveau du groupe==="
Line 68: Line 68:




===Viewing / Editing Group-Level Relevance===
===Affichage/Modification de la pertinence au niveau du groupe===





Revision as of 08:13, 29 August 2023


Guide de démarrage rapide

Dans LimeSurvey, vous pouvez personnaliser davantage vos enquêtes via l'utilisation d'ExpressionScript (abrégé : ES). Sidenote : "ExpressionScript était nommé Expression Manager (EM) dans la version précédente. Si vous lisez Expression Manager quelque part, il s'agit simplement de l'ancien nom d'ES."

ES peut être utilisé pour spécifier les éléments suivants :

  1. Navigation/Branching - permet aux réponses d'un répondant de modifier l'ordre dans lequel les questions sont affichées;
  2. Adaptation/Piping - vous aide à formuler la question (par exemple en faisant référence à réponses antérieures, ou conjugaison de phrases en fonction de l'âge ou du sexe de vos sujets) ou comment générer des rapports personnalisés (comme des résultats d'évaluation ou des conseils personnalisés);
  3. Validation - garantit que les réponses répondent à certains critères, comme les valeurs min et max ou un certain modèle d'entrée.

ES fournit un moyen intuitif de spécifier la logique de chacune de ces fonctionnalités. Presque tout ce que vous pouvez écrire sous forme d’équation mathématique standard est une expression valide.

ES donne actuellement accès à 70 fonctions et peut être facilement étendu pour en prendre en charge davantage. Il vous permet également d'accéder à vos variables en utilisant des noms de variables lisibles par l'homme (plutôt que des SGQA names).

Les sections suivantes montrent les principaux endroits où l'ES est utilisé.


Pertinence (Contrôle de la navigation/branchement)

Certaines enquêtes utilisent « Goto Logic », de sorte que si vous répondez à la question 1 avec l'option C, vous êtes redirigé vers la question 5. Cette approche est très limitée car difficile à valider. De plus, il se casse facilement lorsque vous devez réorganiser les questions. D'autre part, ES utilise des Équations de pertinence booléennes pour spécifier toutes les conditions dans lesquelles une question peut être valide. Si la question est pertinente, alors la question est affichée, sinon elle n'est pas applicable et la valeur « NULL » est stockée dans la base de données.

Remarque : Ceci est similaire à ce qui peut être fait via l'Conditions editor, mais ES vous permet de spécifier facilement des critères beaucoup plus complexes et puissants (et vous permet d'utiliser le nom de la variable plutôt que identifiants SGQA).




Pour mieux comprendre le concept de pertinence, concentrons-nous sur l'enquête suivante qui calcule l'indice de masse corporelle (IMC) des répondants à l'enquête. Pour le télécharger, cliquez sur le lien suivant : Exemple d'enquête sur l'indice de masse corporelle.

L'équation de pertinence est présentée ci-dessous dans la colonne Pertinence après le nom de la variable. Les valeurs de pertinence de poids, poids_unités, hauteur et hauteur_unités sont toutes 1 (valeur par défaut), ce qui signifie que ces questions sont toujours affichées. Cependant, la pertinence pour l'IMC est {!is_empty(height) et !is_empty(weight)}, ce qui signifie que l'IMC ne sera calculé que si le sujet saisit une valeur pour la taille et le poids (évitant ainsi le risque d'obtenir une erreur nulle). De plus, la question « Rapport » ne s'affiche que si le répondant répond aux quatre questions principales (taille, unités de taille, poids, unités de poids).



Fichier:help.png Remarque : L'image ci-dessus provient du fichier logique de l'enquête qui vous permet de rechercher les erreurs de syntaxe avant d'activer l'enquête.


La pertinence est affichée et modifiable lorsque :

  • vous souhaitez afficher/modifier la pertinence au niveau de la question
  • vous souhaitez afficher/modifier la pertinence au niveau du groupe


Affichage/Modification de la pertinence au niveau des questions

Cette équation calcule l'indice de masse corporelle (IMC). Il est seulement demandé si la personne indique sa taille et son poids.



Ceci est l'écran d'édition de la question « IMC ».



Notez que vous n’utilisez pas d’accolades lorsque vous saisissez une équation de pertinence.


Affichage/Modification de la pertinence au niveau du groupe

Let's focus now on another example - a simple census survey. To download it, click on the following link: Census survey example.

The first page asks how many people live with you and stores that in the "cohabs" variable. This page is only shown if you have more than one cohabitant (it is shown for the second person cohabitating with you). Also, p2name, p2age. p2sum are displayed only if the question before each of them contains a response.



So, the group also has question-level relevance criteria, such that some questions only appear if you answered certain questions before them (e.g., p2age is displayed if p2name was answered). ES combines the Group and Question-level relevance for you. Questions in a group are only asked if the group as a whole is relevant. Then, only the subset of questions within the group that are relevant are asked.

Here is the screenshot for editing the group-level relevance of Cohabitant 2:



Note that you do not use the curly braces when you enter a relevance equation.

Tailoring/Piping

ES lets you easily do simple and complex conditional tailoring. Sometimes you just need a simple substitution, like saying, "You said you purchased [Product]. What did you like best about it?". Sometimes you need conditional substitution like "[Mr./Mrs.] [LastName], would you be willing to complete our survey?". In this case, you want to use "Mr. or Mrs." based on the person's gender. Other times you need even more complex substitution (such as based upon a mathematical computation). ES supports each of these types of tailoring/piping.


Conditional Equations

The Body Mass Index example shows the ability to compute a person's BMI, even while letting them enter their height and weight in two different units (cms vs inches and kgs vs lbs):



In this case, weightkg is {if(weightunits == "kg", weight, weight * 0.453592)}. This "if()" function means that if the subject enters the weight using kilograms, use that value, otherwise multiply the entered value (pounds is the alternative) by 0.453592 to convert it to kilograms. The heightm variable uses a similar approach to compute the person's height in meters (height in cms/100), even if he has entered his height in inches (1 meter=3.28084 inches).

BMI is computed as: {weightkg / (heightm * heightm)}.

Lastly, the report conditionally tailors the message for the subject, telling her what he entered. (e.g., "You said you are 2 meters tall and weight 70 kg.")

In the below image, weightstatus uses nested "if()" statements to categorize the person as underweight to severely obese. You can see its equation by checking its logic:



From the edit window for this question, you can see two things:

  1. Tailoring must surround expressions with curly braces
  2. Expressions can span multiple lines if, as in this case, you want to make it easier to read the nested conditional logic.



Tailored Questions, Answers, and Reports

Note: Dynamic tailoring may not work if answer options are made available in select boxes on the same question page. This results from the fact that tailoring inserts a <span> tag which is not valid inside select options.

The BMI report looks like this:



Here is the edit window for the same question.



Anything within curly braces is treated as an expression, being syntax-highlighted (color coded) in the prior image. If you have any typos (such as misspelled or undefined variable names or functions), ES would show an error. In our below example:

  • heightunit.shown is an undefined variable name (it is actually heightunits.shown) and
  • "rnd()" is an undefined function (the proper function name is "round()").

In both cases, the errors are located within a red box to make it easier to spot and fix them.



You can also see that you can quickly create complex reports, such as a table of entered values or tailored advice.

Please remember that all tailoring must surround expressions with curly braces so that LimeSurvey knows which parts of the question are free text and which should be parsed by the ExpressionScript engine.


Validation

ES controls how most of the advanced question options work. These control aspects like min/max numbers of answers, min/max individual values, min/max sum values, and checking that entered values match specified string patterns. Any value in one of those fields is considered an expression, so you can have min/max criteria with complex conditional relationships to other questions.

In all of these cases, since the advanced question attribute is always considered an expression, you do not use curly braces when specifying it.

The sample surveys page shows many working examples containing a variety of validation expressions.

ExpressionScript - presentation

To find out more about ExpressionScript and how you can use different expressions to enhance your survey, please click on the following link.