lunes, 28 de febrero de 2022

Macros en LibreOffice Base (I)

LibreOffice

Antes de comenzar a trabajar, debemos haber leido este artículo, Configurar LibreOffice para programar y Comprender los sucecos en LibreOffice Base,  leido estos artículos, nos ponemos manos a la obra.

No pretendo que usuarias y usuarios después de este pequeño curso sobre programación de macros en LibreOffice salgan como expertas o expertos, la única intención es mostrar las posibilidades que tiene programar en LibreOffice mediante pequeños códigos.

 Para comenzar el trabajo crearemos una base de datos con datos mínimos, en mi caso he creado una tabla con los campos nombre, apellido1, apellido2 y fecha de nacimiento. A continuación he crado un  formulario con el asistente, hecho esto paso a explicar nuestra primera macro. 

Hacemos clic en la barra de menú Herramientas > Macros > Organizador de macros > BASIC.

Macros en LibreOffice Base (I)

Nos muestra el siguiente cuadro de diálogo, seleccionamos nuestra base de datos y desplegamos el contenido haciendo visible Standard, hacemos clic en el botón Nuevo.


Macros en LibreOffice Base (I)

Que nos mostrará el siguiente cuadro de diálogo, introducimos un nombre al módulo que va a contener nuestras macros, hacemos clic en el botón Aceptar.

Macros en LibreOffice Base (I)

Nos encontramos esto:

REM  *****  BASIC  *****

Sub Main

End Sub

La macro comienza con Sub Main, indica el comienzo de nuestra macro y es por donde va a comenzar a ejercutarse y termina con End Sub, es por donde finalizará la ejecución de esta macro, entre estas dos instrucciones puede introducir todo el código que desees.

Nosotros vamos a introducir uno muy simple como el que sigue:

MsgBox("Foco sobre el campo" , 1, "Mensaje")

Esta instrucción nos muestra el mensaje "Foco sobre el campo", con los botones Aceptar y Cancelar, que se lo indicamos con el número 1, para saber más ver este artículo , terminando con el título del cuadro de dálogo "Mensaje". Hemos terminado de definir nuestra macro, el siguiente paso será indicar donde se va a ejercutar. Para saber más sobre la instrucción MsgBox, vea este artículo Función MsbBox.


Nuestra intención es que al situar cursor sobre la caja de texto del campo Nombre, aparezca nuestro mensaje, para ello tenemos que asignar la macro a esta caja de texto y al evento o suceso Recepción de foco.

Pasamos a programarlo, activamos la caja de texto del campo Nombre, haciendo doble clic sobre la caja de texto, se activa los pivotes de control y nos muestra un cuadro de diálogo con varias pestañas, seleccionamos la pestaña Sucesos, para saber más sobre Sucesos vea este artículo, Sucesos.

Hacemos clic en el botón que se encuatra a la derecha del suceso Recepción de foco con unos puntos suspensivos, nos muesrta el siguiente cuadro de diálogo, hacemos clic en el botón Macro.

En el siguiente cuadro de texto seleccionamos la macro que hemos creado que se encuentra en mi caso  nuestrabasededatos.dbf  Standard > Module1, mostrándonos todas las macros dentro de este módulo, seleccionamos la que hemos creado, finalmente hacemos clic en el botón Aceptar.


Ya la tienes asignada al suceso con la macro que hemos creado, hacemos clic en el botón Aceptar.

Nos muesrta el cuadro de diálogo con los sucesos y nuesrta macro asignada, ya solo que da probarla.