Modifier en lot
Modifier en lot transforme la grille d'un écran en éditeur : les cellules se modifient sur place, les lignes s'ajoutent, se clonent, se copient, se collent ou se marquent pour suppression, et un seul Enregistrer écrit l'ensemble — avec les mêmes requêtes que la fenêtre de saisie et les mêmes actions de ligne.
Vue d'ensemble
Ouvrir la modification en lot
La barre d'outils de la grille propose Modifier en lot dès que l'écran dispose d'une requête de mise à jour ou d'insertion — Modifier sur un écran sans fenêtre de saisie. Le bouton n'apparaît pas sur un écran en lecture seule ni sur un écran dont le réglage editable est désactivé ; les permissions du serveur s'appliquent en plus.
En modification en lot, la barre d'outils devient :
| Bouton | Effet |
|---|---|
| Enregistrer (n) | Écrit les changements en attente ; n compte les lignes modifiées, nouvelles et à supprimer. |
| Annuler | Abandonne tous les changements en attente et quitte la modification en lot. |
| Ajouter une ligne | Ajoute une ligne vide en tête de la grille, garnie des valeurs par défaut des colonnes. |
| Importer | Charge un fichier Excel ou CSV dans la grille — voir Importer un fichier. Présent quand l'écran autorise l'import. |
| Copier (n) | Copie les lignes cochées. |
| Coller (n) | Ajoute les lignes copiées comme nouvelles lignes. |
| Supprimer la sélection (n) | Marque les lignes cochées pour suppression ; une nouvelle ligne cochée est simplement retirée. |
Ajouter une ligne, Coller, Cloner la ligne et Importer nécessitent une requête d'insertion et disparaissent quand l'écran interdit l'ajout. Une actualisation de la grille met fin à la modification en lot sans rien enregistrer ; les lignes copiées restent disponibles.
Lignes et cellules
Chaque ligne commence par une case à cocher, un repère et deux boutons :
| Élément | Signification |
|---|---|
| + | Une nouvelle ligne, pas encore écrite. |
| ● | Une ligne existante dont des cellules ont été modifiées. |
| − | Une ligne marquée pour suppression. |
| Cloner la ligne | Ajoute une copie de la ligne en tête — voir Cloner, copier et coller. |
| × | Marque la ligne pour suppression (un second clic annule) ; sur une nouvelle ligne, la retire. |
| Cadenas | La ligne est en lecture seule : la règle editable_when de l'écran l'exclut, ses cellules restent en affichage simple et elle ne peut pas être supprimée. |
Une cellule reste en lecture seule quand sa colonne est désactivée — disabled, ou disabled_when selon les valeurs de la ligne —, ou verrouillée pour ce type de ligne : disable_on_add sur une nouvelle ligne, disable_on_edit sur une ligne existante. Voir Champs conditionnels.
Cloner, copier et coller
Cloner la ligne, comme Coller des lignes copiées, ajoute de nouvelles lignes qui reprennent toutes les valeurs de la ligne source, clés comprises : il suffit ensuite de changer la valeur qui diffère. Seule exception, une colonne alimentée par une règle SEQUENCE reste vide, et l'insertion prend un nouveau numéro dans la séquence ; les tables liées un-à-un de l'écran suivent cette nouvelle clé.
Une ligne issue d'un clonage ou d'un collage est un duplicata : à l'enregistrement, elle déclenche l'action on_duplicate de l'écran, avec les valeurs de la ligne source sous SOURCE_<colonne>, exactement comme le bouton Dupliquer de la fenêtre de saisie — voir Actions et cycle de vie.
Coller depuis Excel
Des cellules copiées depuis Excel (ou tout texte séparé par des tabulations) puis collées dans la grille, sans cellule en cours de saisie, deviennent de nouvelles lignes :
- si la première ligne collée reprend au moins deux en-têtes de colonnes, elle sert de ligne d'en-têtes et chaque valeur rejoint la colonne du même nom, quel que soit l'ordre ;
- sinon, les valeurs suivent l'ordre des colonnes visibles, celui d'un export de la grille.
Une colonne dotée d'un lookup renseigne ses colonnes dépendantes à partir du code collé, comme si le code avait été choisi dans la liste.
Importer un fichier
En modification en lot, Importer lit un fichier Excel ou CSV dont la première ligne porte les en-têtes de colonnes. Une ligne dont les colonnes clés correspondent à une ligne déjà présente dans la grille devient une modification de celle-ci ; les autres deviennent de nouvelles lignes. Rien n'est écrit avant Enregistrer : le résultat peut être relu et corrigé au préalable.
Hors modification en lot, le bouton Importer de la barre d'outils ouvre la fenêtre d'import, qui contrôle chaque ligne selon les règles de l'écran avant d'enregistrer — voir Import en masse.
Enregistrer
Enregistrer écrit les lignes en une seule passe :
- chaque ligne modifiée par la requête de mise à jour, chaque nouvelle ligne par la requête d'insertion, chaque ligne à supprimer par la requête de suppression — avec les colonnes stockées dans les tables liées un-à-un de l'écran ;
- une colonne dont la valeur par défaut est imposée par une condition (
default_when) est écrite avec cette valeur, même si sa cellule n'a pas été modifiée ; - puis, ligne par ligne, les actions :
on_update,on_insert(ouon_duplicatepour une ligne clonée ou collée) eton_delete.
En cas d'échec d'une écriture ou d'une action, le message s'affiche et la modification en lot reste ouverte. Après un enregistrement réussi, la modification en lot se ferme et la grille se recharge.