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 "Moteur ExpressionScript - Guide de démarrage rapide"
 
Maren.fritz (talk | contribs)
Created page with "Pour en savoir plus sur ExpressionScript et sur la façon dont vous pouvez utiliser différentes expressions pour améliorer votre enquête, veuillez cliquer sur le lien suiva..."
 
(41 intermediate revisions by the same user not shown)
Line 3: Line 3:




=Quick start guide=
=Guide de démarrage rapide=




Within [https://www.limesurvey.org LimeSurvey], you can further customize your surveys via the usage of the ExpressionScript (short: ES).
Dans [https://www.limesurvey.org LimeSurvey], vous pouvez personnaliser davantage vos enquêtes via l'utilisation d'ExpressionScript (abrégé : ES).
Sidenote: "ExpressionScript was named Expression Manager (EM) in earlier version. If you read Expression Manager somewhere, it is just the old name of 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 can be used to specify the following:
ES peut être utilisé pour spécifier les éléments suivants :


# '''Navigation/Branching''' - allows a respondent's answers to change the order in which the questions are displayed;
# '''Navigation/Branching''' - permet aux réponses d'un répondant de modifier l'ordre dans lequel les questions sont affichées;
# '''Tailoring/Piping''' - helps you phrase the question (such as referring to prior answers, or conjugating sentences based upon the age or gender of your subjects) or how to generate custom reports (like assessment scores or tailored advice);
# '''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);
# '''Validation''' - ensures that answers pass certain criteria, like min and max values or a certain input pattern.
# '''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 provides an intuitive way to specify the logic for each of those features. Nearly anything that you can write as a standard mathematical equation is a valid expression.  
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 currently provides access to 70 functions and it can be easily extended to support more. It also lets you access you
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 using human-readable variable names (rather than [[SGQA_identifier|SGQA names]]).
variables en utilisant des noms de variables lisibles par l'homme (plutôt que des [[SGQA_identifier|SGQA names]]).


The upcoming sections show the main places where the ES is used.
Les sections suivantes montrent les principaux endroits où l'ES est utilisé.




==Relevance (Controlling Navigation/Branching)==
==Pertinence (Contrôle de la navigation/branchement)==




Some surveys use "Goto Logic", such that if you answer Question1 with option C, you are redirected to Question5. This approach is very limited since it is hard to validate it. Moreover, it easily breaks when you have to reorder questions. On the other hand, ES uses [https://en.wikipedia.org/wiki/Boolean_algebra Boolean relevance equations] to specify all the conditions under which a question might be valid. If the question is relevant, then the question is shown, otherwise, it is not applicable, and the value "NULL" is stored in the database.  
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 [https://en.wikipedia.org/wiki/Boolean_algebra É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.  


<div class='simplebox'> '''Note:''' This is similar to what can be done via the [[Setting conditions|Conditions editor]], but ES lets you easily specify much more complex and powerful criteria (and lets you use the variable name rather than SGQA identifiers).</div>
<div class='simplebox'>'''Remarque :''' Ceci est similaire à ce qui peut être fait via l'[[Setting conditions|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).</div>




Line 34: Line 34:




To better understand the relevance concept, let's focus on the following survey which computes the Body Mass Index (BMI) of survey respondents. To download it, click on the following link: [[Media:LS3_em_tailoring.zip|Body Mass Index survey example]].
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 : [[Media:LS3_em_tailoring.zip|Exemple d'enquête sur l'indice de masse corporelle]].


The relevance equation is shown below in the '''Relevance''' column after the variable name. The relevance values of weight, weight_units, height, and height_units are all 1 (default value), meaning that those questions are always displayed. However, the relevance for BMI is {!is_empty(height) and !is_empty(weight)}, which means that BMI will only be computed if the subject enters a value for both height and weight (thereby avoiding the risk of getting a zero error). Also, question "Report" is only shown if the respondent answers all four main questions (height, heightunits, weight, weightunits).
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).




Line 42: Line 42:




<div class="simplebox"> [[File:help.png]] '''Note:''' The above image comes from the [[Show logic file|survey logic file]] which allows you to look for syntax errors before activating the survey.</div>
<div class="simplebox">[[Fichier:help.png]] '''Remarque :''' L'image ci-dessus provient du [[Afficher le fichier logique|fichier logique de l'enquête]] qui vous permet de rechercher les erreurs de syntaxe avant d'activer l'enquête.</div>




Relevance is shown and editable when:
La pertinence est affichée et modifiable lorsque :
*you wish to view/edit question-level relevance
*vous souhaitez afficher/modifier la pertinence au niveau de la question
*you wish to view/edit group-level relevance
*vous souhaitez afficher/modifier la pertinence au niveau du groupe




===Viewing / Editing Question-Level Relevance===
===Affichage/Modification de la pertinence au niveau des questions===




This equation computes the Body Mass Index (BMI). It is only asked if the person enters their height and weight.
Cette équation calcule l'indice de masse corporelle (IMC). Il est seulement demandé si la personne indique sa taille et son poids.




Line 59: Line 59:




This is the edit screen for the "BMI" question.
Ceci est l'écran d'édition de la question « IMC ».




Line 65: Line 65:




Note that you do not use the curly braces when you enter a relevance equation.
Notez que vous n’utilisez pas d’accolades lorsque vous saisissez une équation de pertinence.




===Viewing / Editing Group-Level Relevance===
===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: [[Media:LS3_group_relevance.zip|Census survey example]].  
Concentrons-nous maintenant sur un autre exemple : une simple enquête de recensement. Pour le télécharger, cliquez sur le lien suivant : [[Media:LS3_group_relevance.zip|Exemple d'enquête de recensement]].  


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.
La première page demande combien de personnes vivent avec vous et stocke cela dans la variable "cohabs". Cette page ne s'affiche que si vous avez plus d'un cohabitant (elle s'affiche pour la deuxième personne cohabitant avec vous). Aussi, p2name, p2age. p2sum ne sont affichés que si la question précédant chacune d'elles contient une réponse.




Line 79: Line 79:




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.'''
Ainsi, le groupe a également des critères de pertinence au niveau des questions, de sorte que certaines questions n'apparaissent que si vous avez répondu à certaines questions avant elles (par exemple, p2age est affiché si p2name a reçu une réponse). ES combine la pertinence au niveau du groupe et de la question pour vous. '''Les questions en groupe ne sont posées que si le groupe dans son ensemble est pertinent. Ensuite, seul le sous-ensemble de questions pertinentes au sein du groupe est posé.


Here is the screenshot for editing the group-level relevance of ''Cohabitant 2'':
Voici la capture d'écran permettant de modifier la pertinence au niveau du groupe de « Cohabitant 2 » :




Line 87: Line 87:




Note that you do not use the curly braces when you enter a relevance equation.
Notez que vous n’utilisez pas d’accolades lorsque vous saisissez une équation de pertinence.


==Tailoring/Piping==
==Confection/Piping==




ES lets you easily do simple and complex conditional tailoring. Sometimes you just need a simple substitution, like saying, "You said you purchased <nowiki>[</nowiki>Product]. What did you like best about it?". Sometimes you need conditional substitution like "<nowiki>[</nowiki>Mr./Mrs.] <nowiki>[</nowiki>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.
ES vous permet d'effectuer facilement une personnalisation conditionnelle simple et complexe. Parfois, vous avez juste besoin d'une simple substitution, comme dire : "Vous avez dit que vous avez acheté<nowiki> [</nowiki> Produit]. Qu'est-ce que vous avez le plus aimé?". Parfois, vous avez besoin d'une substitution conditionnelle comme "<nowiki> [</nowiki> Monsieur Madame.]<nowiki> [</nowiki> LastName], seriez-vous prêt à répondre à notre enquête ?". Dans ce cas, vous souhaitez utiliser "M. ou Mme." en fonction du sexe de la personne. D'autres fois, vous avez besoin d'une substitution encore plus complexe (par exemple, basée sur un calcul mathématique). ES prend en charge chacun de ces types de couture/passepoil.




===Conditional Equations===
===Équations conditionnelles===




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):
L'exemple de l'indice de masse corporelle montre la possibilité de calculer l'IMC d'une personne, tout en lui permettant de saisir sa taille et son poids dans deux unités différentes (cm contre pouces et kg contre livres) :




Line 104: Line 104:




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).
Dans ce cas, poidskg est {if(weightunits == "kg", poids, poids * 0,453592)}. Cette fonction "if()" signifie que si le sujet saisit le poids en kilogrammes, utilisez cette valeur, sinon multipliez la valeur saisie (les livres sont l'alternative) par 0,453592 pour la convertir en kilogrammes. La variable heightm utilise une approche similaire pour calculer la taille de la personne en mètres (taille en cm/100), même si elle a saisi sa taille en pouces (1 mètre = 3,28084 pouces).


BMI is computed as: {weightkg / (heightm * heightm)}.
L'IMC est calculé comme : {poidskg / (hauteurm * hauteurm)}.


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.")
Enfin, le rapport adapte le message au sujet de manière conditionnelle, en lui indiquant ce qu'il a saisi. (Par exemple : « Vous avez dit que vous mesuriez 2 mètres et pesiez 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:
Dans l'image ci-dessous, Weightstatus utilise des instructions "if()" imbriquées pour classer la personne comme souffrant d'insuffisance pondérale ou gravement obèse. Vous pouvez voir son équation en vérifiant sa logique :




Line 116: Line 116:




From the edit window for this question, you can see two things:
Dans la fenêtre d'édition de cette question, vous pouvez voir deux choses :
#Tailoring must surround expressions with curly braces
#La personnalisation doit entourer les expressions d'accolades
#Expressions can span multiple lines if, as in this case, you want to make it easier to read the nested conditional logic.
#Les expressions peuvent s'étendre sur plusieurs lignes si, comme dans ce cas, vous souhaitez faciliter la lecture du logique conditionnelle imbriquée.




Line 124: Line 124:




===Tailored Questions, Answers, and Reports===
===Questions, réponses et rapports personnalisés===




<div class="simplebox">[[File:help.png]] '''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 <nowiki><span></nowiki> tag which is not valid inside select options.</div>
<div class="simplebox">[[File:help.png]] '''Remarque :''' La personnalisation dynamique peut ne pas fonctionner si les options de réponse sont disponibles dans les zones de sélection de la même page de questions. Cela résulte du fait que la couture insère un<nowiki></nowiki> <span>balise qui n’est pas valide dans les options de sélection.</span>


The BMI report looks like this:
Le rapport IMC ressemble à ceci :




Line 135: Line 135:




Here is the edit window for the same question.
Voici la fenêtre d'édition pour la même question.




Line 141: Line 141:




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:
Tout ce qui se trouve entre accolades est traité comme une expression, étant mis en évidence par la syntaxe (codé par couleur) dans l'image précédente. Si vous avez des fautes de frappe (telles que des noms de variables ou des fonctions mal orthographiés ou non définis), ES affichera une erreur. Dans notre exemple ci-dessous :
* heightunit.shown is an undefined variable name (it is actually heightunits.shown) and
* heightunit.shown est un nom de variable non défini (il s'agit en fait de heightunits.shown) et
* "rnd()" is an undefined function (the proper function name is "round()").  
* "rnd()" est une fonction non définie (le nom de fonction approprié est "round()" ).  


In both cases, the errors are located within a red box to make it easier to spot and fix them.
Dans les deux cas, les erreurs sont situées dans un cadre rouge pour faciliter leur détection et leur correction.




Line 151: Line 151:




You can also see that you can quickly create complex reports, such as a table of entered values or tailored advice.
Vous pouvez également constater que vous pouvez créer rapidement des rapports complexes, tels qu'un tableau de valeurs saisies ou des conseils personnalisés.


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.
N'oubliez pas que toute personnalisation doit entourer les expressions d'accolades afin que LimeSurvey sache quelles parties de la question sont du texte libre et lesquelles doivent être analysées par le moteur ExpressionScript.




Line 159: Line 159:




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.
ES contrôle le fonctionnement de la plupart des options de questions avancées. Ces aspects de contrôle tels que le nombre min/max de réponses, les valeurs individuelles min/max, les valeurs de somme min/max et la vérification que les valeurs saisies correspondent aux modèles de chaîne spécifiés. Toute valeur dans l'un de ces champs est considérée comme une expression, vous pouvez donc avoir des critères min/max avec des relations conditionnelles complexes avec d'autres 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.
Dans tous ces cas, puisque l’attribut de question avancée est toujours considéré comme une expression, vous n’utilisez pas d’accolades lors de sa spécification.


The [[ExpressionScript sample surveys|sample surveys]] page shows many working examples containing a variety of validation expressions.
La page [[ExpressionScript exemples d'enquêtes|exemples d'enquêtes]] présente de nombreux exemples de travail contenant diverses expressions de validation.


=ExpressionScript - presentation=
=ExpressionScript - présentation=




To find out more about ExpressionScript and how you can use different expressions to enhance your survey, please click on the following [https://manual.limesurvey.org/ExpressionScript_-_Presentation link].
Pour en savoir plus sur ExpressionScript et sur la façon dont vous pouvez utiliser différentes expressions pour améliorer votre enquête, veuillez cliquer sur le lien suivant [https://manual.limesurvey.org/ExpressionScript_-_Presentation].

Latest revision as of 08:15, 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

Concentrons-nous maintenant sur un autre exemple : une simple enquête de recensement. Pour le télécharger, cliquez sur le lien suivant : Exemple d'enquête de recensement.

La première page demande combien de personnes vivent avec vous et stocke cela dans la variable "cohabs". Cette page ne s'affiche que si vous avez plus d'un cohabitant (elle s'affiche pour la deuxième personne cohabitant avec vous). Aussi, p2name, p2age. p2sum ne sont affichés que si la question précédant chacune d'elles contient une réponse.



Ainsi, le groupe a également des critères de pertinence au niveau des questions, de sorte que certaines questions n'apparaissent que si vous avez répondu à certaines questions avant elles (par exemple, p2age est affiché si p2name a reçu une réponse). ES combine la pertinence au niveau du groupe et de la question pour vous. Les questions en groupe ne sont posées que si le groupe dans son ensemble est pertinent. Ensuite, seul le sous-ensemble de questions pertinentes au sein du groupe est posé.

Voici la capture d'écran permettant de modifier la pertinence au niveau du groupe de « Cohabitant 2 » :



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

Confection/Piping

ES vous permet d'effectuer facilement une personnalisation conditionnelle simple et complexe. Parfois, vous avez juste besoin d'une simple substitution, comme dire : "Vous avez dit que vous avez acheté [ Produit]. Qu'est-ce que vous avez le plus aimé?". Parfois, vous avez besoin d'une substitution conditionnelle comme " [ Monsieur Madame.] [ LastName], seriez-vous prêt à répondre à notre enquête ?". Dans ce cas, vous souhaitez utiliser "M. ou Mme." en fonction du sexe de la personne. D'autres fois, vous avez besoin d'une substitution encore plus complexe (par exemple, basée sur un calcul mathématique). ES prend en charge chacun de ces types de couture/passepoil.


Équations conditionnelles

L'exemple de l'indice de masse corporelle montre la possibilité de calculer l'IMC d'une personne, tout en lui permettant de saisir sa taille et son poids dans deux unités différentes (cm contre pouces et kg contre livres) :



Dans ce cas, poidskg est {if(weightunits == "kg", poids, poids * 0,453592)}. Cette fonction "if()" signifie que si le sujet saisit le poids en kilogrammes, utilisez cette valeur, sinon multipliez la valeur saisie (les livres sont l'alternative) par 0,453592 pour la convertir en kilogrammes. La variable heightm utilise une approche similaire pour calculer la taille de la personne en mètres (taille en cm/100), même si elle a saisi sa taille en pouces (1 mètre = 3,28084 pouces).

L'IMC est calculé comme : {poidskg / (hauteurm * hauteurm)}.

Enfin, le rapport adapte le message au sujet de manière conditionnelle, en lui indiquant ce qu'il a saisi. (Par exemple : « Vous avez dit que vous mesuriez 2 mètres et pesiez 70 kg. »)

Dans l'image ci-dessous, Weightstatus utilise des instructions "if()" imbriquées pour classer la personne comme souffrant d'insuffisance pondérale ou gravement obèse. Vous pouvez voir son équation en vérifiant sa logique :



Dans la fenêtre d'édition de cette question, vous pouvez voir deux choses :

  1. La personnalisation doit entourer les expressions d'accolades
  2. Les expressions peuvent s'étendre sur plusieurs lignes si, comme dans ce cas, vous souhaitez faciliter la lecture du logique conditionnelle imbriquée.



Questions, réponses et rapports personnalisés

Remarque : La personnalisation dynamique peut ne pas fonctionner si les options de réponse sont disponibles dans les zones de sélection de la même page de questions. Cela résulte du fait que la couture insère un balise qui n’est pas valide dans les options de sélection.

Le rapport IMC ressemble à ceci :



Voici la fenêtre d'édition pour la même question.



Tout ce qui se trouve entre accolades est traité comme une expression, étant mis en évidence par la syntaxe (codé par couleur) dans l'image précédente. Si vous avez des fautes de frappe (telles que des noms de variables ou des fonctions mal orthographiés ou non définis), ES affichera une erreur. Dans notre exemple ci-dessous :

  • heightunit.shown est un nom de variable non défini (il s'agit en fait de heightunits.shown) et
  • "rnd()" est une fonction non définie (le nom de fonction approprié est "round()" ).

Dans les deux cas, les erreurs sont situées dans un cadre rouge pour faciliter leur détection et leur correction.



Vous pouvez également constater que vous pouvez créer rapidement des rapports complexes, tels qu'un tableau de valeurs saisies ou des conseils personnalisés.

N'oubliez pas que toute personnalisation doit entourer les expressions d'accolades afin que LimeSurvey sache quelles parties de la question sont du texte libre et lesquelles doivent être analysées par le moteur ExpressionScript.


Validation

ES contrôle le fonctionnement de la plupart des options de questions avancées. Ces aspects de contrôle tels que le nombre min/max de réponses, les valeurs individuelles min/max, les valeurs de somme min/max et la vérification que les valeurs saisies correspondent aux modèles de chaîne spécifiés. Toute valeur dans l'un de ces champs est considérée comme une expression, vous pouvez donc avoir des critères min/max avec des relations conditionnelles complexes avec d'autres questions.

Dans tous ces cas, puisque l’attribut de question avancée est toujours considéré comme une expression, vous n’utilisez pas d’accolades lors de sa spécification.

La page exemples d'enquêtes présente de nombreux exemples de travail contenant diverses expressions de validation.

ExpressionScript - présentation

Pour en savoir plus sur ExpressionScript et sur la façon dont vous pouvez utiliser différentes expressions pour améliorer votre enquête, veuillez cliquer sur le lien suivant [1].