Conditions de formulaire
Une colonne d'écran peut réagir à la valeur d'un autre champ de la même ligne : n'apparaître que pour un type d'enregistrement, devenir obligatoire, se verrouiller, prendre une valeur imposée, changer de liste de valeurs ou ne pas être écrite du tout. L'écran lui-même peut placer des lignes entières en lecture seule. Tous ces réglages reposent sur la même forme de condition.
La mise en œuvre pas à pas dans l'éditeur d'écran est décrite dans Écrans → Champs conditionnels.
Vue d'ensemble
La condition
Une condition désigne un champ de la même ligne et la valeur attendue — ou une liste de valeurs, dont une seule suffit :
{ field = "STATUS", value = "CANCELLED" }
{ field = "PAYMENT_METHOD", value = ["TRANSFER", "DIRECT_DEBIT"] }
Un réglage porte une liste de conditions : toutes doivent être remplies (ET). Les valeurs se comparent comme du texte, sans les espaces de début et de fin : un code complété par des espaces reste reconnu. Les noms de champs se comparent sans tenir compte de la casse.
Dans l'éditeur d'écran, chaque réglage est une liste dans l'inspecteur de la colonne : une ligne par condition, le champ étant choisi parmi les colonnes de l'écran.
Réglages d'une colonne
| Réglage | Onglet de l'inspecteur | Effet |
|---|---|---|
visible_when | Filter | Dialogue : le champ n'apparaît que tant que les conditions sont remplies par les valeurs du formulaire. Grille : la colonne disparaît quand un filtre de l'écran prend une valeur hors de la condition ; filtre vide, la colonne reste affichée. |
required / required_when | Edit | Le champ est signalé obligatoire (astérisque), toujours ou seulement tant que les conditions sont remplies. |
disabled / disabled_when | Edit | Le champ est en lecture seule, toujours ou seulement tant que les conditions sont remplies. |
disable_on_add | Edit | Lecture seule à l'ajout d'une ligne, modifiable ensuite — pour une valeur attribuée à la création. |
disable_on_edit | Edit | Lecture seule une fois la ligne créée — pour une clé qui ne doit plus changer. S'applique au dialogue et à la saisie dans la grille. |
default | Defaults | La valeur proposée à l'ajout d'une ligne. |
default_when | Defaults | Tant que sa condition est remplie, la colonne prend la valeur default indiquée et se verrouille. Avec lock désactivé, la valeur est seulement proposée et reste modifiable. Avec plusieurs règles, la première remplie l'emporte. Réappliqué à chaque changement du champ déterminant, dans le dialogue comme dans la grille. |
rules_when | Rules | Tant que sa condition est remplie, la colonne utilise une autre règle — un autre lookup, une autre énumération ou un booléen, avec ses propres paramètres de lookup et valeurs renvoyées — ou aucune (saisie libre). La première règle remplie l'emporte ; à défaut, la règle de la colonne s'applique. |
write_when | Defaults | La colonne n'est écrite que tant que les conditions sont remplies. Sinon, le serveur écrit une valeur neutre (vide ou 0) sans appliquer la valeur par défaut ni la règle du dictionnaire — pour un champ dénué de sens pour ce type de ligne. |
Un réglage fixe et sa version conditionnelle se combinent simplement : liste _when vide, l'indicateur fixe décide ; liste renseignée, les conditions décident.
Réglage de l'écran — editable_when
Défini dans l'onglet Général de l'éditeur d'écran, editable_when indique quand une ligne existante peut être modifiée ou supprimée :
editable_when = [{ field = "PERIOD_STATUS", value = ["OPEN", "VALIDATED"] }]
Une ligne qui ne remplit pas la condition passe en lecture seule : cellules non modifiables dans la grille, dialogue en consultation sans Enregistrer ni Supprimer. Le serveur refuse lui aussi toute modification de cette ligne. L'ajout de lignes n'est pas concerné.
À l'enregistrement
- Champs masqués — en mise à jour, un champ masqué par
visible_whenn'est pas envoyé : la colonne garde sa valeur enregistrée. En insertion, un champ masqué n'est envoyé que s'il porte une valeur. - Champs verrouillés — leur valeur est envoyée telle quelle.
- Lieu du contrôle —
visible_when,required_when,disabled_when,default_whenetrules_whenagissent dans le navigateur, au fil de la saisie.editable_whenetwrite_whensont aussi appliqués par le serveur, quelles que soient les valeurs envoyées.
Fenêtres de saisie des actions
Les champs de la fenêtre de saisie d'une action acceptent visible_when, required_when et disabled_when sous la même forme, évalués sur les champs de cette fenêtre. Voir Actions et cycle de vie.
Pour aller plus loin
- Écrans → Champs conditionnels — les mettre en place dans l'éditeur d'écran, avec des exemples.
- Écrans → Colonnes — les autres réglages d'une colonne.
- Dictionnaire — les règles héritées par une colonne.