Ejecutar función cada cierto tiempo al abrir formulario

Discute sobre las herramientas de la base de datos
Responder
maxinz87
Mensajes: 11
Registrado: Lun Ago 13, 2018 9:49 pm

Ejecutar función cada cierto tiempo al abrir formulario

Mensaje 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.
OpenOffice 6 en Windows 10 y Ubuntu Mate 16.04.4
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

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

Mensaje 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
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
maxinz87
Mensajes: 11
Registrado: Lun Ago 13, 2018 9:49 pm

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

Mensaje por maxinz87 »

Muchas gracias por el consejo, voy a probar esto y les haré saber a que resultados he llegado.
OpenOffice 6 en Windows 10 y Ubuntu Mate 16.04.4
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

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

Mensaje 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 ! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
maxinz87
Mensajes: 11
Registrado: Lun Ago 13, 2018 9:49 pm

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

Mensaje 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!
OpenOffice 6 en Windows 10 y Ubuntu Mate 16.04.4
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

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

Mensaje 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! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

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

Mensaje 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
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
maxinz87
Mensajes: 11
Registrado: Lun Ago 13, 2018 9:49 pm

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

Mensaje 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.
OpenOffice 6 en Windows 10 y Ubuntu Mate 16.04.4
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

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

Mensaje por mauricio »

Con Python y usando hilos, es perfectamente factible tener un timer detrás, ejecutándose cada que uno quiera.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

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

Mensaje por RMG »

Hola,

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

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
maxinz87
Mensajes: 11
Registrado: Lun Ago 13, 2018 9:49 pm

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

Mensaje 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
OpenOffice 6 en Windows 10 y Ubuntu Mate 16.04.4
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

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

Mensaje por RMG »

Sí así es, siempre hay que asignarle una tabla, aunque solo sea un formulario para controles.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Responder