/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
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
newsr5dgvcxa0p03yo@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



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste