Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Triage d'une colonne contenant une date dans un contrôle listview

5 réponses
Avatar
Daniel
Hello,

J'ai un petit problème avec le triage des colonnes d'un contrôle ListView.
Lorsque j'ajoute dans une colonne des dates, et que je souhaite les trier,
le trie ne se fait pas dans l'ordre cronologique mais dans l'ordre
alphabetique.

Y a-t-il un moyen de résoudre ce problème ?

j'utilise le contrôle "Microsoft Windows Common Controls 5.0 (SP2)".

Merci d'avance
Daniel

5 réponses

Avatar
ng
Salut,

Le moyen le plus simple est d'utiliser une date au format de Now(), c'est à
dire par exemple 30/01/2004 16:40:06 et là le tri se fait correctement...

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"Daniel" a écrit dans le message de news:

Hello,

J'ai un petit problème avec le triage des colonnes d'un contrôle ListView.
Lorsque j'ajoute dans une colonne des dates, et que je souhaite les trier,
le trie ne se fait pas dans l'ordre cronologique mais dans l'ordre
alphabetique.

Y a-t-il un moyen de résoudre ce problème ?

j'utilise le contrôle "Microsoft Windows Common Controls 5.0 (SP2)".

Merci d'avance
Daniel




Avatar
Daniel
C'est vrai qu'il s'agit d'une solution mais je souhaiterais pouvoir utiliser
le format de date europeen.


"ng" a écrit dans le message de news:

Salut,

Le moyen le plus simple est d'utiliser une date au format de Now(), c'est


à
dire par exemple 30/01/2004 16:40:06 et là le tri se fait correctement...

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"Daniel" a écrit dans le message de news:

> Hello,
>
> J'ai un petit problème avec le triage des colonnes d'un contrôle


ListView.
> Lorsque j'ajoute dans une colonne des dates, et que je souhaite les


trier,
> le trie ne se fait pas dans l'ordre cronologique mais dans l'ordre
> alphabetique.
>
> Y a-t-il un moyen de résoudre ce problème ?
>
> j'utilise le contrôle "Microsoft Windows Common Controls 5.0 (SP2)".
>
> Merci d'avance
> Daniel
>
>




Avatar
Eric Blin
Bonjour,


"Daniel" a écrit dans le message de news:

C'est vrai qu'il s'agit d'une solution mais je souhaiterais pouvoir


utiliser
le format de date europeen.



Dans ce cas, une callback et hop c'est parti ....

c'est ce que je fais pour les dates les nombres, les ....
Allez un petit bout d'explications

SendMessage <Handle de ma listview>, LVM_SORTITEMS, ColumnHeader.Index,
ByVal FARPROC(AddressOf CompareMesDates)

avec CompareMesDates() une fonction du type
Public Function CompareMesDates(ByVal Param1 As Long, ByVal Param2 As Long,
ByVal Column As Long) As Long

Param1 : lparam (handle) qui identifie la 1ère ligne de la listview à
comparer
Param2 : lparam (handle) qui identifie la 2ème ligne de la listview à
comparer
Column : colonne de tri

dans cette fonction tu fais ta comparaison et tu renvoie les valeurs
suivantes
0 = inférieur
1 = égal
2 = supérieur



@+

Eric Blin
Avatar
Pascal B.
Salut,

Tu as exemple complet dans l'aide MSDN Library:

HOWTO: Sort a ListView Control by Date

Pascal


"Eric Blin" <eblin at telelogos dot com> a écrit dans le message de news:
| Bonjour,
|
|
| "Daniel" a écrit dans le message de news:
|
| > C'est vrai qu'il s'agit d'une solution mais je souhaiterais pouvoir
| utiliser
| > le format de date europeen.
|
| Dans ce cas, une callback et hop c'est parti ....
|
| c'est ce que je fais pour les dates les nombres, les ....
| Allez un petit bout d'explications
|
| SendMessage <Handle de ma listview>, LVM_SORTITEMS, ColumnHeader.Index,
| ByVal FARPROC(AddressOf CompareMesDates)
|
| avec CompareMesDates() une fonction du type
| Public Function CompareMesDates(ByVal Param1 As Long, ByVal Param2 As Long,
| ByVal Column As Long) As Long
|
| Param1 : lparam (handle) qui identifie la 1ère ligne de la listview à
| comparer
| Param2 : lparam (handle) qui identifie la 2ème ligne de la listview à
| comparer
| Column : colonne de tri
|
| dans cette fonction tu fais ta comparaison et tu renvoie les valeurs
| suivantes
| 0 = inférieur
| 1 = égal
| 2 = supérieur
|
|
|
| @+
|
| Eric Blin
|
|
|
Avatar
Daniel
Merci à tous pour ces informations.
Ci-joint le lien que j'ai trouvé par la suite de l'aide de MS pour le
triage:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:
80/support/kb/articles/Q170/8/84.asp&NoWebContent=1


Daniel


"Pascal B." <pascbr[A.R.O.B.A.S.E]hotmail[P.O.I.N.T]com> a écrit dans le
message de news: #
Salut,

Tu as exemple complet dans l'aide MSDN Library:

HOWTO: Sort a ListView Control by Date

Pascal


"Eric Blin" <eblin at telelogos dot com> a écrit dans le message de


news:
| Bonjour,
|
|
| "Daniel" a écrit dans le message de news:
|
| > C'est vrai qu'il s'agit d'une solution mais je souhaiterais pouvoir
| utiliser
| > le format de date europeen.
|
| Dans ce cas, une callback et hop c'est parti ....
|
| c'est ce que je fais pour les dates les nombres, les ....
| Allez un petit bout d'explications
|
| SendMessage <Handle de ma listview>, LVM_SORTITEMS, ColumnHeader.Index,
| ByVal FARPROC(AddressOf CompareMesDates)
|
| avec CompareMesDates() une fonction du type
| Public Function CompareMesDates(ByVal Param1 As Long, ByVal Param2 As


Long,
| ByVal Column As Long) As Long
|
| Param1 : lparam (handle) qui identifie la 1ère ligne de la listview à
| comparer
| Param2 : lparam (handle) qui identifie la 2ème ligne de la listview à
| comparer
| Column : colonne de tri
|
| dans cette fonction tu fais ta comparaison et tu renvoie les valeurs
| suivantes
| 0 = inférieur
| 1 = égal
| 2 = supérieur
|
|
|
| @+
|
| Eric Blin
|
|
|