Tri par date dans un listeview

Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009 - 31 mai 2005 à 16:08
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009 - 3 juin 2005 à 10:16
Rebonjour tout le monde, et encore merci pour toute l'aide que vous m'avez apporté.


J’aurai encore une question,





Comment peut on faire pour trier un listeview lors ce que l’on clique sur le nom de la colonne correspondant a des dates.


Mon problème vient du fait que les dates ne sont pas triées de la bonne façon


Voila ce que ça donne :


01/01/05


01/03/05


01/05/05


03/05/05


03/09/05


04/01/05


09/05/05





Il tri d’abord le jour puis le mois et enfin les années.



Alors n’y a-t-il pas une façon de formater la colonne pour que le tri ce fasse normalement et ne pas avoir à faire le tri des date avec une nouvelle requête.


Merci d’avance.

8 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
31 mai 2005 à 16:44
faut mettre la date à l'envers

pas beau mais pratique






05/01/01

05/03/01

05/05/01

05/05/03

05/09/03

05/01/04

05/05/09



Daniel
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
1 juin 2005 à 09:08
oui comme tu dit, pratique mais pas BO et ca va pas du tout pour mon patron.
Mais bonne idee quand meme.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
1 juin 2005 à 10:03
tu peux aussi faire une colonne avec la date normale et une autre
colonne avec la date retournée et celle ci serait cachée, c'est à dire
avec longueur = 0.

inconvénient: ça multiplie le nombre de colonnes, et ça n'empêche pas l'utilisateur de redimentionner la colonne cachée.

pour faire plus beau je met l'année sur 4 caractères: 2005/06/01

c'est une question d'habitude, je vois pas d'autre moyen de trier,
sinon que de faire le tri soi même et de mettre la propriété sorted à
False, ce serait dommage.



Daniel
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
1 juin 2005 à 12:33
Pas bete de cacher cette colonne et de faire le tri avec.

Je pense que je vais faire ca.

Merci a vous deux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
2 juin 2005 à 11:42
Encore une question...

La colonne 0 est celle où la date est inversé et caché, la colonne 1 est celle où il y a la vrai date.

Si j'utilise ceci :

if listeDetail.ColumnHeader.Index=1 then
ListeDetail.SortKey = 0
ListeDetail.Sorted = False
If ListeDetail.SortOrder = lvwDescending Then
ListeDetail.SortOrder = lvwAscending
Else
ListeDetail.SortOrder = lvwDescending
End If
ListeDetail.Sorted = True
end if

Si je clic sur la colonne de la vrai date(1), je tri par rapport a la colonne caché(0).

Dans un sens le tri est correcte (du 01/01/05 au 31/12/05)
mais dans l'autre sens, l'ordre ne va pas.
Il fait :
05/05/11
05/05/01
05/05/09

Où est mon erreur ou alors que puis-je faire d'autre?

Merci de votre aide.
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
2 juin 2005 à 11:56
Autre erreur entre 2 mois le tri donne

une fois 01/02/05
04/01/05
...
...
27/01/05
31/01/05

Dans l'autre sens c'est l'inverse.
31/01/05
27/01/05
...
04/01/05
01/02/05

La aussi c'est chiant.
Je vais devenir fou.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 juin 2005 à 14:22
il y aurait pas une erreur de colonne ?

la première colonne commence à 1







if listeDetail.ColumnHeader.Index=2 then
ListeDetail.Sorted = False

ListeDetail.SortKey = 0

If ListeDetail.SortOrder = lvwDescending Then

ListeDetail.SortOrder = lvwAscending

Else

ListeDetail.SortOrder = lvwDescending

End If

ListeDetail.Sorted = True

end if
Daniel
0
Omega15 Messages postés 55 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 7 septembre 2009
3 juin 2005 à 10:16
L'erreur de numero de colonne a ete reglé juste apres mon message.
je l'avait remarqué.
mais le porbleme persiste toujours.

Les dates ne sont pas bonnes et avec 2 mois differents c'est encore pire.
0
Rejoignez-nous