Visual Basic - ordenacion de registros

Life is soft - evento anual de software empresarial
 
Vista:

ordenacion de registros

Publicado por hombre de maiz (13 intervenciones) el 12/04/2006 21:23:15
Ya he utilizado las propiedades del list viewer y claro los ordena pero unicamente con el indice del control list viewer es como los ordena des o asc desde el 0 hasta el maximo pero en relidad no me los muestra ordenados con el codigo dado a cada producto solo los ordena en el control es asi como a simple vista siempre aparecen desordenados me he hecho entender? quisiera el concepto de ordenacion si no quieren responder con el codigo que seria lo ideal
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:ordenacion de registros

Publicado por Matías Freire (421 intervenciones) el 12/04/2006 21:36:28
Lo unico que pude entender es que ALGO del orden del ListViewer no te funciona....

Explícate un poco mejor.
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

RE:ordenacion de registros

Publicado por hombre de maiz (13 intervenciones) el 12/04/2006 21:59:01
Si, perdon esta nota viene de abajo en "De vida o muerte ord...", explico de nuevo:
tengo unos datos en una base en access, los datos alli estan en desorden, debo presentar los datos de forma ordenada en un programa, en un listviewer, pero las propiedades de este control no sirve para lo que quiero hacer pues organiza los datos pero a la luz de su forma interna de organizarlos con un indice propio del control y al organizarlos y mostrarlos me los muestra igualmente desorganizados a no ser que exista una forma para que el control identifique lois datos que tiene y los organize de una forma tan sencilla como solo seleccionar true o false en unas propiedades y yo sinceramnnete no creo que se pueda y creo que la unica forma es por codigo, asi mi pregunta es sencilla necesito codigo o el concepto de ordenacion para colocar este codigo en el lugar donde los datos se cargan de la tabla de acces al listviewer, es todo codigo de ordenacion de unos numeros en desorden...

gracias
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

RE:ordenacion de registros

Publicado por pepon+ (3 intervenciones) el 12/04/2006 23:50:17
¿eres sub-normal? cuando hagas comparaciones, las haces con propiedad.
y en cuanto a tu parrafada, seguimos sin enterarnos de lo que quieres. Cuando la hagas en consonancia con lo que quieres obtener, te informaremos (que pa eso estamos)
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

PEPON Y NUEVO

Publicado por Hombre de maiz (13 intervenciones) el 13/04/2006 00:36:12
Bueno, fui muy claro señores pepon y nuevo, pero no importa no volvere a utilizar este servicio ya que hay personas muy amables pero estan ustedes que empañan el buen funcionamiento de un foro un concejo por si no se han dado cuenta todas respuestas que ustedes dan (nuevo y pepon) son puras pendejadas, sino creen revicen en fechas anteriores en el foro, no hay ni una sola vez que hayan querido ayudar a alguien pues que se han creido, talvez sepan mucho pero no les da el derecho de tratar despectivamnete a las personas que estamos iniciando en este lenguaje...gracias a todas las personas que verdaderamemnte nos ayudan a resolver nuestras dudas...y a los otros que ojala algun dia cambiaran la oscuridad en la que viven...

supongo que los predecibles enviaran mensajes insultantes a mi mail, o sera que no son capaces de pensar esto y lo que hize fue darles la idea

hasta pronto...
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

Formatea los valores

Publicado por Zoto (55 intervenciones) el 13/04/2006 11:18:16
Hola, Hombre de Maiz.

Un posible método que creo que podría resultar positivamente, sería formatear los valores numéricos.
Si no me equivoco, el ListViewer (igual que el ListBox, más simple) ordena sus elementos de forma alfabética y no según el valor numérico de cada elemento.

Me explicaré. Teniendo los siguientes 3 elementos: 123, 14, 1123.
El ListViewer los ordenaría así:

1123
123
14

Esto es, por orden alfabético.
La solución que yo propongo: formatear cada valor a un número determinado de 0. Este número de 0 debe ser el número máximo de cifras que puede llegar a tener un número. Imaginemos que lo establecemos a 10.
Utilizando esta función, nos devolverá el número formateado a un número de 0 determinado:

Public Function FormatToZeros(Number As Double,Optional NumZeros As Integer)As String
FormatToZeros=Format(CStr(Number),String(NumZeros,"0"))
End Function

Esta función toma un valor numérico y un número de 0 determinado al cual se formaterá, devolviendo una cadena de texto.

Ejemplo:

Dim R As String

R = FormatToZeros(123,5)

'Aquí R es igual a "00123"

Lo único que queda hacer ahora es establecer la propiedad Sorted de nuestro ListView a True (para ordenar los elementos alfabéticamente) y, cada vez que añadimos un nuevo elemento al ListView, formatearlo previamente con la función mencionada arriba. Hecho esto, los elementos deberían quedar debidamente ordenados y todo prescindiendo de la utilización de un método de ordenación: de eso se encarga el control mismo. Simple, ¿verdad?
Así, los elementos anteriormente ordenados de forma alfabética quedarían ahora así (formateados a 5 ceros):

00014
00123
01123

Completamente ordenados.
Espero que esta respuesta te haya sido de ayuda y te anime a seguir participando en el Foro. Si tienes alguna duda, consúltala aquí.

Hasta pronto,

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

Utiliza la propiedad .SORTKEY !!

Publicado por SempeFiMXL (74 intervenciones) el 13/04/2006 19:58:05
En la propiedad .SortKey del ListView debes especificar el numero de columna (de 0 hasta .ColumnHeaders.Count -1) que deseas tomar como base para ordenar el listado ...

Prueba el siguiente ejemplo para que veas como se ordena el listado, en este caso haciendo click en el encabezado de las columnas, usando el evento _ColumnClick ... Solo necesitas poner un ListView en una Form y pegar el codigo del ejemplo en la misma para probarlo ...

Y POR FAVOR ... Ignora los comentarios de aquellos que no ayudan... Tu sabes quienes ... Sigue usando los foros.. No por unos cuantos vamos a dejar de hacerlo nosotros... Simplemente ignoralos y no les respondas, pues el responderles solo hace que sigan con su "buen obrar" ...

Private Sub Form_Load()
Dim oList As ListItem

Me.ListView1.ColumnHeaders(1).Text = "Consec" 'fijamos el encabezado inicial

Me.ListView1.ColumnHeaders.Add , , "Codigo"
Me.ListView1.ColumnHeaders.Add , , "Nombre"
Me.ListView1.ColumnHeaders.Add , , "Apellido"


Set oList = Me.ListView1.ListItems.Add(, , "1")
oList.SubItems(1) = "620904"
oList.SubItems(2) = "Agustin"
oList.SubItems(3) = "Hernandez"

Set oList = Me.ListView1.ListItems.Add(, , "2")
oList.SubItems(1) = "611230"
oList.SubItems(2) = "Sandra"
oList.SubItems(3) = "Bernal"

Set oList = Me.ListView1.ListItems.Add(, , "3")
oList.SubItems(1) = "581216"
oList.SubItems(2) = "Miguel"
oList.SubItems(3) = "Guzman"

Me.ListView1.View = lvwReport 'solo funciona en modo reporte
Me.ListView1.AllowColumnReorder = True 'ordenar al dar click en columnas
Me.ListView1.HotTracking = True
Me.ListView1.Sorted = True ' queremos el listview ordenado ...
Me.ListView1.SortKey = 0 'iniciamos ordenando por el consecutivo

End Sub

' Al dar click en una columna cualquiera, ordenamos el listview por esa columna

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Me.ListView1.SortKey = ColumnHeader.Index - 1
End Sub
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

Gracias...Zoto y SempeFiMXL...

Publicado por Hombre de maiz (13 intervenciones) el 15/04/2006 19:36:38
Muchas gracias Zoto y SempeFiMXL, utilice estos consejos y funciono perfectamente, crei que tendria que utilizar mucha programacion, mucho codigo para lograr que se ordenaran los campos, pues no creia que con las propiedades del control se pudiera lograr el efecto deseado son ustedes muy amables...de nuevo muchas gracias...
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