Processing Instructions (PI) dans JForm, permet d’insérer des Processing Instructions directement dans les documents. Dans le Studio, quatre PI (If, IfExist, Loop et Foreach) pilotent l’exécution conditionnelle, les tests d’existence et les itérations.
Ces instructions, intégrées sous la forme de balises XML (ex. : <?if?> … <?end-if?>), permettent d’ajouter de la logique au code du formulaire pour en contrôler l’exécution selon des conditions, des vérifications ou des boucles.
If : Instruction conditionnelle permettant d’exécuter un bloc uniquement si la condition est vraie
IfExist : Instruction vérifiant la présence d’un élément avant exécution
Loop : Instruction répétant un bloc tant qu’une condition donnée est remplie
Foreach : Instruction itérant sur une collection d’éléments pour exécuter un bloc pour chacun
L’instruction If est une Processing Instruction qui permet de poser une condition d’exécution.
<?if (condition)?>
... code à exécuter si la condition est vérifiée ...
<?end-if?>
L’instruction IfExist est une Processing Instruction qui permet de vérifier l’existence d’un élément avant d’exécuter le code associé.
<?ifexist($(nomElement))?>
... code à exécuter si l’élément existe ...
<?end-ifexist?>
L’instruction Loop est une Processing Instruction utilisée pour répéter un bloc de code tant qu’une condition donnée est remplie.
<?loop (condition)?>
... code à répéter tant que la condition est vraie ...
<?end-loop?>
L’instruction Foreach est une Processing Instruction qui permet d’itérer sur une collection d’éléments et d’exécuter un bloc pour chacun d’eux.
<?foreach $(listeElements) as $(element)?>
... code à exécuter pour chaque élément de la liste ...
<?end-foreach?>
<Content NewPage="none" OutputMode="all" OutputTarget="all" StyleName="definition">
<QuestionSet HorizontalAlignment="left" LabelHorizontalAlignment="left" LabelPosition="auto" OutputMode="all" OutputTarget="all" Spacing="normal">
<Question>
<Label IsTooltipOnly="false" TradId="54">Entrer le nombre 100</Label>
<NumberBox RefreshOnExit="true" NumberOfVisibleCharacters="15" AutoSize="false" Name="Entrernombre" FractionDigits="0">
<Description TradId="55">Saisir un nombre différent pour vérifier l'expression</Description>
</NumberBox>
</Question>
</QuestionSet>
<?if ((!existsAndNotEmpty($(Entrernombre))) || ($(Entrernombre)=='100'))?>
<?else?>
<?setInterviewErrorOnField Entrernombre : "Entrez le nombre correct"?>
<?end-if?>
</Content><?ifexist($(adresseEmail))?>
<TextBox Name="EmailConfirm" />
<?end-ifexist?><?loop ($(compteur) < 5)?>
<Paragraph>Itération numéro $(compteur)</Paragraph>
<?end-loop?><Content OutputMode="all" OutputTarget="all" StyleName="definition">
<?foreach $(listeElements) as $(element)?>
<Paragraph>Élément actuel : $(element)</Paragraph>
<?end-foreach?>
</Content>