Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[SOLUCIONADO] Ordenar datos en MSFlexGrid

Estas en el tema de Ordenar datos en MSFlexGrid en el foro de Visual Basic clásico en Foros del Web. Estimados Foreros. Apesar de que el titulo puede sonar ovbio, y a mas de alguno al leerla dira si la respuesta es usar el sort ...
  #1 (permalink)  
Antiguo 11/07/2014, 15:21
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Ordenar datos en MSFlexGrid

Estimados Foreros.

Apesar de que el titulo puede sonar ovbio, y a mas de alguno al leerla dira si la respuesta es usar el sort de msflexgrid, debo decir que no es la solucion a mi planteamiento.

Mi planteamiento es el siguiente:
¿Como puedo ordenar los datos de un msflexgrid o mejor reordenar los datos cuando elimine una fila intermedia y que este reasigne los valores correspondientes?

Ej. 2 columnas
.Numero..Descripcion
..1.............HOLA
..2.............COMO..... Eliminada
..3.............ESTAS
..4.............TU

Para que quede asi
.Numero..Descripcion
..1.............HOLA
..2.............ESTAS
..3.............TU

ya que al usar le sort de msflexgrid solo ordenara los datos existentes y no reasignara el orden a dichos valores.

Bueno, espero haber sido claro en mi explicacion y de antemano les agradesca la ayuda
  #2 (permalink)  
Antiguo 13/07/2014, 14:44
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Ordenar datos en MSFlexGrid

Hola:
Si he entendido bien, lo que quieres es que hay una Columna que indica la fila en la que se encuentra el valor, o esto deduzco del ejemplo que has puesto.

Si es así sólo tienes que reasignar el numero de 'Orden' una vez que has eliminado la fila.

For Orden = 1 To Grid.Rows-1
Grid.TextMatrix(Orden, 1) = Orden
Next

Si no es asi tal vez entendi mal la pregunta.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 24/07/2014, 21:06
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Ordenar datos en MSFlexGrid

Cita:
Iniciado por erbuson Ver Mensaje
Hola:
Si he entendido bien, lo que quieres es que hay una Columna que indica la fila en la que se encuentra el valor, o esto deduzco del ejemplo que has puesto.

Si es así sólo tienes que reasignar el numero de 'Orden' una vez que has eliminado la fila.

For Orden = 1 To Grid.Rows-1
Grid.TextMatrix(Orden, 1) = Orden
Next

Si no es asi tal vez entendi mal la pregunta.

Saludos
------------
Estimado erbuson

Muchas gracias por responder, y disculpa por no devolver el mensaje pero hoy recien me conecte. Bueno la logica de tu respuesta es una de las alternativas que pense, y aunque se hacerca bastante a lo que necesito no fue la solucion que requeria.
  #4 (permalink)  
Antiguo 24/07/2014, 21:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Ordenar datos en MSFlexGrid

Estimados foreros.

Despues de darle vueltas al asunto logre dar con la respuesta que se ajustaba a mis requerimientos, pongo el pseudo codigo por si alguien lo quiere implementar en otro lenguaje o le de alguna idea de solucion a su problema.

---- pseudo codigo
Elimino la fila

Ordeno segun "critero" la msflexgrid

repito de 0 a total de filas menos 1
almaceno en array multidimencional los valores de cada columna por cada fila
fin repito

Limpio la msflexgrid

formateo la msflexgrid

repetito de 0 a el total de item del array multidimencional menos 1
agrego al msflexgrid, el numero de fila del msflexgrid, y los valores del array multidimencional
fin repito

refresco la msflexgrid

---- fin pseudo codigo

esa fue la solucion que utilize, y me funciona a la perfeccion.

Bueno, muchas gracias a todos y espero le sirva a alguien.

Etiquetas: ordenacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:32.