Les grilles dans Dokos (tables enfants dans les formulaires) offrent plusieurs options de personnalisation pour améliorer votre productivité et adapter l'affichage à vos besoins.
Les lignes de grille s'ouvrent désormais dans un panneau latéral fixe qui glisse depuis la droite de l'écran. Ce changement offre plusieurs avantages :
Exemple — Maison Verte SARL Un commercial de Maison Verte SARL travaille sur un bon de commande contenant 20 lignes d'articles. Il ajuste la largeur de la colonne "Description" pour afficher le texte complet sans troncature, et cette préférence est sauvegardée pour ses futures sessions.
Vous pouvez désormais ajuster la largeur des colonnes directement depuis l'interface utilisateur :
| Paramètre | Valeur |
|---|---|
| Largeur minimale | 50 px |
| Largeur maximale | 400 px |
| Portée | Spécifique à chaque grille (ex. : grille des articles sur Bon de commande) |
| Persistance | Sauvegardée entre les sessions pour chaque utilisateur |
Exemple — Bureau Moderne Sur le bon de commande de Bureau Moderne, la grille des articles affiche par défaut la colonne "Taux unitaire". Un développeur souhaite la masquer uniquement dans cette grille, sans affecter d'autres formulaires utilisant le même type de ligne d'article.
Dans un formulaire Dokos, une grille (table enfant) peut afficher ses lignes sous deux formes : la vue liste (lecture seule, affichage condensé des lignes) et la vue édition (formulaire d'une ligne). Il est parfois utile de masquer une colonne dans la vue liste d'une grille précise, sans impacter les autres grilles qui partagent le même type de document enfant.
Pour les développeurs — set_column_disp_in_list_view
La méthode set_column_disp_in_list_view(fieldname, show) disponible sur l'objet Grid permet de masquer ou d'afficher une colonne dans la vue liste d'une grille, de manière locale à cette grille uniquement.
Signature
cur_frm.fields_dict["nom_de_la_table"].grid.set_column_disp_in_list_view(fieldname, show);
| Paramètre | Type | Description |
|---|---|---|
fieldname | string | Nom interne du champ à masquer ou afficher |
show | boolean | true pour afficher, false pour masquer |
Exemple — masquer la colonne "Taux unitaire" dans la grille des articles
// Dans le script client du bon de commande
frappe.ui.form.on("Sales Order", {
refresh(frm) {
frm.fields_dict["items"].grid.set_column_disp_in_list_view("rate", false);
}
});
Différence avec set_column_disp
| Méthode | Portée | Vue affectée |
|---|---|---|
set_column_disp | Partagée entre toutes les grilles du même doctype enfant | Vue édition (lignes dépliées) |
set_column_disp_in_list_view | Locale à la grille ciblée uniquement | Vue liste (lignes condensées) |
Configuration des largeurs par défaut
Les administrateurs peuvent définir une largeur par défaut pour les colonnes des grilles depuis Personnaliser le formulaire :
Migration des largeurs
Les largeurs des colonnes sont désormais stockées en pixels absolus plutôt qu'en unités de grille Bootstrap. Cette migration assure une meilleure cohérence visuelle et une expérience de redimensionnement plus intuitive.
Événements JavaScript
Les développeurs peuvent écouter les événements de redimensionnement des colonnes :
frappe.ui.form.on("NomDoctype", {
refresh(frm) {
frm.fields_dict["nom_table"].grid.on("column_resize", function(fieldname, new_width) {
console.log(`Colonne ${fieldname} redimensionnée à ${new_width}px`);
});
}
});