Formularios
Formularios y cuadros de diálogo
Además de las formas simples de interface MsgBox e InputBox, LibreOffice cuenta con otros dos recursos: los formularios y los cuadros de diálogo.
Los formularios son medios para facilitar la interacción usuario-programa, empleados fundamentalmente en la fase Input. A diferencia del cuadro de diálogo (en adelante, Diálogo, para abreviar), el formulario se puede emplear tanto como funcionalidad (1) como asociado a un script. En ambos casos, el primer paso consiste en crear el formulario (funcionalidad) desde el documento.
En esta entrada trataré sobre el acceso al formulario mediante código OOo Basic, útil para trabajar con Writer, Calc e Impress. Los formularios de Base (base de datos) quedan fuera de nuestros objetivos por su especificidad.
El primer paso, como dije antes, es crear el formulario desde el documento. Es posible que esta funcionalidad no está directamente disponible (2), por lo que necesitaremos activar las opciones Ver | Barra de herramientas | Diseño de formularios (que muestra sus controles) y Ver | Barra de herramientas | Controles de formularios , que muestra las herramientas de los controles. A partir de aquí lo que debemos hacer es seleccionar el icono Modo diseño (3)
Una vez creado el formulario, para trabajar sobre él mediante OOo Basic deberemos trabajar desde el IDE para acceder a la capa gráfica getDrawPage() que es donde se sitúan los formularios (4).
El recorrido que deberemos hacer para acceder a un formulario depende del soporte (o servicio) en el que esté creado, ya que no es lo mismo trabajar desde Writer que hacerlo desde Calc. Un script que nos permita acceder a un formulario creado en un documento Writerrequiere realizar el siguiente recorrido, en el que se diferencian cuatro pasos, que precisan contar con una serie de variables de tipo Object (5): Dim oDocumento As Object, oCapaDib As Object, oForms As Object, oForm As Object
- Paso 1. Acceso al documento:
oDocumento = ThisComponent - Paso 2. Acceso a la capa gráfica:
oCapaDib = oDocument.getDrawPage() - Paso 3. Acceso al conjunto de formularios:
oForms = oCapaDib.getForms() - Paso 4. Acceso al formulario concreto por el índice o por el nombre:
oFormulario = oFormularios.getByIndex()-> Acceso por el índiceoFormulario = oFormularios.getByName("frmActua")-> Acceso por el nombre
El acceso a un formulario creado sobre Calc requiere también seguir una serie de pasos (cinco) que se basan en un conjunto de variables tipo Object por las mismas razones que expusimos antes (ver nota 5)
Dim oDocumento As Object, oHojaActiva As Object, oPaginaDibujo As Object
Dim oFormularios As Object, oFormulario As Object
'Los pasos a seguir son los siguientes:
oDocumento = ThisDocument ' Paso 1. Acceso al documento
oHojaActiva = oDocumento.getCurrentController.getActiveSheet() 'Paso 2. Acceso a la hoja activa
oPaginaDibujo = oHojaActiva.getDrawPage() ' Paso 3. Acceso a la capa gráfica
oFormularios = oPaginaDibujo.getForms() ' Paso 4. Acceso al conjunto de formularios:
'Paso 5. Acceso al formulario concreto, el cual puede ser por índice o por el nombre:
oFormulario = oFormularios.getByIndex() 'Acceso por el índice
oFormulario = oFormularios.getByName(""frmCalcEj") 'Acceso por el nombre
Podemos considerar lo anterior como primera fase del proceso, que finaliza con el acceso a los contenidos que introduce el usuario en los controles del formulario. Dedicaremos a ello la entrada siguiente.
1 Por funcionalidad entiendo cualquier recurso que puede ser desarrollado desde la interface general del servicio (>Writer, por ejemplo), sin necesidad de acceder al IDE. En Writer los formularios se crean en la capa "Dibujo" del documento. Para crear un Diálogo es necesario acceder al IDE y crearlo específicamente de forma manual. Desde esta perspectiva, un formulario es un objeto más accesible y simple que un diálogo.
2 Es posible que esta sea una de las causas de su escaso uso. Contribuye a ello que en los documentos prescriptivos (que no hacen otra cosa que seguir la costumbre consolidad por el uso) se empleen tablas como base para simular la apariencia de formulario.
3 Este procedimiento implica activar el icono de la barra Controles de formulario. Este mismo icono está también disponible en la barra del Diseño de formulario. Activarlo también supone acceder a la definición del formulario y a otras utilidades, incluyendo la introducción de campos (comando Añadir campo), que también activa la barra Controles de formulario.
4 Tanto en Writer como en Calc, los formularios se ubican en la capa gráfica ("de dibujo"), que se superpone a la capa en la que escribimos en el documento (en Writer) o en la que se encuentran las celdas (en Calc).
5 Tanto el documento como la capa gráfica y los formularios son objetos, dado que LibreOffice es un programa creado desde del paradigma de la Programación Orientada a Objetos (POO).
No hay comentarios:
Publicar un comentario
Comenta esta entrada