Rellenar un listview con muchos registros

23/07/2003 - 16:22 por Oscar Heras | Informe spam
Hola a tod@s

Tengo un recordset con más de 20.000 registros, los cuales debo
añadirlos a un listview. Ya tengo puesto el ocultar el listview
mientras carga los datos y posteriormente volver a mostrarlo, pero aún
así tarda mucho en rellenarse.

¿Que soluciones me podéis dar para hacerlo más rápido?

GRACIAS

Preguntas similare

Leer las respuestas

#1 Javier Orellana
23/07/2003 - 16:40 | Informe spam
mmmm
en vez de ocultarlo, dale un Dovents por cada registro que
agregas al listview

asi se ve como se va llenando de datos y no tiene un
efecto visual tan feo.

Slds.
Javier Orellana
http://www.xaviware.es.vg

Hola a

Tengo un recordset con más de 20.000 registros, los


cuales debo
añadirlos a un listview. Ya tengo puesto el ocultar el


listview
mientras carga los datos y posteriormente volver a


mostrarlo, pero aún
así tarda mucho en rellenarse.

¿Que soluciones me podéis dar para hacerlo más rápido?

GRACIAS
.

Respuesta Responder a este mensaje
#2 Oscar Heras
23/07/2003 - 16:50 | Informe spam
Gracias, pero no es por el efecto visual, sino porque tengo un bucle
de los 20.000 registro, y hasta que acabda de insertar todos en el
listview, tarda más de 15 segundos.

Lo que pasa es que si lo oculto, luego cargo y luego lo vuelvo de
nuevo visible, optimizo relativamente bastante tiempo

On Wed, 23 Jul 2003 07:40:45 -0700, "Javier Orellana"
wrote:

mmmm
en vez de ocultarlo, dale un Dovents por cada registro que
agregas al listview

asi se ve como se va llenando de datos y no tiene un
efecto visual tan feo.

Slds.
Javier Orellana
http://www.xaviware.es.vg

Hola a

Tengo un recordset con más de 20.000 registros, los


cuales debo
añadirlos a un listview. Ya tengo puesto el ocultar el


listview
mientras carga los datos y posteriormente volver a


mostrarlo, pero aún
así tarda mucho en rellenarse.

¿Que soluciones me podéis dar para hacerlo más rápido?

GRACIAS
.

Respuesta Responder a este mensaje
#3 Eyes
23/07/2003 - 17:02 | Informe spam
Tienes ordenado el ListView, si es así ordenalo al final y
cada vez que insertes uno!!!

Saludos
Eyes

Gracias, pero no es por el efecto visual, sino porque


tengo un bucle
de los 20.000 registro, y hasta que acabda de insertar


todos en el
listview, tarda más de 15 segundos.

Lo que pasa es que si lo oculto, luego cargo y luego lo


vuelvo de
nuevo visible, optimizo relativamente bastante tiempo

On Wed, 23 Jul 2003 07:40:45 -0700, "Javier Orellana"
wrote:

mmmm
en vez de ocultarlo, dale un Dovents por cada registro




que
agregas al listview

asi se ve como se va llenando de datos y no tiene un
efecto visual tan feo.

Slds.
Javier Orellana
http://www.xaviware.es.vg

Hola a

Tengo un recordset con más de 20.000 registros, los


cuales debo
añadirlos a un listview. Ya tengo puesto el ocultar el


listview
mientras carga los datos y posteriormente volver a


mostrarlo, pero aún
así tarda mucho en rellenarse.

¿Que soluciones me podéis dar para hacerlo más rápido?

GRACIAS
.






.

Respuesta Responder a este mensaje
#4 Leonardo Azpurua
23/07/2003 - 17:09 | Informe spam
<Oscar Heras> escribió en el mensaje
news:
Hola a

Tengo un recordset con más de 20.000 registros, los cuales debo
añadirlos a un listview. Ya tengo puesto el ocultar el listview
mientras carga los datos y posteriormente volver a mostrarlo, pero aún
así tarda mucho en rellenarse.

¿Que soluciones me podéis dar para hacerlo más rápido?



¡No lo hagas!

Los listView son recursos de presentación. ¿De verdad pretendes que alguien
LEA el contenido de un listView con 20000 registros? ¿Te has puesto a
imaginar el dolor de dedos, síndrome de tunel carpiano, irritación nerviosa
que le podrá dar a alguien que deba navegar por un ListView con 20000
registros?

Lo normal para manejar ese volumen de datos es crear algún tipo de jerarquía
(¿te imaginas navegar un disco duro sin carpetas?). La naturaleza de esa
jerarquía queda enteramente a tu imaginación. Otra opción, cuando no es
posible establecer ninguna jerarquía comprensible de los datos, es diseñar
algún tipo de filtro, y mostrar sólamente los datos filtrados.

Un excelente ejemplo de cómo presentar grandes cantidades de información es
el concepto de explorador, que tienes tanto en el explorador de windows,
como en la librería de MSDN, como en muchos sistemas de ayuda HTML.

Presentar más de unas decenas de registros es una atrocidad. Si de todas
maneras debes hacerlo (a veces no hay manera de evitar las atrocidades) no
tendrás más remedio que mostrar el cursor como un reloj de arena, o mostrar
algún tipo de indicador de progreso animado mientras los cargas.

Salud!

Leonardo
[MS MVP - VB]
Respuesta Responder a este mensaje
#5 Hernán
23/07/2003 - 17:50 | Informe spam
Oscar Heras <> escribía:

Hola a

Tengo un recordset con más de 20.000 registros, los cuales debo
añadirlos a un listview. Ya tengo puesto el ocultar el listview
mientras carga los datos y posteriormente volver a mostrarlo, pero aún
así tarda mucho en rellenarse.

¿Que soluciones me podéis dar para hacerlo más rápido?




Microsoft(r) llama listview virtual, al control creado con el estilo
LVS_OWNERDATA. Entonces haces LVM_SETITEMCOUNT 20000 ó 5000000 y el
control sólo te va a pedir los items que deba mostrar: si son 15, pedirá
15 (al owner, al WM_NOTIFY del form).

EŽcir, vos mantenés la data fuera del control...

GRACIAS




Hernán (27)
quilmes.ar
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida