Página 1 de 1

Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Lun Ago 13, 2018 10:00 pm
por maxinz87
Hola, soy nuevo en el mundo de LibreOffice Base, y debido a que se está empezando a utilizar cada vez mas en mi lugar de trabajo tengo la idea de crear una base de datos con formularios en donde se carguen registros, pero a la vez quiero crear un formulario en el cual, al abrirlo, se ejecute una consulta filtrada cada cierto tiempo (cada 15 segundos, por ejemplo) con el objetivo de que se actualice el listado del formulario automáticamente para verificar si hay registros nuevos. Es posible realizar algo así con Base? o tal vez debería realizar esto con algún lenguaje de programación específico. Aclaro que tengo ciertos conocimientos en Programación pero obté por utilizar Base para crear Formularios por que me parecia una manera un poco mas rápida de crear un sistema de base de datos aprovechando que Base está instalado en todas las terminales de mi lugar de trabajo.

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Mar Ago 14, 2018 10:00 am
por RMG
Hola,

Pienso que sí es posible. Con un bucle que ejecute la consulta cada cierto tiempo que tu le indiques.

La instrucción Wait es un controlador de tiempo de una milesima de segundo, quiere decir que si pones Wait 1000 ejecuta una espera de un segundo, a partir de ahí puedes hacer lo que consideres.

Saludos

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Mar Ago 14, 2018 3:35 pm
por maxinz87
Muchas gracias por el consejo, voy a probar esto y les haré saber a que resultados he llegado.

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Mié Ago 15, 2018 10:49 am
por Longi
Buenas!
No creo que sea una buena opción según me la imagino.
Supondría una macro constantemente activa y con interferencias en otras o en el funcionamiento del propio formulario.
Pienso que es mejor un botón que actualice el formulario o bien una macro que actualice el formulario al salir de algún conyrol en concreto.
Un saludo ! ;)

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Mié Nov 28, 2018 11:48 pm
por maxinz87
Hola, vuelvo a retomar parte del tema ya que había dejado el proyecto en stand by. Quisiera saber en dónde inserto una macro para que, al abrir un formulario, se ejecute. Es decir, al abrir un formulario se ejecute una macro automáticamente. Estuve buscando por internet pero no di con la respuesta. saludos!

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Jue Nov 29, 2018 12:44 pm
por Longi
Te insisto en lo mismo, creo que no es una buena idea.

Hubo un usuario que le puso un reloj a un formulario (loop cada 1000 milésimas de segundo), y aparentemente funcionaba bien, hasta que empezó a dar interferencias con otras macros y hubo que quitarlo.
También tienes el ejemplo de los cuadros de diálogo: mientras se está ejecutando uno (mientras no está cerrado) se paralizan el resto de macros.
De todos modos, si estoy equivocado estaría encantado de aprender.

Otro saludo! ;)

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Jue Nov 29, 2018 1:44 pm
por RMG
Hola,

Como bien te dice Longi si es algo que incide directamente al formulario como es un reloj, vas a tener algún problema. Si es algo interno que no repercute sobre el mismo creo que no pasa nada, tambien tienes la posibilidad de poner un contador y después de cierta cantidad de ejecuciones que se pare.

La macro la puedes poner al acontecimiento al cargar del formulario, y que se pare si no pones contador en documento va a ser cerrado.

Saludos

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Jue Nov 29, 2018 2:13 pm
por maxinz87
De antemano les agradezco sus respuestas. Si, desistí de ejecutar la macro cíclicamente, la cuestión ahora es que quiero ejecutar una macro en un formulario específico al iniciarlo, pero no encuentro el evento correcto. Probé el evento "al cargar" dentro de los acontecimientos del formulario, también probé con el evento "iniciar la aplicación" dentro de los eventos personalizados, pero no funciona. Estoy probando con un MsgBox en una macro para ver si lo ejecuta y no pasa nada.

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Jue Nov 29, 2018 3:40 pm
por mauricio
Con Python y usando hilos, es perfectamente factible tener un timer detrás, ejecutándose cada que uno quiera.

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Jue Nov 29, 2018 5:08 pm
por RMG
Hola,

Algo no haces bien, en el acontecimiento al cargar, un simple msgbox o print te tiene que funcionar.

Saludos

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Jue Nov 29, 2018 10:28 pm
por maxinz87
RMG, encontré lo que estaba causando que la macro no se ejecute al abrir el formulario. En la pestaña "datos" del formulario, "contenidos" tiene que tener alguna tabla seleccionada en caso que "tipo de contenido" sea tabla, o bien si es "Consulta" en el campo contenidos tiene que tener seleccinado "Concatenar campos de una tabla". De lo contrario el formulario no lanzará ninguna macro automáticamente

Re: Ejecutar función cada cierto tiempo al abrir formulario

NotaPublicado: Vie Nov 30, 2018 10:26 am
por RMG
Sí así es, siempre hay que asignarle una tabla, aunque solo sea un formulario para controles.

Saludos