macros en libreoffice

12
MACROS EN LIBREOFFICE 1 Prof. Elar Edgar, HANCCO QUISPE 1. Cuadro de diálogo (formulario) para OpenOffice Calc En este Cómo se hace vamos a mostrar paso a paso como se puede crear un cuadro de diálogo mediante el editor Basic de OpenOffice para introducir datos en una hoja de Calc. Para poder llevar a buen puerto este tutorial, empezaremos por crear un nuevo documento de Calc, que guardaremos con el nombre Cuadro de diálogo Calc. En la primera de sus hojas insertaremos un botón que nos permitirá abrir el cuadro de diálogo. Los datos que introduciremos en él quedarán almacenados en la Hoja2 del documento. No se va a crear una aplicación completa. El objetivo de este tutorial es introducir al usuario en la creación y uso de los cuadros de diálogo en Calc, lo que le permitirá construir fácilmente sencillas aplicaciones para gestionar pequeñas o grandes cantidades de datos, ampliando según lo aquí aprendido su documento de Calc con más diálogos, en función de sus necesidades. 2. Insertar un botón en la hoja Empezaremos insertando un botón en la Hoja1 del documento que permitirá abrir el cuadro de diálogo que, a modo de formulario flotante, diseñaremos a continuación. Para ello, si no está visible, mostraremos la barra de herramientas Campos de control de formulario desde el menú Ver > Barras de herramientas.

Upload: renequispesoncco

Post on 26-Dec-2015

50 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Macros en Libreoffice

MACROS EN LIBREOFFICE

1

Prof. Elar Edgar, HANCCO QUISPE

1. Cuadro de diálogo (formulario) para OpenOffice Calc

En este Cómo se hace vamos a mostrar paso a paso como se puede

crear un cuadro de diálogo mediante el editor Basic de OpenOffice para

introducir datos en una hoja de Calc.

Para poder llevar a buen puerto este tutorial, empezaremos por crear un

nuevo documento de Calc, que guardaremos con el nombre Cuadro de

diálogo Calc.

En la primera de sus hojas insertaremos un botón que nos permitirá abrir

el cuadro de diálogo. Los datos que introduciremos en él quedarán

almacenados en la Hoja2 del documento.

No se va a crear una aplicación completa. El objetivo de este tutorial es

introducir al usuario en la creación y uso de los cuadros de diálogo en

Calc, lo que le permitirá construir fácilmente sencillas aplicaciones para

gestionar pequeñas o grandes cantidades de datos, ampliando según lo

aquí aprendido su documento de Calc con más diálogos, en función de

sus necesidades.

2. Insertar un botón en la hoja

Empezaremos insertando un botón en la Hoja1 del documento que

permitirá abrir el cuadro de diálogo que, a modo de formulario flotante,

diseñaremos a continuación.

Para ello, si no está visible, mostraremos la barra de herramientas

Campos de control de formulario desde el menú Ver > Barras de

herramientas.

Page 2: Macros en Libreoffice

MACROS EN LIBREOFFICE

2

Prof. Elar Edgar, HANCCO QUISPE

Haremos un clic en esta barra de herramientas sobre el botón Botón. El

cursor del ratón se mostrará como una pequeña cruz negra con un

pequeño rectángulo en su extremo inferior derecho.

Sobre el lugar deseado de la hoja de cálculo, haremos un clic y arrastrar,

definiendo de esta forma las dimensiones del botón.

Las dimensiones del botón podrán modificarse utilizando sus

manejadores de color verde.

Con el botón seleccionado haremos clic sobre el botón Control de la

barra de herramientas Campos de control de formulario, o bien,

haremos un clic con el botón secundario del ratón sobre el botón, y

desde el menú contextual seleccionamos la opción Campo de control....

Se mostrará el cuadro de diálogo Propiedades: Botón.

En éste, modificaremos el Título escribiendo Abrir el diálogo desde su

pestaña General. De esta forma modificamos el texto que muestra el

Page 3: Macros en Libreoffice

MACROS EN LIBREOFFICE

3

Prof. Elar Edgar, HANCCO QUISPE

botón recién insertado. Si lo deseas, puedes modificar otras propiedades

del botón, como por ejemplo, la Fuente utilizada para el texto mostrado,

sus dimensiones mediante las propiedades Ancho y Altura, la

Alineación horizontal y la Alineación vertical del texto mostrado, el

Color de fondo del botón, incluso insertar una pequeña imagen (en

formato bmp, jpg, png, etc) a modo de icono en el mismo mediante la

propiedad Imagen.

Si quieres conocer más acerca de otras de las propiedades que puedes

definir para el botón, pulsa la tecla F1 mientras esté activado el diálogo.

Por el momento, podemos cerrar este diálogo, al que volveremos más

tarde.

Page 4: Macros en Libreoffice

MACROS EN LIBREOFFICE

4

Prof. Elar Edgar, HANCCO QUISPE

3. Crear el cuadro de diálogo

Accedemos al editor de macros IDE Basic desde el menú Herramientas

> Macros > Organizar macros... > OpenOffice.org Basic.

Localizamos el contenedor de macros de nuestro documento. Haciendo

clic en el + que antecede a su nombre, se mostrará la librería Standard,

que por el momento está vacía, y que seleccionamos con un clic sobre

su nombre.

Haciendo un clic sobre el botón Nuevo creamos un nuevo módulo Basic;

se presentará un diálogo sugiriendo el nombre del nuevo módulo como

Module1', nombre que aceptamos porque nos es indiferente.

Page 5: Macros en Libreoffice

MACROS EN LIBREOFFICE

5

Prof. Elar Edgar, HANCCO QUISPE

Se mostrará el editor IDE Basic. Justo en la parte inferior del mismo, se

muestra una pestaña con el nombre Module1. Haremos clic con el botón

secundario del ratón sobre la pestaña, y del menú contextual

seleccionamos la opción Insertar > Diálogo BASIC.

El editor IDE Basic presentará una nueva pestaña, de nombre Dialog1,

con un pequeño diálogo dibujado en el centro de la misma, y se

mostrará también la barra de herramientas flotante Cuadro de

herramientas. Si no se muestra, puedes utilizar la opción que

encontrarás en el menú Ver > Barras de herramientas

Haremos un clic con el botón secundario sobre la pestaña del diálogo, y

seleccionamos Renombrar para cambiar su nombre a Dialogo.

Page 6: Macros en Libreoffice

MACROS EN LIBREOFFICE

6

Prof. Elar Edgar, HANCCO QUISPE

4. Insertar los controles en el diálogo

Utilizando los botones disponibles en la barra de herramientas Cuadro

de herramientas y siguiendo el mismo método que hemos utilizado para

insertar el botón en la hoja de Calc (clic y arrastrar) insertaremos:

Tres etiquetas utilizando el botón Etiqueta

Tres campos de texto utilizando el botón Campo de texto

Dos botones utilizando el botón Botón

Cambiaremos los textos de las etiquetas y de los botones siguiendo el

mismo método que con el botón insertado en la hoja de Calc (si bien,

para acceder al diálogo de propiedades, el botón ahora se llama

Propiedades, al igual que la opción del menú contextual del control).

Haciendo un clic justo sobre el borde del diálogo podemos editar sus

propiedades; así, asignaremos como Título de nuestro cuadro de

diálogo Agregar contactos; una vez hechos todos estos cambios,

deberemos obtener un resultado similar al mostrado en la siguiente

imagen:

Page 7: Macros en Libreoffice

MACROS EN LIBREOFFICE

7

Prof. Elar Edgar, HANCCO QUISPE

Guarda tu trabajo haciendo clic sobre el botón Guardar.

5. El código Basic necesario

Haz clic sobre la etiqueta del módulo Module1. Teclea o mejor, copia y

pega, el siguiente código sustituyendo el código existente en el módulo:

Rem ***** BASIC *****

Dim oDialogo As Object

' Abre el diálogo de nombre Dialogo

Sub Mostrar_Dialogo

DialogLibraries.LoadLibrary("Standard")

oDialogo=Createunodialog(DialogLibraries.Standard.Dialogo)

oDialogo.Execute()

End Sub

' Cierra el diálogo

Sub Cerrar_Dialogo

oDialogo.EndExecute()

Msgbox "Gracias por la visita. Vuelve pronto !!!", 64, "Diálogo

en Calc"

End Sub

' Almacena los datos en la siguiente línea disponible de la Hoja2, y

vacía los datos del formulario

Sub Guardar_Datos

Dim xDato As Variant, nRow As Long

If Msgbox( "¿Deseas guardar los cambios realizados?", 33,

"Diálogo en Calc" ) = 1 Then

nRow = UltimaFila( 1 )

With oDialogo.Model

xDato = .TextField1.Text

Thiscomponent.Sheets(1).getCellByPosition(0,nRow).SetFormula(

xDato )

xDato = .TextField2.Text

Thiscomponent.Sheets(1).getCellByPosition(1,nRow).SetFormula(

xDato )

xDato = .TextField3.Text

Thiscomponent.Sheets(1).getCellByPosition(2,nRow).SetFormula(

xDato )

Page 8: Macros en Libreoffice

MACROS EN LIBREOFFICE

8

Prof. Elar Edgar, HANCCO QUISPE

.TextField1.Text = ""

.TextField2.Text = ""

.TextField3.Text = ""

End With

End If

End Sub

' Calcula cual es la primera línea disponible en la hoja

Function UltimaFila( nHoja As Integer ) As Long

Dim Hoja As Object, n As Long

Hoja = Thiscomponent.Sheets(nHoja)

n = 0

Do While True

If Hoja.getCellByPosition(0,n).GetFormula = "" Then

Exit Do

End If

n=n+1

Loop

UltimaFila = n

End Function

6. Guarda tu trabajo.

No vamos a explicar que hace cada subrutina; sus nombres son

suficientemente explicativos. Cómo lo hacen, tampoco lo explicamos. No

es el objetivo de este tutorial. Como cualquier código, es susceptible de

ser mejorado. Esperamos tus aportaciones :).

7. Enlazar los controles al código

Nos queda muy poco trabajo por hacer. Vamos a enlazar los controles

del diálogo al código. Haz clic sobre la pestaña del diálogo Dialogo.

Selecciona el primer botón, y muestra la ventana Propiedades. En la

pestaña Acontecimientos haz clic sobre el botón con tres puntos

mostrado al final de la línea correspondiente al evento Botón del ratón

pulsado.

Se mostrará el diálogo Acción asignada. Haz clic ahora sobre el botón

Macro

Page 9: Macros en Libreoffice

MACROS EN LIBREOFFICE

9

Prof. Elar Edgar, HANCCO QUISPE

Se mostrará el diálogo Selector de macro. Selecciona el módulo

Cuadro de diálogo Calc.ods > Standard > Module1 en la lista

Biblioteca. En la lista Nombre de macro selecciona la macro

Guardar_Datos. Haz clic sobre el botón Aceptar.

El diálogo Acción asignada se muestra ahora así. Haz clic sobre el

botón Aceptar

Page 10: Macros en Libreoffice

MACROS EN LIBREOFFICE

10

Prof. Elar Edgar, HANCCO QUISPE

El diálogo Propiedades:CommandButton se muestra como ves en la

imagen.

Page 11: Macros en Libreoffice

MACROS EN LIBREOFFICE

11

Prof. Elar Edgar, HANCCO QUISPE

Selecciona el segundo botón, y realiza los mismos pasos para asignar la

macro Cerrar_Dialogo. Cierra la ventana Propiedades y guarda tu

trabajo.

Cierra el editor IDE Basic. Ya hemos terminado con la parte dura. Nos

queda un último detalle.

8. Enlazar el botón de la hoja al diálogo

Ahora enlazaremos el botón que situamos en la hoja de cálculo a la

macro que abre el diálogo. Desde la barra de herramientas Campos de

control de formulario activa el Modo diseño si no está activado, y

selecciona con un clic el botón.

Abre el diálogo Propiedades:Botón desde el botón Control de la

misma barra de herramientas. Activa la pestaña Acontecimientos.

Asignaremos por el mismo procedimiento que vimos antes la macro

Mostrar_Dialogo al evento Botón del ratón pulsado.

Guarda tu trabajo.

Desde la barra de herramientas Campos de control de formulario

desactiva el Modo diseño.

Haz un clic sobre el botón. Si has seguido fielmente los pasos, y

nosotros lo hemos explicado correctamente, deberás ver el cuadro de

diálogo sobre la hoja de cálculo.

Page 12: Macros en Libreoffice

MACROS EN LIBREOFFICE

12

Prof. Elar Edgar, HANCCO QUISPE

Prueba a completar los datos y pulsar sobre los botones para comprobar

que funciona. Recuerda que los datos se almacenan en la Hoja2.