Bonjour,
Nous avons sur un de nos objets, deux liens FK qui pointe vers le même objet.
Des RG différentes s’appliquent pour la recherche (filtre sur un millésime différent).
Pouvez-vous m’indiquer une méthode pour déterminer quel lien est sélectionné, afin de conditionner ma searshSpec ?
Merci d’avance
Jean-Baptiste
david
(David AZOULAY)
October 28, 2020, 9:01am
2
Simplicité aliase les tables jointes en t_<nom logique de la FK>
dans ses requêtes SQL
Donc comme vos deux FK ont des noms différents il n’y a pas d’ambiguité si vous utilisez l’alias (ce qu’il convient de faire de toute façon dans tous les cas, l’alias de la table de l’objet courant étant t
)
ex:
ObjectField fk = ...;
setSearchSepc("t_" + fk.getName() + ".my_linked_object_column_name = '" + Tool.toSQL(...) + "'");
Francois
(François Genestin)
October 28, 2020, 9:22am
3
Dans le initRefSelect
qui est appelé lord de la recherche d’une référence, on peut ajouter des filtres en utilisant :’
getParentObject()
qui pointe sur l’objet parent qui contient les FK références
getParentObjectRefField()
qui est le nom de la foreign-key de cet objet à l’origine de la recherche
Cette méthode devrait vous permettre de différencier les 2 FK.