Ho trovato su un libro una Function che permette di ordinare colonne di ListView con valori numerici e date (sapete bene che la proprietà Sort delle Listview ordina solo stringhe)
La funzione in pratica crea una nuova colonna in cui inserisci i numeri che voglio ordinare formattandoli con tanti "0" davanti in modo che possano poi essere ordinati come stringhe, ordina la listview, e poi elimina la nuova colonna, la funzione è questa:
Il problema è che NON funziona con le date, coi numeri si, ma con le date no..codice:Public Function ordinaLV(LV As ListView, ByVal ColumnIndex As Integer, SortOrder As Integer, Optional IsDateValue As Boolean) Dim li As ListItem, number As Double, newindex As Integer LV.Visible = False LV.Sorted = False LV.ColumnHeaders.Add , , "dummy column", 1 newindex = LV.ColumnHeaders.Count - 1 For Each li In LV.ListItems If IsDateValue Then number = DateValue(li.ListSubItems(ColumnIndex - 1)) Else number = CDbl(li.ListSubItems(ColumnIndex - 1)) End If li.ListSubItems.Add , , Format$(number, "000000000000000.000") Next li LV.SortKey = newindex LV.SortOrder = SortOrder LV.Sorted = True LV.ColumnHeaders.Remove newindex + 1 For Each li In LV.ListItems li.ListSubItems.Remove newindex Next LV.Visible = True LV.SortKey = ColumnIndex - 1 End Function![]()
Allora ho provato a sostituire la riga:
number = DateValue(li.ListSubItems(ColumnIndex - 1))
con:
number = DateDiff("d", li.ListSubItems(ColumnIndex - 1), #12/31/2999#)
ma non va uguale.......![]()
Ho pensato che il problema potrebbe essere il modo di scrivere la data che nel mio DB ha il formato italiano (gg/mm/aaaa) mentre vb6 credo voglia il formato inglese (mm/gg/aaaa).. Boh?
Suggerimenti???
Grazie mille e scusate la lunghezza del post..![]()

Rispondi quotando