Método para llenar lista

Discute sobre la aplicación de hojas de cálculo
Responder
verdeneruda
Mensajes: 9
Registrado: Jue Dic 10, 2009 6:39 pm

Método para llenar lista

Mensaje por verdeneruda »

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: METODO PARA LLENAR LISTA

Mensaje por mauricio »

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

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

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) Descargado 233 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: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Método para llenar lista

Mensaje por mauricio »

Hola...

En el siguiente hilo te doy una alternativa mucho mejor: http://user.services.openoffice.org/es/ ... 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
Responder