Bonjour
J’ai un objet application qui a 2 FK : une vers produit, une vers fonction.
Mon produit a également une référence vers fontion.
Lorsque je sélectionne un produit depuis une fiche d’application, je souhaite que la liste des produit affiché soit filtré par défaut avec la même fonction que sur mon application.
J’ai réussi à faire cela grâce à un hook
Le problème est que dans ma popup de recherche ce filtre ne peut pas être enlevé.
Comment puis le rendre supprimable sachant que je ne peux pas appliquer ce filtre dans le postUpdate de l’application car le champ Fonction est modifiable ?
Y a t-il un moyen propre de le faire ? Y a -t’il un moyen de savoir d’où une recherche est faite (s’il s’agit du clic sur un champ dans un autre formulaire ou du panel de recherche courant) ?
Il faut positionner le filtre une seule fois au niveau de l’objet parent, mais pas à chaque fois que le popup se rafraîchit.
Dans le initUpdate du parent, il faut récupérer l’instance ref de votre objet lié (getRefObject…), et lui mettre un filtre une fois. Pas besoin de initRefSelect dans ce cas.
Merci pour votre réponse.
Il n’existe pas un hook qui se déclenche à l’ouverture de la popup ?
Le filtre à mettre dépend de champs sur le formulaire qui peuvent être changés avant l’ouverture de la pop up.
Scénario :
Ouverture de la page d’édition de mon application --> exécution de l’initUpdate
Mise à jour du champ “Function”
Clic sur le champ de produit --> ouverture de la pop up
Résultat : le filtre positionné dans l’initUpdate n’est plus à jour.
Auriez-vous une solution ?
Dans ce cas, vous pouvez scripter du code front dans une ressource SCRIPT de l’objet parent :
Dans le form.onload du parent appelé lorsque le formulaire est affiché :
Pour ajouter un change() sur le champ qui conditionne un filtre en back :
=> qui appelle une action masquée du fils (ref instance) qui valorise un filtre
=> ou alors qui positionne juste paramètre de session (via app.setSysParam) à récupérer dans l’initSearch de la ref instance de l’objet fils en back