Nous souhaiterions cacher certains champs uniquement lorsque l’utilisateur utilise la fonctionnalité edit list (vous trouverez ci-dessous l’écran pour lequel nous souhaiterions cacher certains champs).
Dans le paramètre field visibility du champ aucun ne nous permet de réaliser cela. Connaitriez-vous une manière afin de réaliser ça ?
Contexte : On a implémenté une action de liste et des lors que l’utilisateur clique sur le bouton, un formulaire de saisie lui est présenté. Il rentre quelques valeurs, puis une liste éditable lui est présentée avec certains champs pré-générés en fonction de ce qu’il a saisit et d’autres qu’il doit remplir. Nous souhaiterions cacher à l’utilisateur les champs déjà pré-remplis.
Attention, le champ sera invisible pour toutes les mises à jour en masse.
A vérifier si cela correspond au besoin dans un contexte hors Action de liste.
Quel est le besoin initial ?
Une aide à la saisie pour que l’utilisateur n’ait pas à saisir n données
Est ce que ton action ne peut pas générer les données sans être en edit list , l’utilisateur clique sur Editer la liste pour modifier les attributs qu’il est autorisé à modifier. Les valeurs par défaut ne doivent pas être modifiables mais doivent elles être non visibles.
Le besoin intiale est que l’utilisateur doit saisir des valeurs dans une table, mais de nombreux champs peuvent être générés automatiquement. Pour cela on lui présente un formulaire où il peut saisir la valeur de certains champs qui sera répété pour les n lignes. En revanche, on a un champ un particulier qui n’est pas générable automatiquement et qui nécéssite une saisie ligne par ligne de l’utilsateur.
On lui présente donc la table en format edit list, avec tous les champs générés sauf un qu’il doit remplir manuellement. L’idée serait de lui présenter seulement ce champ et de cacher les autres.
if (getGrant().hasParameter("ACTION_EDITLIST")){
getField("demoCliLastname").setVisibility(ObjectField.VIS_HIDDEN);//masquer le champ Nom
getField("demoCliLastname").setUpdatable(ObjectField.UPD_READ_ONLY); // ou rendre non modifiable le champ nom
getGrant().removeParameter("ACTION_EDITLIST");
}
else {
getField("demoCliLastname").setVisibility(ObjectField.VIS_BOTH);
getField("demoCliLastname").setUpdatable(ObjectField.UPD_ALWAYS); // ou rendre modifiable le champ nom
}