martes, 22 de marzo de 2022

Macros en LibreOffice Base (II)

LibreOffice

Voy siguiendo un manual que encontré hace poco y el siguiente tema es definir variables.

Para las personas neófitas en la programación, les recomiendo este el artículo de la Wikipedia que no está mal, ver artículo.

En el siguiente paso, aprenderemos a definir las variables que vamos a utilizar a lo largo del desarrollo de nuestra macro.

Al comienzo de la rutina, la instrucción Dim se usa para definir las variables que se utilizarán en nuestros pequeños programa, repito que en ningún caso debemos de programar grandes funciones para crear nuestras macros. 

Aunque la programación en Basic no necesita las definiciones de las variables, al comienzo de nuestra andadura en programación, definiremos todas aquellas que nos hagan falta, para que no se convierta en un caos nuestra estilo de progamación.

Utilizaremos la opción "option Explicit" al principio de un módulo. Con esta opción se aseguran que todas las variables tengan que estar declaradas, si una variable no se ha declarado, al ejercutarse el programa mostrará un error y detendrá su ejecución.

Seguidamente muestro como quedaría la definición de una variable.

Recordamos que para que nuestro código funcione tiene que estar dentro de un comienzo de función y un final, quedaría como sigue.

option Explicit /* incluimo esta instrucción indicando que es obligatorio definir las variables

Sub asignar_variable /* comienzo de la función
Dim apellidos As String /* definción de nuestra variable
apellidos = "Pérez" /* asignación de valor a variable
End Sub /* final de la función

En este caso he definido una variable llamada "apellidos" de formato String, con esto estamos indicando la variable apellidos puede contener cualquier tipo de caracter, número, letras o caracteres especial.

Para asignar un valor a nuestra variable, quedaría como sigue.

apellidos = "Pérez"

A partir de este momento la variable apellidos contiene el valor  "Pérez".

Observe que la opción "option Explicit" se define fuera de la función, ya que va a afectar a todas las macros o funciones. Le animo a que haga pruebas poniendo fuera y dentro esta instrucción para ver los resultados.

Según transcurra nuestro curso, iremos desarrollando macros que necesitarán de variables de otros tipos, en este capítulo no nos pararemos a explicar todas.

Basic como otros lenguajes de programación tiene unas normas para los nombres que hay que seguir, los nombres de las variables deben comenzar siempre por un carácter alfabético, solo se pueden usar caracteres alfabéticos (A-Z o a-z), números y el carácter de subrayado o barra baja ( _ ). No se permiten caracteres especiales y aunque se permiten espacios bajo determinadas condiciones, es mejor evitarlos.

jueves, 3 de marzo de 2022

Comprender los sucecos en LibreOffice Base

LibreOffice

Antes de comenzar a trabajar, debemos haber leido este artículo, Configurar LibreOffice para programar, leido este, pasamos a dar cuenta del tema que nos trae, comprender el funcionamiento de sucesos o eventos.

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.

Alguna persona que está leyendo este artículo puede formularse la pregunta, ¿que ese eso de sucesos?, ¿para que sirven los sucesos?, ¿y si no quiero hacer uso de los sucesos?, vamos a intentar contestar algunas de estas preguntas.

Supongamos que tenemos abierto un formulario en nuestra base de datos y vamos a introducir algunos registros, haga clic sobre uno de los campos que puede rellenar, al hacer clic en este campo, aunque no se vea o no tenga señal de ello, se activa un suceso, en concreto el suceso "Recepsión de foco", en otras bases de datos se conocen los sucesos como eventos. 

Cuando pasa el cursor de un campo a otro se activan dos sucesos, el primer suceso que se activa es "Perdida de foco" del primer campo donde estaba el cursor situado y al situar el cursor en el siguiente campo se activa el suceso "Recepsión de foco".

Otro ejemplo que encontramos es al pulsar un botón que ha diseñado y definido en un formulario, ejecuta el suceso "Botón de ratón pulsado", de esto sacamos en conclusión que LibreOffice tiene un control muy alto de lo que sucede en el formulario mientras trabajamos, todo esto sucede aunque parezca que no pasa nada.

Esto nos lleva a pensar que los sucesos están ahí para aprovechar su potencia, solo nos queda que imaginar que a cada suceso puedo asignarle unas acciones que previamente he programado, para que cuando se active el suceso en cuestión, ejecute lo programado. 

No hay que decir, que las personas que no quieran hacer uso de estos sucesos o eventos, no tienen obligación de ellos y que pueden vivir tranquilamente con un diseño más básico de sus trabajos.

Pasando a la acción, abirmos el formulario que hemos creado en modo edición. Hacemos clic sobre uno de los campos y activamos los pivotes de control. Hacemos doble clic sobre el campo activo y nos muestra el siguiente cuadro de diálogo, en este hacemos clic en la pestaña Sucesos.

sucecos en LibreOffice Base

Se observa en este cuadro de diálogo todos los sucesos asginarle una macro. Para saber más de estos sucesos puede consultar este artículo en LibreOffice, Sucesos.

Antes de asignar un suceso tendrá que programar una macro, no entramos en este artículo en decidir el lenguaje en que va a hacerlo.

En este punto es cuando nos vamos a complicar un poco el diseño de nuestra base de datos. Para asginar una macro a un suceso, haga clic en el botón de puntos suspensivos que tiene el suceso a su derecha.

sucecos en LibreOffice Base

Le mostrará el siguiente cuadro de diálogo, como puede observar hay un Suceso que tiene asignado una macro que previamente se programo. Haga clic en botón Macro para asingar.

sucecos en LibreOffice Base

Nos muestra el siguiente cuadro de diálogo, en mi caso he seleccionado una macro que tenía definida en la base de datos, seleccionada la macro haga clic en el botón Aceptar.

sucecos en LibreOffice Base

Le vuelve a mostrar el cuadro de diálogo y haga clic en el botón Aceptar, ya tiene la macro asignada al suceso deseado.

sucecos en LibreOffice Base

Finalmente volvemos a nuestro formulario para probar el modo trabajo la macro que hemos asignado.

Al comienzo puede resultar un poco extraño o lioso, pero con paciencia lo conseguirá.







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.





 



jueves, 23 de enero de 2020

Configurar LibreOffice para programar

LibreOffice
Antes de comenzar a programar macros con LibreOffice, debe configurar algunos detalles, que aunque todavía están poco definidos siempre es bueno una pequeña ayuda.

Abra LibreOffice, en la barra de menú, haga clic en la opción Herramientas > Opciones, le mostrará el siguiente cuadro de diálogo.

jueves, 23 de noviembre de 2017

Artículos en Joomla con Pestañas y desplegables

Joomla
En estos momentos me encuentro desarrollando un sitio Web con el gestor de contenidos Joomla, he trabajado con varios gestores, pero Joomla me parece uno de los mejores, fácil si no te quieres complicar y complicado si te gusta la emoción de la programación.

jueves, 6 de julio de 2017

Bluefish para Linux Ubuntu

Bluefish
Los usuarios que nos dedicamos a la programación, siempre andamos buscando y probando productos para que nos ayuden a realizar de la forma mejor y rápida nuestro trabajo.

Bluefish es un buen ejemplo de editor para los usuarios que programan, es libre y se puede encontrar para Linux Ubuntu, ¿que más puede pedirse?, creo que lo siguiente será mostrar como se instala.


jueves, 8 de junio de 2017

Instalando Apache en Linux Ubuntu

Linux Ubuntu
El otro día trabajando tuve algún problema con Apache en Linux Ubuntu, entonces me decidí a instalar Apache por separado del resto de lo que suele ser normal, Apache, MySQL y PHP.

En este artículo os dejo como podéis instalar Apache en Linux Ubuntu.

Para comenzar abriréis una terminal en Linux Ubuntu e introducís este comando.

domingo, 23 de abril de 2017

Linux Ubuntu - Instalar Eclipse

Linux Ubuntu
En este nuevo capítulo aprenderemos a instalar el IDE Eclipse, por si algún usuario no siguió el anterior video tutorial, hemos incluido la instalación de Java en nuestro Linux Ubuntu, que será necesario para trabajar con el IDE Eclipse, para terminar el video tutorial instalaremos Eclipse.


sábado, 22 de abril de 2017

Linux Ubuntu - Instalar Java y testearlo

Linux Ubuntu
En esta ocasión instalaremos Java en nuestro Linux Ubuntu, es muy sencillo y no debemos tener mucho problema para probar que se instalo de forma correcta.

La instalación de Java la utilizaremos en el futuro para utilizar el IDE Eclipse.

miércoles, 15 de marzo de 2017

Eclipse y PyDev para Python

Python

Después de probar algunos IDE's me he decidido por Eclipse para comenzar a programar con Python. Mi objetivo es publicar sobre los problemas que vaya superando a la misma vez que aprendo a programar en Python.

En este capítulo aprenderemos a instalar y configurar PyDev en Eclipse para programar en Python.

Lo primero que haremos será descargar e instalar Eclipse y el segundo paso se paso será descargar e instalar Python. No vamos a detallar como se instalan estos dos programas ya que es muy sencillo y básico.

miércoles, 18 de enero de 2017

borrar contenido de una tabla con SQL en LibreOffice Base (XXXII)

LibreOffice Base
En este nuevo capítulo aprenderemos a borrar el contenido de una tabla en LibreOffice Base mediante instrucciones en SQL. Es conveniente que haga copia de seguridad de la tabla con la que vaya a realizar la práctica, ya que un error puede ocasionar una perdida irreparable.

Observe la siguiente instrucción:

DELETE FROM "Usuarios2";

Esta instrucción aunque corta puede resultar muy efectiva, ya que elimina todo el contenido de una tabla.

jueves, 12 de enero de 2017

actualizar contenido añadiendo un criterio de selección con SQL en LibreOffice Base (XXXI)

LibreOffice Base
En este capítulo estudiaremos la instrucción SQL para actualizar una tabla contenida en una base de datos LibreOffice Base, añadiéndole la selección por un criterio.

Observe la siguiente instrucción:

UPDATE "Usuarios" SET "Población" = 'Alicante' 
WHERE "Población" = 'Valencia' ;

miércoles, 11 de enero de 2017

actualizar contenido con SQL en LibreOffice Base (XXX)

LibreOffice Base
Seguimos subiendo el nivel de nuestros conocimientos en SQL dentro de una base de datos diseñada con LibreOffice Base y pasamos a estudiar como actualizar columnas en este lenguaje.

Queda claro que muchos de lo aprendido tiene solución mediante la parte gráfica de LibreOffice Base, pero nuestra intención es aprender y consolidad conocimientos en SQL con una base de datos diseñada en LibreOffice Base.

sábado, 7 de enero de 2017

relaciones con SQL en LibreOffice Base (XXIX)

LibreOffice Base
Hemos dedicado los primeros capítulos de este curso a repasar los comandos o instrucciones mas sencillo y simples de SQL que podemos utilizar en LibreOffice Base, debemos seguir progresando en nuestros conocimientos y ampliando lo que debemos considerar básicos, para llegar a un nivel aceptable de los mismos y estudiar algunos aspectos SQL que nos facilitarán el mantenimiento de nuestras bases de datos.

viernes, 6 de enero de 2017

subconsultas con SQL en LibreOffice Base (XXVIII)

LibreOffice Base
Observe la siguiente instrucción:

SELECT * FROM "Especialistas" WHERE "ID"
   NOT IN
   (SELECT "Especialista" FROM "Clientes");

Una instrucción SELECT dentro de otra instrucción SELECT, esto es una subconsulta.

lunes, 2 de enero de 2017

alterar CONSTRAINT de una tabla con SQL en LibreOffice Base (XXVII)

LibreOffice Base
Observe la siguiente instrucción:

ALTER TABLE "Clientes"
ALTER COLUMN "Domicilio";

Hemos creado un campo Domicilio en la tabla Clientes, en esta instrucción SQL no le hemos incluido ninguna restricción ni CONSTRAINT, para luego añadírsela desde LibreOffice Base.

sábado, 31 de diciembre de 2016

alterar restricciones de una tabla con SQL en LibreOffice Base (XXVI)

LibreOffice Base
Observe la siguiente instrucción:

ALTER TABLE "Clientes"
ALTER COLUMN "Fecha";

Es una instrucción SQL que al ejecutarla añade un campo Fecha  dentro de nuestra tabla Clientes de LibreOffice Base.

Hemos olvidado el añadir una restricción, deseamos que este campo se autorellene con la fecha actual, en este caso con TODAY.

eliminar campos de una tabla con SQL en LibreOffice Base (XXV)

LibreOffice Base
Observe la siguiente instrucción:

ALTER TABLE "Clientes" ADD 
COLUMN "Fecha fin contrato" DATE DEFAULT TODAY;

Es una instrucción SQL, que al ejecutarla añade un campo Fecha fin contrato con unas restricciones dentro de nuestra tabla Clientes de LibreOffice Base.

Lo que deseamos hacer es eliminar este campo mediante una instrucción SQL.

miércoles, 28 de diciembre de 2016

cambiar el nombre de una tabla con SQL en LibreOffice Base (XXIV)

LibreOffice Base
El cambio de nombre de una tabla por otra mas adecuado es algo común en LibreOffice Base, en este caso utilizaremos la instrucción es ALTER TABLE de SQL.

cambiar el nombre de campo en una tabla con SQL en LibreOffice Base (XXIII)

LibreOffice Base
Con el paso del tiempo los campos pueden ir cambiando de uso, en este momento es cuando el nombre del campo y su uso sufren de cierta inconsistencia, será necesario cambiar el nombre del campo en nuestra tabla en LibreOffice Base, en este caso la instrucción es ALTER TABLE de SQL.