PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [ WD18 ] Détecter FAA filtre a été utilisée sur une table - quel évènement suivre ?
[ WD18 ] Détecter FAA filtre a été utilisée sur une table - quel évènement suivre ?
Débuté par Gilbert Guerin, 14 sep. 2013 17:09 - 3 réponses
Posté le 14 septembre 2013 - 17:09
Bonjour,

Soit une table avec de multiples colonnes, l'utilisateur a la possibilité de filtrer les enregistrements présentés :

* 1) en utilisant des options du programme,
* 2) en utilisant des champs de saisie disponibles pour aide au filtre,
* 3) en utilisant tout seul les FAA de filtre sur titre de colonne

J'ai besoin de rationaliser un peu tout ce bazar pour savoir toujours ou on est dans les filtres appliqués.
La nouvelle option "TableColonnesFiltrées" est très pratique car elle permet de connaitre tous les filtres actifs actuellement quelles que soient leurs origines.

J'ai une sous routine qui fait très bien la rationalisation et présente tous les filtres actifs visuellement.

Je désire l'appeler lorsque nécessaire (quel que soit le dernier événement déclencheur)

* Dans le cas 1, pas de problème, le programme a la main pour lancer la sous routine.
* Dans le cas 2, pas de problème non plus, j'utilise l'évènement à chaque modification champ de saisie, sortie du champ de saisie
* Dans le cas 3, comment est-ce que je peux détecter qu'un filtre vient d'être demandé par la FAA ? Quel évènement suivre (clic sur l'entonnoir, titre de colonne, etc...) ?

Cela doit être simple, mais je ne vois pas l'évènement correspondant... Comment est-ce que l'on fait cela ? Un exemple quelque part ?
J'ai la même question en cas de tri par clic sur une colonne.

Merci d'avance de vos lumières.

Gilbert
Posté le 15 septembre 2013 - 19:39
Bonjour,

Personne ?
Pour le tri sur colonne, j'ai un début de réponse : il existe un évenement activable sur chaque colonne du type : "A chaque tri de colonne", mais il s'active juste avant le tri effectif, et la fonction "TableColonnesTriées" donne donc la liste des colonnes qui sont triées avant l'appel du tri par l'utilisateur, et non après...

Comment connaitre cette valeur après le tri effectif ?
Y a t'il un évènement "Après tri de colonne" ?

Merci d'avance de vos lumières.

Gilbert
Posté le 05 août 2015 - 11:50
Bonjour,

Je me permets de déterrer ce sujet qui correspond exactement à mon problème mais qui visiblement n'avait pas trouvé réponse à l’époque. Peut-être quelqu’un a-t-il une solution maintenant.

D’avance merci

Cédric
Posté le 10 novembre 2015 - 10:38
Bonjour,
J'avais le même problème avec le traitement "A chaque tri de colonne" : le code s'effectue juste avant le tri effectif. J'ai donc trouvé la solution suivante pour simulé un traitement "après chaque tri de colonne" :

//initialisation de la table
Evénement("PL_CALCUL", "Table1", 1843) //intercepter un clic sur entete de colonne (donc le tri)


PROCEDURE PL_CALCUL()
sSens est une chaîne = ""

SI _EVE.wParam <> 0 ALORS //N° de colonne sur laquelle le clic est effectué
//Annuler le tri auto
_EVE.Retour = 0
//Détection du sens du tri
SI PAS _EVE.lParam ALORS sSens = "-"
//Trier sur la colonne
TableTrie(Table1, sSens + TableEnumèreColonne(Table1, _EVE.wParam))

//Traitement à effectuer "Après chaque tri"
FIN