15 décembre 2006

Exécuter une action lors du tri d'une colonne de table

Il est fréquent de devoir effectuer une action lorsque l'utilisateur trie les données d'une table. Une capture d'événement était requise jusqu'à la version 10, ce sujet a été fréquement abordé sur le forum. Le code nécessaire se trouve ci-dessous.

Il est cependant rendu obsolète, puisque WINDEV 11 permet d'ajouter aux colonnes un code "à chaque tri" !







//1. Code d'initialisation de la table :
Evenement("TRISPECIAL","TABLE1", 1529)

//2. Procédure TRISPECIAL
Procédure TRISPECIAL()
// _eve.wParam contient le numéro de la colonne
Trace("On a cliqué sur l'entête de la colonne n° "+_eve.wParam )
SI _eve.wParam = 2 ALORS
//On veut que la procédure TRISPECIAL permet d'obtenir un tri sur
//la colonne COL2 puis sur la colonne COL1:

// Annuler le tri automatique
_eve.retour = 0
tabletri("COL2"+TAB+"COL1")
FIN
Ndlr : ce code a pour origine un message du support.

1 commentaire:

Anonyme a dit…

haaa ce petit bout de code est une benediction =)

J'avais produit un traitement similaire avec les fonctions champsurvol et tablexy mais pour des raisons inconnues, à certains moments quand on selectionnait une ligne dans la table il y avait une erreur.

En tout cas merci