|
| Sortering af listview Fra : Neo |
Dato : 24-03-04 15:00 |
|
Hej alle !
Jeg håber på at der en her der kan hjælpe mig lidt !
Jeg forsøger at sortere følgende data i en listview:
9,3
13,8
18,6
9,3
13,8
18,6
9,3
13,8
18,6
ved hjælp af følgende kode:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
If ListView1.SortOrder = 0 Then
ListView1.SortOrder = 1
ListView1.SortKey = ColumnHeader.Index - 1
ListView1.Sorted = True
Exit Sub
End If
If ListView1.SortOrder = 1 Then
ListView1.SortOrder = 0
ListView1.SortKey = ColumnHeader.Index - 1
ListView1.Sorted = True
Exit Sub
End If
End Sub
men resultatet bliver ikke som forventet, og jeg kan ikke lige gennemskue
hvorfor !
Ved første tryk på columheader bliver resultatet presenteret således:
13,8
13,8
13,8
18,6
18,6
18,6
9,3
9,3
9,3
Ved andet tryk på columheader bliver resultatet presenteret således:
9,3
9,3
9,3
18,6
18,6
18,6
13,8
13,8
13,8
Jeg havde forventet at der blev sorteret sådan her (hhv. stigende/faldende
orden)
9,3
9,3
9,3
13,8
13,8
13,8
18,6
18,6
18,6
Er der nogen der gider/kan hjælpe mig med en forklaring på fænomenet ?
På forhånd tak
Mvh Neo
| |
Gert Krabsen (24-03-2004)
| Kommentar Fra : Gert Krabsen |
Dato : 24-03-04 16:20 |
|
Det skyldes, at VB opfatter værdierne som strings og ikke som tal. Prøv at
udskiftedecimaltegnet:
9.3
13.8
18.6
o.s.v.
mvh
Krabsen
Wed, 24 Mar 2004 15:00:05 +0100, Neo <neo___dk@hotmail.removethis.com>
skrev:
> Hej alle !
>
> Jeg håber på at der en her der kan hjælpe mig lidt !
>
> Jeg forsøger at sortere følgende data i en listview:
>
> 9,3
> 13,8
> 18,6
> 9,3
> 13,8
> 18,6
> 9,3
> 13,8
> 18,6
>
> ved hjælp af følgende kode:
>
> Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader)
>
> If ListView1.SortOrder = 0 Then
> ListView1.SortOrder = 1
> ListView1.SortKey = ColumnHeader.Index - 1
> ListView1.Sorted = True
> Exit Sub
> End If
>
> If ListView1.SortOrder = 1 Then
> ListView1.SortOrder = 0
> ListView1.SortKey = ColumnHeader.Index - 1
> ListView1.Sorted = True
> Exit Sub
> End If
>
> End Sub
>
> men resultatet bliver ikke som forventet, og jeg kan ikke lige gennemskue
> hvorfor !
>
> Ved første tryk på columheader bliver resultatet presenteret således:
>
> 13,8
> 13,8
> 13,8
> 18,6
> 18,6
> 18,6
> 9,3
> 9,3
> 9,3
>
> Ved andet tryk på columheader bliver resultatet presenteret således:
>
> 9,3
> 9,3
> 9,3
> 18,6
> 18,6
> 18,6
> 13,8
> 13,8
> 13,8
>
> Jeg havde forventet at der blev sorteret sådan her (hhv.
> stigende/faldende
> orden)
>
> 9,3
> 9,3
> 9,3
> 13,8
> 13,8
> 13,8
> 18,6
> 18,6
> 18,6
>
> Er der nogen der gider/kan hjælpe mig med en forklaring på fænomenet ?
>
> På forhånd tak
>
> Mvh Neo
>
>
>
>
>
--
Sendt via Opera.
www.krabsen.dk
www.responsnord.dk
mfl
| |
Jan V. (25-03-2004)
| Kommentar Fra : Jan V. |
Dato : 25-03-04 08:48 |
|
"Gert Krabsen" <news@fjernkrabsenfjernes.dk> skrev i en meddelelse
news r5dgvcxa0p03yo@news.sunsite.auc.dk...
> Det skyldes, at VB opfatter værdierne som strings og ikke som tal. Prøv at
> udskiftedecimaltegnet:
>
> 9.3
> 13.8
> 18.6
>
> o.s.v.
>
>
>
>
> mvh
>
> Krabsen
>
>
>
Naa
Det er ikke helt rigtigt.
Hvis du kigger i hjælpen til listview kan den KUN sortere på string
Men prøv at kigge tilbage til den 25/2 til indlægget "er der nogen der har
prøvet Listboxen fra Windows Common Controls 6.0" - der er en løsning på
problemet.
Jan
| |
Neo (28-03-2004)
| Kommentar Fra : Neo |
Dato : 28-03-04 21:38 |
|
> Hvis du kigger i hjælpen til listview kan den KUN sortere på string
>
> Men prøv at kigge tilbage til den 25/2 til indlægget "er der nogen der har
> prøvet Listboxen fra Windows Common Controls 6.0" - der er en løsning på
> problemet.
>
> Jan
>
Hej Jan
Perfekt ... det er lige det der skal til !
Jeg har dog lige et spørgsmål til som jeg håber at du kan besvare.
Jeg har flere kolonner i min listview, - hvordan får jeg index for hvilken
columnheader der trykkes på ?
Mvh Neo
| |
Jan V. (29-03-2004)
| Kommentar Fra : Jan V. |
Dato : 29-03-04 06:59 |
|
"Neo" <neo___dk@hotmail.removethis.com> skrev i en meddelelse
news:40673845$0$181$edfadb0f@dtext02.news.tele.dk...
> > Hvis du kigger i hjælpen til listview kan den KUN sortere på string
> >
> > Men prøv at kigge tilbage til den 25/2 til indlægget "er der nogen der
har
> > prøvet Listboxen fra Windows Common Controls 6.0" - der er en løsning på
> > problemet.
> >
> > Jan
> >
>
> Hej Jan
>
> Perfekt ... det er lige det der skal til !
>
> Jeg har dog lige et spørgsmål til som jeg håber at du kan besvare.
>
> Jeg har flere kolonner i min listview, - hvordan får jeg index for hvilken
> columnheader der trykkes på ?
>
> Mvh Neo
>
Jeg har desværre ikke selv haft tid til at lege med sorteringen, blot
indlemmet den i mit bibliotek.
Men prøv en
Private Sub ListView_ColumnClick(ByVal ColumnHeader As
MSComctlLib.ColumnHeader)
MsgBox ColumnHeader.Index
End Sub
Jan
| |
Neo (30-03-2004)
| Kommentar Fra : Neo |
Dato : 30-03-04 08:31 |
|
> Jeg har desværre ikke selv haft tid til at lege med sorteringen, blot
> indlemmet den i mit bibliotek.
>
> Men prøv en
>
> Private Sub ListView_ColumnClick(ByVal ColumnHeader As
> MSComctlLib.ColumnHeader)
> MsgBox ColumnHeader.Index
> End Sub
>
>
>
> Jan
Det virker perfekt ... tak for det !
Neo
| |
Anders Zuschlag (25-03-2004)
| Kommentar Fra : Anders Zuschlag |
Dato : 25-03-04 15:44 |
|
Hej
Når listen fyldes, skal du sørge for at alle tal har samme format, se mit
eksempel her nedenunder.
'''''
While Not rs.EOF
Set lstItem = Liste.ListItems.Add()
lstItem.Text = rs![Dansk artsnavn]
lstItem.SubItems(1) = rs![Latinsk artsnavn]
lstItem.SubItems(2) = Format(rs![Sys-nr], "000000")
Wend
Du skal så bare angive et format med decimaltegn i. Eks. format(ditdat,
"0000.00")
VH AZ
| |
|
|