Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso. Para obtener más información o bien conocer cómo cambiar la configuración lea nuestra Política de cookies

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.

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.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.000.png

Haremos un clic en esta barra de herramientas sobre el botón Herramienta 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.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.001.png

Las dimensiones del botón podrán modificarse utilizando sus manejadores de color verde.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.002.png

Con el botón seleccionado haremos clic sobre el botón Herramienta 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 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.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.003.png

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.


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.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.004.png

Haciendo un clic sobre 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.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.005.png

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

Cuadro.Dialogo.Formulario.OpenOffice.Calc.006.png

Haremos un clic con el botón secundario sobre la pestaña del diálogo, y seleccionamos Renombrar para cambiar su nombre a Dialogo.

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 Herramienta Etiqueta
  • Tres campos de texto utilizando el botón Herramienta Campo de texto
  • Dos botones utilizando el botón Herramienta 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:

Cuadro.Dialogo.Formulario.OpenOffice.Calc.007.png

Guarda tu trabajo haciendo clic sobre Guardar.

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:

   '  *****  BASIC  *****
Option Explicit
   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 )
 
         .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 oHoja As Object, n As Long
   oHoja = ThisComponent.Sheets(nHoja)
   n = 0
   Do While True
      If oHoja.GetCellByPosition(0,n).GetFormula = "" Then
         Exit Do
      End If
      n=n+1
   Loop
   UltimaFila = n
End Function

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 :).

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 Macro

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 Aceptar.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.008.png

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

Cuadro.Dialogo.Formulario.OpenOffice.Calc.009.png

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

Cuadro.Dialogo.Formulario.OpenOffice.Calc.010.png

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.

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 Herramienta 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.

Cuadro.Dialogo.Formulario.OpenOffice.Calc.011.png

Prueba a completar los datos y pulsar sobre los botones para comprobar que funciona. Recuerda que los datos se almacenan en la Hoja2.

Por si hemos cometido algún error (nosotros o tú, quien sabe ;) ) aquí tienes un enlace para descargar el documento que hemos creado para este tutorial.

Si te ha gustado, puedes firmar en nuestro Libro de Visitas, o recomendarnos en Facebook, Twitter, Google+ o en tu red social favorita.

Modificada el 26 ago 2015 00:18.   Visitas: 60 755