[R] ListView : tri sur colonne Date

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] ListView : tri sur colonne Date

#1

Message par aulus »

Bonjour,

J'ai adapté le code de fred39 ( http://www.autoitscript.fr/forum/viewto ... f=4&t=3030 ) pour créer une ListView, triable par clic sur l'entête de chaque colonne. Ce code fonctionne très bien et je remercie son auteur de le proposer.

L'une des colonnes de ma ListView affiche des dates sous le format JJ/MM/AAAA . Bien entendu, le tri sur cette colonne ne peut être qu'incorrect. A part formater les dates de la manière AAAA/MM/JJ , y a-t-il une autre solution pour que le tri soit efficace ?

Je vous remercie de vos idées.
Modifié en dernier par aulus le sam. 13 déc. 2014 22:13, modifié 3 fois.
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#2

Message par Y01 »

Bonjour,

Peux tu afficher ton code afin de t'aider à le corriger ?
Y01
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#3

Message par aulus »

Il n'y a rien à corriger :D

Il ne s'agit pas d'une erreur mais du fonctionnement normal d'un tri sur date de format JJ/MM/AAAA.

Ce que je souhaiterais savoir, c'est si un tri de dates ne peut se faire que sur un format AAAA/MM/JJ , ou si je peux espérer une solution conservant l'affichage JJ/MM/AAAA et triable.
Y01
Niveau 5
Niveau 5
Messages : 160
Enregistré le : lun. 17 nov. 2014 10:46
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#4

Message par Y01 »

Après une petite recherche, je suis tombé sur ça.

Peut être un UDF a-t-il été créé depuis le temps mais je ne le connais pas si c'est le cas.

EDIT : Peut être peux tu jouer sur le quantième "@YDAY"

ex : pour avoir le quantième du 12/12/2014 et être sur qu'il est plus petit que le 11/12/2015, tu fais :

Code : Tout sélectionner

$jour = @YDAY + @YEAR
En cumulant le quantième et l'année, tu obtiens de cette manière un chiffre unique par date.
Y01
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#5

Message par aulus »

Merci pour le lien. Je vois qu'il n'y a pas trop d'espoirs de réussir à trier des dates sous le format d'affichage français.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] ListView : tri sur colonne Date

#6

Message par mikell »

C'est vrai mais il y a une combine assez simple : créer un subitem (colonne) supplémentaire avec la date au format AAAMMJJ (1 seul nombre), cacher cette colonne (avec _GUICtrlListView_HideColumn par exemple), et faire en sorte que quand tu cliques sur la colonne 'date' le tri se fasse sur la colonne cachée (2 ou 3 lignes à rajouter dans le WM_NOTIFY)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] ListView : tri sur colonne Date

#7

Message par aulus »

mikell a écrit :... et faire en sorte que quand tu cliques sur la colonne 'date' le tri se fasse sur la colonne cachée (2 ou 3 lignes à rajouter dans le WM_NOTIFY)
Bonjour Mikell,

J'avais pensé à cette astuce mais étant incapable de trier une colonne en cliquant sur l'entête d'une autre j'avais abandonné l'idée.
Je profite de ce message pour poser deux autres questions :

1. le tri étant parfois long, je souhaiterais afficher un SplashText pour patienter dans la fonction _WM_NOTIFY. J'ai tenté l'affaire en plaçant à divers endroit de la fonction mon SplashTextOn . Mais j'obtiens dans tous les cas un plantage du programme. Où pourrais-je caser mes SplashTextOn et SplashOff ?

2. Lorsque je clique sur une ligne de la ListView, seule est surlignée la valeur de la colonne 1... ce qui n'est pas grave en soi. Mais la sélection ne se fait pas (je ne récupère pas le contenu de la ligne) avec le code :
GUICtrlRead(GUICtrlRead($myListView))

La création d'une Listview avec la fonction _GUICtrlListView_Create ne le permet-il pas avec ce code fonctionnant avec la fonction de création classique GuiCtrlCreateListview ? La fonction _GUICtrlListView_ClickItem n'est-elle pas compatible ?

Merci
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#8

Message par Hugues »

Salut,

Un code que j'ai trouvé sur le net et que j'ai modifié un peu...
► Afficher le texte
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#9

Message par aulus »

Merci Hugues,

Grâce à votre code, j'ai pu récupérer l'ensemble de l'item sélectionné dans ma ListView.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] ListView : tri sur colonne Date

#10

Message par mikell »

aulus a écrit :J'avais pensé à cette astuce mais étant incapable de trier une colonne en cliquant sur l'entête d'une autre j'avais abandonné l'idée.
ça dépend de la méthode de tri utilisée mais si tu te bases sur le code évoqué dans ton post 1, peut-être qqe chose comme ça (pas testé)

Code : Tout sélectionner

          Switch $iCode
                Case $LVN_COLUMNCLICK 
                    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
                    Local $col = DllStructGetData($tInfo, "SubItem")
                    If $col = 2 Then _GUICtrlListView_SortItems($hWndFrom, 4)  [color=#FF0000];<<<<<[/color]
            EndSwitch
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] ListView : tri sur colonne Date

#11

Message par aulus »

Merci Mikell, votre code marche à la perfection.
Répondre