TRI DES ITEMS DE LISTVIEW (DATE, NUMÉRIQUE OU PERSO)

PROTEUS91 Messages postés 156 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 décembre 2010 - 19 mai 2009 à 19:21
ofils Messages postés 19 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 8 février 2015 - 11 nov. 2010 à 09:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50040-tri-des-items-de-listview-date-numerique-ou-perso

ofils Messages postés 19 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 8 février 2015
11 nov. 2010 à 09:55
Salut,
Merci pour ta réponse, dommage....
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 nov. 2010 à 09:05
voir ma reponse precedante... typiquement le même cas
ofils Messages postés 19 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 8 février 2015
30 oct. 2010 à 16:09
Salut Renfield,
Super ton code, malheureusement, je n'ai pas trouvé le moyen de conserver la couleur (forecolor) de la ligne associée (déplacer la couleur avec la ligne)dans ton tri personnalisé (Listview2).
Si par exemple on met un .forecolor = vbred à l'item Text:="1", le "1" de la ligne 1 est bien en rouge, mais après un tri dans Listview2, le "1" change de ligne et de couleur, et la première ligne conserve la couleur rouge.
As-tu une solution ??
Merci
Jean
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 janv. 2010 à 10:10
Il faut bien garder une chose à l'esprit.

ce qu'on place dans notre Form est un OCX.
cet OCX instancie une fenetre windows de type ListView32.

le tri se passe parfaitement bien, manipulant directement la fenetre via la hWnd.

l'OCX, lui est une couche supplementaire entre nous et ladite fenetre.
lorsque nous jouons avec la fenetre, certaines de ces propriétés ne suivent pas.

c'est le cas pour le SelectedItem, qui est surement géré "localement", dans l'OCX
le cas aussi pour le tag ou autres attributs supplémentaires.
cs_FredT Messages postés 65 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 11 avril 2009
13 janv. 2010 à 08:47
Salut:
complément d'info, car j'ai tout de meme repris le code, avec ajouts de "rustines" pour par exemple retrouver un item précis :
j'ajoute une colonne "id" masquée avec un width=0, puis un vilain for each pour retrouver l'id cherché, au lieu d'un simple lvwControl.ListItems(monID). Bref ...
Autre BUG avec l'Event ItemClick:
Private Sub lvwControl_ItemClick(ByVal Item As Object)
'Essai donc ça :
Debug.Print "Item.Text: " & Item.Text
Debug.Print "LVW SelectedItem: " & lvwControl.SelectedItem.Text
Surprise ! Item est censé etre la nouvelle sélection, n'est ce pas... ben pas là!

bonne reflexion :)
++
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 déc. 2009 à 20:14
effectivement je n'ai pas testé cela, mais je prendrai le temps de le faire.
sur que si on ne peux garder de lien vers des propriétés c'est embettant ....
cs_FredT Messages postés 65 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 11 avril 2009
21 déc. 2009 à 18:09
slt. Bon code, simple et efficace, Marche bien en apparence, dans le sens du terme, mais y'a un gros hic en arrière plan.

Explication, Le texte et la mise en forme qui va avec (forecolor, bold ...) sont bel et bien triés quel que soit le type ou l'ordre: jusqu'à là pour l'affichage tout va bien. Quoique j'ai pas vérifier pour 'tooltip'.
Mais pour les properties 'index' (celui ci au pire pas grave), mais 'key' et 'tag', là ça devient extra embetant: y'a aucun trie la position reste identique à celle où l'item à été créé.
Généralement tag est utilisé pour conserver des infos masquées utile au prog et key ... ben... pour retrouver un item précis. Alors une utilisation un peu trop rapide a mis quelque peu la pagaille dans les données, le temps de m'en rendre compte.
Config d'utilisation : une appli Ms-Access 2003, elle tourne sur win XP pro (à jour), MSCOMCTL.OCX version 6.1.97.86
Une solution? ou est-ce ma config qui convient pas ?
Merci
yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 juin 2013
10 juin 2009 à 00:25
Vraiment Super cette astuce. Grand Merci de la partager. 10/10
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 mai 2009 à 10:05
j'ai pas d'avis là dessus... je joue peu avec ^^
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
20 mai 2009 à 10:00
ok download.

Je ne travaille pratiquement pas avec le listview, mais avec le datagrid, j'ai de ce fait un composant pour toutes mes listes basé sur un datagrid.

L'avantage que je trouve au Datagrid est de pouvoir le basé sur un recordset. dans le cas de ton exemple, ta procédure "Populate" créerai un recordset avec les champs (numerique, texte et date) que je passerai a la propriété datasource du datagrid. de ce fait je peux faire le filtrage quelque soit la colonne et en combinaison avec plusieurs critères, idem pour le tri. je peux dire que je suis plutot assez satisfait de l'avantage de manipuler le recordset.

Le seul probleme que je rencontre pour le cas du filtre, c'est la mise a jour du datagrid, qd je requery le recordset je n'ai pas de raffraichisement sur le datagrid. Je dois reconstruire pour chaque filtrage.

Juste pour information, Renf qu'est ce que tu en penses?, y'a t-il des inconvenients avec le datagrid?.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 mai 2009 à 09:10
Chose promise...
l'icones est moche, vite-faite sous paint... mais bon ^^

j'ai aussi nettoyé un peu le code.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2009 à 19:30
pas faux, je mettrai ca demain.
PROTEUS91 Messages postés 156 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 décembre 2010
19 mai 2009 à 19:21
Je sais que c'est du chipotage mais on pourrai peut être ajouter une fleche vers le bas ou vers le haut dans la colonne ou on a cliqué.

Sinon, Code toujours aussi propre et qui va a l'essentiel !

Je plussois :p
Rejoignez-nous