Visual Basic - Listview

Life is soft - evento anual de software empresarial
 
Vista:

Listview

Publicado por Waldir (16 intervenciones) el 25/03/2007 19:34:38
Hola a todos,la parte numerica de mi listview no puedo ordenarlo, gracias de antemano

ejemplo
20
100
40
50

me lo ordena asi,
100
20
40
50
lo cual esta mal lo ordena de manera texto

lo ideal es
20
40
50
100

Alguna sugerencia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Listview

Publicado por Zoto (55 intervenciones) el 25/03/2007 22:18:16
Hola Waldir,

prueba formateando los valores con 0 para que así el sorteo tenga el efecto que deseas. La lista ordena los valores según su código ASCII y no según su valor numérico. Si formateas los valores con 0 a la izquierda, se ordenarán correctamente.
En el ejemplo que comentas:

20
100
40
50

Los valores, formateados y ordenados quedarían:

020
040
050
100

Para formatear los valores con 0 deberás usar la función Format de Visual Basic. El número total de 0 deberás especificarlo según el máximo valor. En el ejemplo anterior he establecido 3 como número máximo de cifras. Pongamos por caso que el máximo número de cifras que puede tener un valor es 10.
Mira el código para formatear un valor:

Private Const TOTAL_ZEROS As Integer = 10 'Máximo número de 0
Dim Value As Double
Dim ResultValue As String

Value = 20 'Valor a formatear
ResultValue = Format(CStr(Value), String(TOTAL_ZEROS, "0")) 'Formateamos el valor con 10 ceros.
MsgBox ResultValue 'Lo mostramos para ver el resultado.

Esto es lo que deberías hacer tu con todos los valores numéricos antes de listarlos para que se ordenen según su valor numérico.

Espero que haya sido claro y esto te ayude a solucionar tu problema.
Saludos,

Zoto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar