Vous pouvez afficher ou masquer les éléments d’un rapport de manière conditionnelle à l’aide d’instructions if. Vous pouvez utiliser l’instruction if en saisissant une expression dans l’emplacement réservé ${if expression} de début, où ${/} indique la fin du segment conditionnel. Voici quelques exemples d’instructions if qui permettent d’afficher ou de masquer des parties d’un rapport :
- ${if photo1} affiche la section uniquement s’il existe une réponse à la question photo1.
- ${if integer1>0} affiche la section uniquement si la réponse à la question integer1 est un nombre positif.
- ${if ((geopoint1 | getValue:"y")>0)} affiche la section uniquement si le géopoint se situe dans l’hémisphère nord.
- ${if multiple_choice1 | selected:"A"} affiche la section uniquement si le choix A a été sélectionné pour la question à choix multiples.
- ${if (repeat1 | getValue:"count")>=3} affiche la section uniquement si repeat1 contient au moins trois enregistrements.
Dans l’exemple suivant, le texte de la seconde ligne apparaît uniquement dans le rapport si high est sélectionné pour la question à choix unique de priorité :
${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}
Pour déterminer si une réponse contient une valeur pour une question, utilisez seulement une instruction if faisant directement référence au nom de champ, sans aucun autre opérateur. Par exemple, ${if photo1}. Ce format garantit que les chaînes vides, les valeurs nulles , et les valeurs non définies sont toutes considérées des valeurs vides. Ce format s’applique aux champs de type chaîne, nombre, date et pièce jointe. Si ce format est utilisé avec des répétitions, la section apparaît à partir du moment où la répétition contient au moins une instance.
Pour utiliser des instructions conditionnelles avec les questions de date et d’heure, effectuez les calculs au format Epoch (nombre de secondes écoulées depuis le 1er janvier 1970). Par exemple, ${if (date1|getValue:"") < 1602735375000} affiche la section seulement si la valeur figurant dans le champ de date est antérieure au 14 octobre 2020. La syntaxe du rapport n’a pas d’équivalent pour les fonctions today() ou now() de la feuille de calcul XLSForm. Il est donc impossible de composer une instruction conditionnelle pour la période relative à l’impression du rapport.
Les opérateurs logiques suivants sont pris en charge dans les instructions if:
Opérateur | Description |
---|---|
|| | True (Vrai) si l’une des deux instructions renvoie true (Vrai) |
&& | True (Vrai) si les deux instructions données renvoient true (Vrai) |
! | True (Vrai) si l’instruction ne renvoie pas true (Vrai) |
== | True (Vrai) si les deux valeurs données sont égales |
!= | True (vrai) si les deux valeurs données ne sont pas égales |
> | Vérifie si la première valeur est supérieure à la seconde |
>= | Vérifie si la première valeur est supérieure ou égale à la seconde |
< | Vérifie si la première valeur est inférieure à la seconde |
<= | Vérifie si la première valeur est inférieure ou égale à la seconde |
Une table permet de présenter des enregistrements individuels répétés ou un résumé d’enregistrements dans un rapport. Pour utiliser une instruction conditionnelle afin de masquer une table ne comportant aucune valeur, les emplacements réservés de début et de fin doivent être placés à l’extérieur de la table, immédiatement avant et après celle-ci. Pour utiliser une instruction conditionnelle afin d’afficher uniquement la ligne de l’en-tête de la table si la table ne contient aucune valeur, l’emplacement réservé de début doit se trouver dans la première cellule de la table et l’emplacement réservé de fin doit être dans la dernière cellule.
Vous avez un commentaire à formuler concernant cette rubrique ?