Listview : trier des dates au chargement de celle-ci : merci

Résolu
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007 - 24 mars 2005 à 17:30
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007 - 29 mars 2005 à 14:17
Salut tlm.
J'avai un probleme de tri pour ma listview et le voila résolu.
Cependant jaimerai la trier cette listview et ce tri est un tri de date. Ce tri de date jaimerai qu'il soit automatique dans le sens ou je ne veut pas qu'il se fasse lorsque je clic sur ma listview ou sur une de ses colonnes mais que ce tri se fasse au chargement de la listview.
Voila donc pour ceux qui auraient réponse a ma question...
Merci à vous ^^
Bonne journée.

>>>> PS : je possede VB 6.0

j'ai deja essayé de resoudre le probleme avec des sort et des sortkey mais bon je ne m'y connais pas donc ce fut un echec....

8 réponses

VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007
29 mars 2005 à 14:17
Voici ce à quoi j'avais pencer aussi pour ceux qui veulent : ( un peu barbare mais ca marche très bien )

dim dat as string
dim dte as string
dim intvar as integer

strFormat = "YYYY/MM/DD"
normFormat = "DD/MM/YYYY"

'transformation date avec new format : je l'ait fait en 3 ligne pour que ca soit plus clair mais
'on peut le faire en une ou alors avec un with par exemple ....)

For intvar = 1 To lstview.ListItems.Count
dat = Format(lstview.ListItems.Item(intvar).SubItems(3))
dte = Format$(dat, strFormat)
lstview.ListItems.Item(intvar).SubItems(3) = dte
Next intvar

'tri par jour :
lstview.SortKey = lstview.ColumnHeaders.Item(4).SubItemIndex
lstview.Sorted = True
lstview.SortOrder = lvwAscending

'Redefinition ancien format
For intvar = 1 To lstview.ListItems.Count
dte = Format$(lstview.ListItems.Item(intvar).SubItems(3), normFormat)
lstview.ListItems.Item(intvar).SubItems(3) = dte
Next intvar
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 mars 2005 à 19:57
Salut
... en cherchant un peu ...
http://www.vbfrance.com/article.aspx?ID=9852

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
24 mars 2005 à 20:19
Dans ta procédure de chargement de la ListView, ajoute cette ligne à la fin.
(juste après la commande de chargement.), je ne connais pas ton code mais j'ai essyé avec le mien et cela fonctionne.

ListView1.Sorted = True

jpleroisse
0
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007
25 mars 2005 à 10:42
Thx Jack mais comme je le disais je voudrais un tri qui se fasse sans clic de
souris sur la colonne. Le problème c'est donc que je n'est pas de
columnheader de recupéré. Ma listview elle donne ca :

titre | Libelle | Numero | Date

et mes dates sont de format "DD/MM/YYYY"
donc en fait fodrait que je les convertissent en YYYYMMDD ca je l'avais
bien compris mais après je ne sais pas comment faire pour trier a partir
de la colonne 4.

Merci aussi jpleroisse mais comme tu peut le voir j'ai plusieurs colonnes donc et par conséquent ....
0

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

Posez votre question
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007
25 mars 2005 à 11:39
Alors voila ou jen suis :

lstview.SortKey = lstProchainNumParution.ColumnHeaders.Item(4).SubItemIndex
lstview.SortOrder = lvwAscending
lstview.Sorted = True

jai donc reussi a selectionner ma colonne voulu chose que je n'avais pas reussi a faire au paravant.
Le problème est le suivant : il tri en fonction des jours
Donc fodrai que je convertisse toutes les dates en yyyy/mm/dd
g essayer de fair :

for i =0 to lstview.listitems.count
lstview.listitems.item(i).subitem(3)=format(lstview.listitems.item(i).subitem(3)
, "yyyymmdd")
next i

metre les 3 ligne de la haut ( .sort* ) et de tout reconvertir dans le sens
contraire mais ca ne marche pas comme ca apparemment. Si vous trouvez
marci bcp ^^

Bonne day a vous :))
0
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007
25 mars 2005 à 14:39
En fait j'ai trouver sans trouver : c'est à dire que je n'est pas trier les dates en visual basic. J'ai modifié ma requete sql pour que le tri se fasse automatiquement avec un order by ( en fait pour d'autres raisons j'avais du faire un tri de titre de journal) et j'ai trouver une autre requete qui m'a trié ces journaux. Le order by etant libre j'ai pu l'utiliser pour mes dates.
Merci quand même à ceux qui ont cherché :p


<IMG src="/imgs2/smile_c
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 mars 2005 à 05:22
Re
Si tu avais eu la curiosité de charger et regarder la source que je te proposais, tu aurais vu qu'elle résoud ton problème de classement de date.
Il suffit de lancer cette demande de classement avec un autre évènement que le click sur une colonne, pardis !
Bref, tu fais comme tu le sens.

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007
29 mars 2005 à 12:31
Je ne dit pas le contraire. C'est juste qu'en fait j'ai trouver cette solution au paravant.
Cependant j'avais quand même regardé ce qui était fait dans le source et je l'avais appliquer sur une fonction. Le probleme c'est que je n'arrivai pas à récupéré la valeur Index. De plus j'ai beau avoir mis dans les références les librairies j'ai un probleme avec le listsubitem et donc je n'arrive pas a acceder au tag et au text.
Si tu vois d'ou cela peut provenir merci de me le faire savoir jack :)
Bonne journée.
0
Rejoignez-nous