Hide fields

Cacher complètement un champ (avec son label)

Par défaut, lorsqu’un champ est masqué simplement dans un formulaire, son label reste affiché. Cette section explique comment cacher la ligne entière.

La solution proposée fonctionne aussi bien sur un formulaire custom (provider) que sur une extension de document basique.

Soit un formulaire contenant un champ texte “Field01”.

Il faut manipuler une notion d’entry. Lordqu’un champ est ajouté, Process crée ce que l’on appelle une entry qui est composée de deux colonnes :

  • La première intègre un CtlLocalizedText avec le libellé du champ
  • La deuxième intègre réellement le contrôle graphique que sélectionné

Ainsi, on peut récupérer un AbstractField par son nom système, mais on peut également récupérer une entry par ce même nom système (méthode utilisée ici).

Où récupérer ces entries ? Ces entries ne sont pas récupérées sur l’AbstractDocument mais sur le contrôle graphique de l’écran (CtlAbstractForm, CtlSection, …).

Pour une extension de document : document.getForm().getEntryByName("Field01").setHidden(true);

Pour un formulaire custom : getForm().getEntryByName("Field01").setHidden(true);

Source : https://wiki.myvdoc.net/xwiki/bin/view/Dev+Floor/HowToHideFormEntry