|
Started by Bruno, Mar., 10 2017 2:20 PM - 5 replies |
| |
| | | |
|
| |
Posted on March, 10 2017 - 2:20 PM |
Bonjour à tous,
J'ai une table mémoire (basée sur une requête) avec plusieurs colonnes. les colonnes ont COL_Num COL_Date COL_CodeClient COL_NomClient COL_MontantHT
Sur le clic d'une des colonnes (provoquant son tri), je voudrais qu'il y avait un double tri - Sur la colonne cliquée de manière normale - Sur la colonne col_date de manière décroissante (du plus récent vers le plus ancien) Par exemple clic sur COL_CODECLIENT doit provoqué le tri sur le code client et pour chaque client les dates dans l'ordre décroissant
A l'initialisation de la table j'ai placé le code suivant : Evenemen("PRV_CLIC_ENTETE_COLONNE","Tbl_listeTransports",1529)
Le clic sur une des colonnes de tables accède bien à la procédure PRV_CLIC_ENTETE que voici
lc_colonneEncours est chaîne le_NumcolonneEncours est entier = _EVE.wParam SI le_NumcolonneEncours>0 ALORS lc_colonneEncours = TableEnumèreColonne(Tbl_ListeTransports,le_NumcolonneEncours) SI lc_colonneEncours<>"COL_DATE" ALORS TableTrie(lc_colonneEncours+TAB+"-COL_DATE") SI EnModeTest() Trace("tri colonne en cours ", lc_colonneEncours,TableColonnesTriées(Tbl_ListeTransports)) FIN FIN
Je précise que la ligne SiEnmodetest() renvoie bien la liste des colonnes triées avec "-COL_DATE. Or la table n'est triée que sur le premier critère.
Aurais je raté quelque chose Merci d'avance pour vos réponses
Bruno |
| |
| |
| | | |
|
| | |
| |
Registered member 2,574 messages Popularité : +222 (260 votes) |
|
Posted on March, 13 2017 - 5:27 AM |
Bonjour,
Peux tu afficher une image du résultat de ta table après le tri et ce que tu devrais avoir ? As-tu essayé de trier manuellement pour voir si le tri fonctionne correctement ?
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Posted on March, 15 2017 - 3:49 PM |
Bonjour D'abord merci de m'avoir répondu Le tri manuel fonctionne parfaitement (mais sur une colonne), en cliquant sur la colonne COL_DATE en maintenant enfoncée la touche CTRL le double tri fonctionne aussi. Ce que je voudrais éviter c'est cette deuxième manip. Je n'arrive pas à uploader d'image mais voila ce qu'on doit obtenir en cliquant sur la colonne Col_CodeClient Col_num | Col_Date | Col_codeClient 1 | 15/02/2017 | 0001 10 | 01/02/2017 | 0001 9 | 31/01/2017 | 0001 12 | 14/02/2017 | 0002 5 | 16/01/2017 | 0002 25 | 10/01/2017 | 0003 Je précise que la requete source fait le tri comme il est prévu mais c'est au 1er clic sur un autre entête que l'on perd le tri. Merci encore pour les réponses à venir Bruno |
| |
| |
| | | |
|
| | |
| |
Posted on March, 15 2017 - 4:08 PM |
Bonjour Bruno,
si j'ai bien compris, tu intercepte l'évènement normal de tri pour faire ton tri sur 2 colonnes à la place...
Si j'ai juste, alors ton problème pourrait bien être que APRES ton code, le VRAI tri est effectué et donc remplace le tien...
Et dans ce cas, ca veut dire qu'il faut que tu indique dans ton code que l'évènement normal ne devrait pas avoir lieu, avec un resultat FAUX, si je me souviens bien
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
A votre disposition : WXShowroom.com, WXReplication (open source) et maintenant WXEDM (open source)
Plus d'information sur http://fabriceharari.com
Le 3/15/2017 à 9:49 AM, Bruno CATANIA a écrit :
Bonjour D'abord merci de m'avoir répondu Le tri manuel fonctionne parfaitement (mais sur une colonne), en cliquant sur la colonne COL_DATE en maintenant enfoncée la touche CTRL le double tri fonctionne aussi. Ce que je voudrais éviter c'est cette deuxième manip. Je n'arrive pas à uploader d'image mais voila ce qu'on doit obtenir en cliquant sur la colonne Col_CodeClient Col_num | Col_Date | Col_codeClient 1 | 15/02/2017 | 0001 10 | 01/02/2017 | 0001 9 | 31/01/2017 | 0001 12 | 14/02/2017 | 0002 5 | 16/01/2017 | 0002 25 | 10/01/2017 | 0003
Je précise que la requete source fait le tri comme il est prévu mais c'est au 1er clic sur un autre entête que l'on perd le tri. Merci encore pour les réponses à venir Bruno |
| |
| |
| | | |
|
| | |
| |
Posted on March, 16 2017 - 3:40 PM |
Même diagnostic que Fabrice. Le système exécute ton code, puis exécute ce qu'il avait prévu de faire (donc tri simple). Ce qui est un pau bizarre, c'est que le 2ème tri ne devrait rien changer, puisque la table est déjà correctement triée. (mais les algo de tri peuvent parfois être surprenants..)
Juste pour valider que le diagnostic est bon, fais un bouton avec :
TableTrie ( maTable, "COL1;-Col_Date") Info( "step1") TableTrie ( matable, "COL1") [code:wl] SI le 2ème tri change l'ordre, ALORS le diagnostic est bon.
Ensuite, effectivement, la solution pour empêcher le moteur de FAIRE le traitement correspondant au clic, c'est de mettre [code:wl] RENVOYER Faux à la fin du code. |
| |
| |
| | | |
|
| | |
| |
Posted on March, 22 2017 - 2:12 PM |
La soluce de Fabrice et donc de Joel était la bonne. Merci pour le coup de pouce. |
| |
| |
| | | |
|
| | | | |
| | |
|