Método para llenar lista

Discute sobre la aplicación de hojas de cálculo

Método para llenar lista

Notapor verdeneruda » Mié Dic 16, 2009 4:17 pm

Colegas del OpenOffice, tengan ustedes un excelente día.

Resulta que tengo el siguiente detalle, tengo un botón desde el cual llamo la funcion ppal main para llenar una lista contenida en un Dialogo o ventana el cual se carga al presionar el boton, resulta que la siguiente intrucción me llena la lista correctamente,

Do Until oHojaDatos.getCellByPosition(0,co1).getString = ""
olstDatos.addItem( oHojaDatos.getCellByPosition(0,co1).getString, olstDatos.getItemCount)
co1 = co1 + 1
Loop


pero cuando quiero llenar la lista con más de 10 mil registros, el proceso con esta instrucción se demora 30min, el mismo proceso en excel se hace simultaneo, requiero su ayuda para saber que intrucción o metodo puedo usar para hacer ese proceso.
Última edición por mauricio el Dom Ene 03, 2010 5:14 am, editado 1 vez en total
Razón: Cambiar titulo a minúsculas
JULIO JIMENEZ
OpenOffice 2.4 en Windows Xp
verdeneruda
 
Mensajes: 9
Registrado: Jue Dic 10, 2009 6:39 pm

Re: METODO PARA LLENAR LISTA

Notapor mauricio » Jue Dic 17, 2009 4:48 am

Hola...

Cierto, en mi maquina los tiempos fueron:
Para 10 registros - 0 segundos
Para 1000 registros - 2 segundos
Para 10000 registros - 600 segundos

El problema esta en el método addItem del control, prueba a hacer un ciclo sin este método y observa que es muy rapido.
Código: Seleccionar todo   Expandir vistaContraer vista
For co1 = 1 To 10000
Next
MsgBox co1

También puedes probar a agregar directamente el valor para que compruebes que el problema esta en este método:
Código: Seleccionar todo   Expandir vistaContraer vista
For co1 = 1 To 10000
   olstDatos.addItem( co1, olstDatos.getItemCount)
Next

No hay mucho que hacer en este caso. Si tienes necesidad de mostrar 10,000 datos en un cuadro de lista, tal vez es una buena indicación de que necesitas bases de datos. También puedes usar un control de formulario, este control si tiene la propiedad para vincular con un rango de celdas y te las muestra al instante, pero tendras que ingeniartelas para adaptarlo a tus necesidades, te anexo el mismo ejemplo, con un control cuadro de lista de formulario, mostrando 10,000 datos de celdas.

Por favor, procura darle seguimiento a tus mensajes y no publicar diferentes hilos con el mismo tema. También, estos temas de macros irian mejor en el foro correcto.

Saludos
Adjuntos
Mostrar valores en ListBox.ods
(40.9 KiB) 144 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6021
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Método para llenar lista

Notapor mauricio » Dom Ene 03, 2010 5:16 am

Hola...

En el siguiente hilo te doy una alternativa mucho mejor: viewtopic.php?f=21&t=2302#p7002

Por favor, revisala y si esto resuelve tu pregunta, marca todos los mensajes que has publicado como [RESUELTO], esto nos permite tener foros más ordenados.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6021
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados