Aller au contenu principal

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​

Modifier · Facture 00001-1042StatutAnnulée ▾Motif d'annulation ∗Commande en doubleMode de paiementVirement ▾IBANFR76 0000 0000 0000 0000 0000 000Plafond de crédit0🔒N° de facture00001-1042🔒AnnulerEnregistrerrequired_whenSTATUS = CANCELLED → obligatoirevisible_whenaffiché si PAYMENT_METHOD = TRANSFERdisable_on_editclé verrouillée après créationdefault_whenSTATUS = CANCELLED → 0, verrouilléeditable_whensur l'écran : ligne en lecture seule

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églageOnglet de l'inspecteurEffet
visible_whenFilterDialogue : 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_whenEditLe champ est signalé obligatoire (astérisque), toujours ou seulement tant que les conditions sont remplies.
disabled / disabled_whenEditLe champ est en lecture seule, toujours ou seulement tant que les conditions sont remplies.
disable_on_addEditLecture seule à l'ajout d'une ligne, modifiable ensuite — pour une valeur attribuée à la création.
disable_on_editEditLecture 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.
defaultDefaultsLa valeur proposée à l'ajout d'une ligne.
default_whenDefaultsTant 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_whenRulesTant 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_whenDefaultsLa 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_when n'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_when et rules_when agissent dans le navigateur, au fil de la saisie. editable_when et write_when sont 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​