Sections conditionnelles

Vous pouvez supprimer des sections à partir d'un script en évaluant une expression au début de l'exécution. Si la section n'est pas visible, elle n'est pas répertoriée dans le panneau des sections et l'expression n'est pas réévaluée au cours de l'exécution du script.

A l'aide d'un DS pré-renseigné tel que décrit dans Pré-renseignement des scripts à l'aide des données capturées, nous pouvons définir un indicateur sur une entité en fonction de circonstances externes au script. Supposons que nous avons une entité appelée IntakeInformation qui a un attribut booléen "collectIncomeInformation". Nous pouvons définir une section de revenu dans notre script :

Figure 1. Attribut visible d'une section
...
<section visible="IntakeInformation.collectIncomeInformation==true">
   ...
</section>
...

La section Revenu est masquée si l'attribut "collectIncomeInformation" est défini sur false, comme si la section n'était pas présente dans la définition de script.

Si une section doit être activée ou désactivée selon les réponses des sections précédentes, il est possible d'encapsuler toutes les pages d'une section dans une seule condition. Contrairement à l'attribut visible, cette condition sera évaluée à chaque détection de la section. Cela signifie qu'il est possible de revenir en arrière et de modifier une réponse qui affecte la navigabilité d'une section. La section apparaît toujours dans le panneau Sections mais est grisé afin que l'utilisateur ne puisse pas cliquer dessus.

L'exemple précédent peut être modifié de sorte que la question "collectIncomeInformation" soit posée en début de script. La section Revenu peut ensuite être modifiée comme suit :

Figure 2. Section conditionnelle
...
<section>
   <condition
     expression="IntakeInformation.collectIncomeInformation">
     ...
   </condition>
</section>
...