Nous utilisons la version 5.1.34.
Nous filtrions les données grâce à une preSearch() ou postLoad() en appliquant une “setSearchSpec” sauf qu’un moment donné, à la création, nous avions une erreur " unable to get Row ID " .
Du coup comme solution de contournement, nous avons mis les setSearchSpec dans une initList() pour ne filtrer les données que lorsqu’on affiche la liste ce qui empêche d’avoir l’erreur cité au dessus. Sauf que mettre les setSearchSpec dans une initList() déclenche 2 dysfonctionnement :
1. ça ne fonctionne pas tout le temps.
2. Quand il y'a un diagramme d'état, le nombre le ligne de données dans chaque état est différent de celui affiché.
Pouvez-vous me proposer une solution fonctionnelle s’il vous plait ?
Par exemple, Un réferentUfa ne doit voir que les organisme de formations (UFA) aux quels il est liés ( ça fonctionne directement sur l’objet Organisme de formation au moment de l’affichage à travers le menu) :
ça ne fonctionne pas tout le temps :
exemple: Le référent Ufa doit créer un formateur (profil) et dans le formulaire de création il doit choisir un organisme de formation et bien à ce moment là, le filtre la setSearchSpec que nous avons appliqué en initList() ne fonctionne plus ( je suppose qu’au moment où on clique sur la loupe pour choisir un organisme de formation on est plus dans l’affichage de liste d’où l’affichage de la totalité des organismes de formations ) :
Avec la preSeach() nosu avions pas ce souci car ça filtrait quelque soit le cas sauf qu’à la création d’un formateur ça lançait l’erreur unable to get row id et c’est normal car un filtre est mis en place.
Quand il y’a un diagramme d’état, le nombre le lignes de données dans chaque état est différent de celui affiché :
exemple : le référentUfa ne doit voir que les alternants qui sont lié au même Ufa que lui ( ça fonctionne mais vu que l’alternant a un diagramme d’état, la initList() ne permet pas de faire la bonne somme des lignes de chaque état par rapport à ceux affichés )
Pour filtrer une pop-up de sélection de référence, il faut implémenter le hook initRefSelect. Mais implémenter ça dans le postLoad de ton objet Organisme devrait fonctionner également.
Si c’est implémenté dans le postLoad de l’objet Alternant, le count devrait retourner le bon nombre. Pourquoi ne pas avoir utilisé ce hook ?
Les searchSpec ont donc été implémentées dans le postLoad et un getDefaultSearchSpec() a été utilisé pour récupérer le filtre positionné au niveau de la configuration de l’objet métier.
On a donc :
setSearchSpec(getDeafultSearchSpec() + " and my_sql_condition");