Вы находитесь на странице: 1из 17

IG18.

Bases de Datos Prcticas a Curso 2003/2004

Sesin 17. Acceso a bases de datos con OpenOce.org o

Objetivos
Ser capaz de acceder desde OpenOce.org a una base de datos almacenada en un servidor porsgresql utilizando odbc. Ser capaz de trabajar con tablas y consultas desde el entorno de OpenOce.org. Ser capaz de denir formularios para visualizar e introducir nuevos datos. Ser capaz de denir informes sobre una base de datos.

Empezando la sesin o
Para poder realizar esta sesin hay que arrancar el ordenador del aula con la opcin Linux y usuario autenticado o o en anubis. Crea un directorio de trabajo con el nombre de la sesin de prcticas dentro de tu directorio IG18 de o a anubis para almacenar todos los documentos. Si quieres realizar la prctica en tu propio ordenador, debers congurar ODBC y PostgreSQL. Para realizar a a todas estas tareas puedes consultar los manuales publicados en la web de la asignatura. Lo que se va a ver en esta sesin es vlido para la versin 1.1 de OpenOce.org, sin embargo, practicamente o a o todo, salvo el desarrollo de informes, puede hacerse tambin con la versin 1.0. e o Para trabajar en el aula con la versin 1.1 de OpenOce.org hay que ejecutar, slo la primera vez, la siguiente o o instruccin: o /usr/local/OpenOffice-1.1.1/setup con lo que se instalarn en el HOME los archivos necesarios para la ejecucin de OpenOce.org 1.1.1. Hay a o que pulsar en todas las ventanas el botn Siguiente o similar y seleccionar la opcin en modo estacin de trabajo, o o o como directorio de instalacin se puede seleccionar el que aparece por defecto. o A partir de este momento se puede ejecutar la versin 1.1.1 de OpenOce.org ejecutando la orden soffice. o A lo largo de la sesin se muestran imgenes de algunos botones que se deben utilizar, estas imgenes son slo o a a o a modo de ejemplo ya que pueden cambiar en funcin de la versin de OpenOce.org que se est utilizando. Cabe o o e recordar que posicionando el ratn sobre un botn se muestra un pequeo texto que indica su funcin. o o n o 1

1.

Introduccin o

Para desarrollar aplicaciones sobre bases de datos se puede utilizar lenguajes de programacin como C o C++, o python, pascal, . . . La programacin con estos lenguajes permite una gran exibilidad y rendimiento. Sin embargo, o es bastante fcil cometer errores (bugs) o no programar ecientemente. Esta es una de las razones por las que se han a desarrollado generadores de aplicaciones, de formularios y de informes, que hacen que el desarrollo de aplicaciones sobre bases de datos sea mucho ms fcil, able y rpido. a a a Existen muchos programas informticos que facilitan el desarrollo de aplicaciones con bases de datos. Algunos a son espec cos de un SGBD en concreto mientras que otros sirven para desarrollar aplicaciones para distintos SGBD. Cabe destacar, entre otros, los siguientes: mysql-navigator para mysql. pgaccess para postgresql. Forms para Oracle aunque tambin se puede utilizar con otros SGBD. e OpenOce.org permite denir formularios e informes para cualquier SGBD que soporte ODBC. Es multiplataforma y por tanto, los formularios denidos, se pueden utilizar desde distintos sistemas operativos. mergeant: Front-end para administradores y desarrolladores de Bases de Datos en el entorno gnome. Rekall Proyecto similar al anterior para el entorno KDE y Windows. Knoda Otro front-end para el entorno KDE MS access dispone de generadores de informes y formularios. GNU Enterprise (http://www.gnu.org/software/gnue/project/project.html), es un conjunto de herramientas para el diseo de aplicaciones para bases de datos. n Koce Kexi (http://www.koffice.org/kexi/) es un entorno integrado para administradores de bases de datos en el entorno KDE. Sirve para crear bases de datos y para la insercin, modicacin y cosulta de datos. o o ... OpenOce.org no posee un gestor de base de datos, pero dispone de un componente muy potente para el acceso a diversas bases de datos externas que puede as integrarse dentro de la interfaz o los documentos de OpenOce.org. El modelo de integracin de datos de OpenOce.org es muy peculiar y ha permanecido oculto para muchos usuarios. o En esta prctica se tratarn de aclarar algunas de estas caracter a a sticas que permiten crear sencillas aplicaciones de bases de datos que, por ser OpenOce.org multiplataforma, pueden utilizarse en distintos sistemas operativos (linux, MS Windows, Solaris, . . . ). OpenOce.org, como ya se ha dicho, no es una base de datos ni un SGBD. Muchos gestores de bases de datos no ofrecen una interfaz grca al usuario para acceder a los datos, suelen trabajar en background como procesos a servidores que responden a peticiones de otros programas para almacenar o recuperar datos. Estos programas, llamados clientes, pueden tener una interfaz grca que facilita al usuario el acceso a los datos. a OpenOce.org es un cliente y como tal puede entablar una relacin cliente/servidor con diferentes tipos de o servidores de bases de datos. La conexin entre un cliente y un servidor se establece normalmente con la ayuda de o programas denominados connectors (conectores). Cada servidor de bases de datos tiene sus propios conectores. Para poder utilizar un determinado servidor con OpenOce.org es necesario congurar un conector para l. Los e SGBDR son las fuentes de datos ms potentes que puede utilizar OpenOce.org, pero puede utilizar otros tipos a ms simples. a Los tipos de fuentes de datos que, por el momento, puede utilizar son: Servidores que soportan Java Database Connectivity, JDBC. Servidores que soportan Open Database Connectivity, ODBC (Oracle, postgresql, mysql, access, sqlServer, . . . ). 2

Servidores MySQL. Ficheros en formato de dbase. Ficheros en formato de Adabas. Ficheros de texto. Hojas de clculo. a Libretas de direcciones. OpenOce.org ofrece las siguientes funcionalidades: Registro de bases de datos, lo cual permite a OpenOce.org conectarse a las fuentes de datos. Creacin de tablas utilizando una sencilla interfaz grca. o a Diseo de consultas que permite extraer informacin de la base de datos en base a condiciones especicadas n o por el usuario. OpenOce.org posee un diseador grco de consultas que simplica la creacin de las mismas, n a o aunque tambin es posible denirlas utilizando directamente SQL. e Diseo de formularios, los formularios se utilizan para mostrar e introducir datos de un modo amigable. n Se pueden utilizar para asegurar que el usuario introduce los datos apropiados (validacin) y ocultan la o complejidad de la aplicacin subyacente (es conveniente que los usuarios nales no trabajen directamente o con las tablas en las que pueden hacer daos irreparables). OpenOce.org posee una herramienta para crear n formularios, aunque se pueden crear de forma manual. Diseo de informes que permiten dar formato a los datos extra n dos de la base de datos para crear documentos impresos. Los informes se crean mediante una herramienta espec ca. Diseo de macros que permiten automatizar parte de la aplicacin. Los macros se pueden crear grabando n o una serie de pasos (acciones) realizados o utilizando el editor de macros. Los macros se pueden ejecutar como consecuencia de la ocurrencia de eventos en la interfaz. Creacin de mensajes de correo personalizados a partir de los datos en la base de datos. o

2.

ODBC y postgresql

Los ejercicios que se van a realizar en esta prctica han de utilizar la base de datos ig18oo que se encuentra en a el servidor postgreSQL de anubis. Para realizar la conexin se utilizar ODBC al igual que en la sesin anterior. o a o Del mismo modo que se hizo en aqulla, para que la conexin sea segura se utilizar un tunel ssh. e o a A continuacin se indican los pasos para congurar ODBC y el tnel ssh. Si quieres ms informacin puedes o u a o consultar el bolet de la sesin 16. n o 1. Crear un tnel ssh entre el ordenador local y anubis utilizando los puertos 5432: u ssh -fN -L 5432:anubis.uji.es:5432 alxxxxx@anubis.uji.es 2. Crear el chero .odbc.ini que ha de contener los datos de la conexin (recuerda que es conveniente que tenga o permisos de lectura slo para el propietario). o .odbc.ini [facturas] Driver Database Servername = PostgreSQL = ig18oo = 127.0.0.1 3

UserName Password Port

= alxxxxxx = ppppppp = 5432

3.

probar la conexin utilizando el isql o isql -v facturas Ejercicio 1: Crear una conexin odbc con la base de datos ig18oo de anubis utilizando un tunel ssh. o

3.

Fuentes de datos

Como ya se ha comentado anteriormente las fuentes de datos pueden ser de distintos tipos. En sta y las prxima e o secciones se utilizar la conexin denida en el apartado 2. a o OpenOce.org1.1.1/user/registry/data/org/openoce/Oce/DataAccess.xcu Las fuentes de datos denidas en OpenOce.org se almacenan en el chero ~/OpenOffice.org1.1.1/user/ registry/data/org/openoffice/Office/DataAccess.xcu, donde OpenOffice.org1.1.1 depender del sistema a operativo y de la versin de OpenOce.org que se utilice. Si se quiere copiar las fuentes de datos a otro ordenador o (o usuario) hay que copiar este chero (o las partes que nos interesen de l). e

3.1.

Administrar fuentes de datos

Para crear o modicar una fuente de datos se debe abrir la ventana de administracin de fuentes de datos o (gura 1). Para ello se puede seleccionar la opcin Herramientas->Fuentes de datos ... o

Figura 1: Ventana de administracin de fuentes de datos o En la columna de la derecha aparecen las fuentes de datos denidas por el usuario. Por defecto OpenOce.org tiene una fuente de datos denida, denominada Bibliography, para almacenar referencias bibliogrcas. a 4

En la parte superior derecha existe un botn ( o ) que permite denir nuevas fuentes de datos. Para ello, se debe denir un Nombre, el tipo de base de datos que cmo se comento en el apartado 1 puede ser o ODBC, JDBC, . . . y por ultimo la fuente de datos URL que en el caso de una conexin ODBC ser algn DSN o a u que se ha denido (en el anterior apartado facturas). En la parte superior de la ventana existen una serie de pestaas que permiten realizar distintas acciones sobre n las fuentes de datos: General, desde esta pestaa se pueden denir y modicar fuentes de datos. n TIPO, esta pestaa cambia en funcin del tipo de fuente de datos que se est utilizando y permite denir n o e determinados parmetros sobre la conexin. Por ejemplo en las conexiones ODBC se puede denir un usuario a o y de esta forma quitar el usuario y el password del chero .odbc.ini mejorando de esta forma la seguridad del sistema1 . Tablas, permite crear y modicar tablas de la base de datos asociada a la fuente de datos. Consultas, permite denir consultas que pueden afectar a una o varias tablas de la fuente de datos. Vinculos, permite asociar documentos (que pueden contener formularios o informes) a la fuente de datos. Los botones en la parte inferior permiten nalizar, guardar los cambios o cancelarlos. Tambin se puede solicitar e ayuda.

3.2.

Trabajo con tablas

Una vez que se ha creado una fuente de datos, se puede empezar a trabajar con ella. Para crear nuevas tablas o modicar las existentes se utiliza la pestaa Tablas. En la gura 2 se pueden ver el aspecto de dicha pestaa. n n Los tres botones que se ven permiten respectivamente crear nuevas tablas , modicar o borrar las existentes.

Figura 2: Ventana de administracin de fuentes de datos o


1 Dado que en PHP no se puede denir un DSN de esta forma, se utilizar el chero .odbc.ini del mismo modo que en anteriores a sesiones.

Cabe destacar en este punto que OpenOce.org podr realizar los cambios que le sean permitidos en el SGBD a al usuario denido en la conexin ODBC (o del tipo que sea). o Ejercicio 2: Crear una nueva tabla (pedidosalxxxx) con tres atributos (codcli, codart,fecha) y denir su clave primaria (para ello selecciona los campos que la forman y con el botn derecho del ratn selecciona la opcin o o o llave primaria). Al guardarla, hay que indicar el esquema public. F jate que no es posible denir las claves ajenas ni, por tanto, las reglas de borrado y modicacin. o

3.3.

Trabajo con fuentes de datos

Una vez creadas las fuentes de datos, es posible acceder a los datos de la misma. Para ver las fuentes de datos disponibles, desde cualquier documento de OpenOce.org basta con pulsar la tecla F4 o utilizar la opcin o Ver->Fuentes de Datos. La gura 3 muestra un ejemplo de una fuente de datos y el contenido de una de las tablas.

Figura 3: Vista de las fuentes de datos

Como puede verse en la parte izquierda se muestran las tablas de la base de datos y en la derecha, en un formato similar al de una hoja de clculo, los datos de la tabla seleccionada. a La barra de botones en la parte superior

permite realizar bsquedas de datos, ordenarlos, ltrarlos, . . . Si se pone el puntero del ratn sobre los botones u o se muestra un pequeo comentario que explica su funcin. n o Por ejemplo, los ltros ( ) permiten visualizar slo los registros que cumplan alguna condicin denida utilio o ) utilizando distintas opciones.

zando un sencillo formulario. Tambin se puede ordenar los datos ( e La barra en la parte inferior

permite moverse por los registros de la tabla seleccionada. De esta forma, si se tienen los permisos correspondientes, se pueden modicar los datos de la tabla seleccionada, o aadir nuevos datos. n Ejercicio 3: Introduce tres pedidos en la tabla que has creado anteriormente. Dado que no se han denido las claves ajenas de esta tabla, se puede introducir cualquier valor para codcli y codart. Ejercicio 4: Visualiza los datos de las facturas, aplica un ltro para mostrar slo aquellas con un codfac mayor o que 6000 y ordena los datos por fecha Ejercicio 5: Aade una nueva factura (ojo, en este caso s que pueden haber problemas de integridad referencial) n Ejercicio 6: Borra la tabla pedidosalxxxxx que has creado anteriormente. Adems de las tablas, existen otras dos opciones en cada fuente de datos: a Vinculos en el que se guardan los cheros de OpenOce.org vinculados a la fuente de datos (normalmente formularios e informes) y Consultas, se trata en realidad de Vistas, permiten denir consultas sobre la base de datos, utilizando un editor visual: modo diseo o modo SQL, se puede acceder a estos dos modos pulsando con el botn derecho n o del ratn sobre Consultas y seleccionando la opcin adecuada. o o

En el modo diseo de la opcin Cosultas se pueden aadir tablas utilizando el botn A~adir Tablas ( ) e n o n o n indicar cmo se realiza el JOIN entre las tablas arrastrando el atributo de una tabla sobre el atributo de la otra. o Para indicar qu atributos se quiere mostrar en la consulta, basta con arrastrarlos de las tablas a la parte inferior. e Con el botn Activar/Desactivar modo dise~o ( o n ) se puede ver y/o modicar la consulta generada en SQL.

Hay que tener en cuenta que si la consulta, lo que hemos denominado una vista, afecta a ms de una tabla o no a contiene la clave primaria OpenOce.org no permitir que se aadan datos ni que se realicen modicaciones. a n Ejercicio 7: Crear una consulta utilizando el modo diseo que muestre para cada linea de fattura el cdigo de n o la factura, la fecha en que se hizo, el cdigo del cliente, la descripcin del art o o culo vendido y la cantidad. Utiliza la modo diseo y la modo SQL. n Las consultas, al igual que las fuentes de datos, denidas en OpenOce.org se almacenan en el chero ~/ OpenOffice.org1.1.1/user/registry/data/org/openoffice/Office/DataAccess.xcu. Si se quiere copiar las consultas a otro ordenador (o usuario) hay que copiar este chero (o las partes que nos interesen de l). e Atencin! aunque los formularios e informes pueden denirse sobre consultas denidas de este o modo, debido a lo expuesto en el parrafo anterior y para facilitar la correccin, en el trabajo no o debis utilizar este tipo de consultas. e En el modo SQL se puede observar que para hacer los joins OpenOce.org utiliza el formato producto cartesiano ms restricciones. Si se desean hacer outer joins se puede realizar con una sintaxis similar al estndar a a pero con algunas peculiaridades, por ejemplo, para obtener las facturas con los datos de los clientes pero sacando tambin las facturas sin clientes y los clientes sin facturas podemos hacer: e ejemplo de concatenacin externa o SELECT f.*, c.* FROM { OJ facturas f FULL OUTER JOIN clientes c ON (f.codcli = c.codcli) }

De modo similar se puede realizar el LEFT OUTER JOIN y el RIGHT OUTER JOIN. Haciendo doble click en la vista diseo sobre los enlaces entre tablas se puede denir tambin el tipo de join n e entre las tablas. 7

4.

Formularios

En este punto ya se dispone de una base de datos, denida desde OpenOce.org o utilizando el propio SGBD. Ahora interesa crear un formulario que haga ms sencilla y eciente la gestin de la base de datos. Todos los a o documentos de OpenOce.org pueden convertirse en un formulario, para ello slo es necesario insertar una o ms o a funciones de formulario. La gura 4 muestra un formulario realizado en OpenOce.org para acceder a los datos de las facturas. Como puede verse en la parte inferior existe una barra de botones similar a la de las fuentes de datos que permite moverse por los registros, borrar registros o insertar nuevos (siempre que se tengan permisos).

Figura 4: Un formulario para acceder a las facturas Se puede crear un formulario desde cero o puede crearse utilizando el piloto automtico existente en OpenOfa ce.org lo cual es mucho ms sencillo. En este segundo caso se utiliza la opcin Archivo->Piloto a o Automtico->Formulario que, a travs de una serie de ventanas, permite denir sencillos formularios. a e Al ejecutarlo se presenta la pantalla que se muestra en la gura 5 donde se indica la fuente de datos para el formulario, la tabla y los atributos de dicha tabla que se quieran incluir. Una vez denidos los valores deseados se debe pulsar el botn Siguiente que har que se muestre la ventana de o a la gura 6 en la que se puede indicar uno de los cinco tipos de formularios que existen, el fondo y algunas opciones de conguracin. o Finalmente, pulsando el botn Crear se pedir almacenar el nuevo formulario creado con lo que se nalizar el o a a proceso y se tendr un formulario listo para trabajar. a Ejercicio 8: Crear un formulario con el piloto atomtico para ver los datos de una factura, slo los que a o aparecen en la tabla factura. Para disear un formulario (nuevo, desde cero, o modicar uno previamente denido), hay que utilizar el botn n o Formulario( ). Al pulsar sobre dicho botn y mantenerlo durante unos pocos segundos, se presenta una barra o 8

Figura 5: Primera ventana del Piloto automtico para disear formularios a n

Figura 6: Segunda ventana del Piloto automtico para disear formularios a n

de herramientas que permite aadir y modicar las funcionalidades del mismo. n

4.1.

Formularios Maestro-detalle: subformularios

Cada formulario est asociado a una unica tabla de la base de datos, pero se pueden crear subformularios a enlazados al principal que permiten mostrar datos de otras tablas relacionados con los datos del formulario principal. Por ejemplo, como se muestra en la gura 4 existe un formulario principal que muestra los datos de la factura, un subformulario para los datos del cliente, otro para los datos del vendedor y otro para las lineas de facturas.

Figura 7: Ventana del navegador de formularios con un slo formulario o

Figura 8: Ventana del navegador de formularios con un formulario y un subformulario

Con el botn Navegador de formulario ( ) se presenta una pequea ventana, con un slo formulario, el prino n o n cipal, que es el que por defecto utiliza OpenOce.org, llamado Standard, como puede verse en la gura 7. Para aadir un subformulario hay que pulsar sobre Standard con el botn derecho del ratn y seleccionar Nuevo->Formulario. o o En la gura 8 se puede ver el formulario principal que se ha renombrado como facturas y el subformulario clientes. 10

Figura 9: Pestaa Datos de las propiedades de un formulario n

Para enlazar los datos de ambos formularios hay que denir los datos que corresponden al nuevo formulario, para ello hay que pinchar el formulario con el botn derecho del ratn y seleccionar la opcin Propiedades, tambin o o o e se puede acceder a las propiedades de un formulario utilizando el botn de la barra de herramientas. En la pestaa o n de Datos hay que indicar la fuente de datos, como Tipo de contenido Orden SQL y como contenido una consulta como la que se muestra en la gura 9: select * from clientes where codcli = :cl en la que aparece un parmetro con nombre, :cl, que como puede verse empieza por dos puntos. El nombre de a este parmetro se puede denir por el usuario. a En el campo Vinculacin de hay que poner la clave ajena de la tabla utilizada en el formulario principal y en o el campo Vincular con hay que poner el parmetro con nombre sin los dos puntos (las comillas que aparecen en a la gura no se deben poner, las pone OpenOce.org automticamente). a De esta forma, la variable cl contendr el valor de la clave ajena del registro que se est visualizando en el a a formulario principal (el cliente) y por tanto al subformulario se le asociarn los datos del cliente de la factura del a formulario principal. En el ejemplo, la consulta afecta a una sola tabla, pero se puede enlazar el formulario principal con consultas que afecten a una o varias tablas. Como se ha comentado, OpenOce.org utiliza parmetros con nombre para escribir rdenes parametrizadas. a o Sin embargo, algunas bases de datos no permiten tal tipo de parmetros. Por ello hay que indicar a OpenOce.org a que realice la sustitucin antes de enviar la consulta al controlador ODBC. Para ello hay que crear y ejecutar un o macro que encontraris en la pgina web de la asignatura o en la siguiente direccin http://dba.openoffice.org/ e a o howto/param_subst.html. Para crear y ejecutar el macro, hay que seguir los siguientes pasos: seleccionar Herramientas->Macros->Macro..., se abrir una ventana como la de la gura 10. a 11

Figura 10: Ventana para la creacin y modicacin de macros o o

Figura 11: Ventana para la edicin de macros o

12

Se puede guardar el macro en el mdulo2 Standard->Module1 que es donde lo hace OpenOce.org por defecto. o Pulsamos el botn Nuevo, se abrir una ventana como la de la gura 11. o a El siguiente paso consistir en pegar el contenido del macro y ejecutarlo pulsando el botn Ejecutar ( a o ).

En la ventana que se abrir hay que escribir el nombre de la fuente de datos a la que se quiere aplicar el a macro. Por ultimo hay que cerrar el OpenOce.org y volver a entrar para que los efectos del macro tengan efecto. Ejercicio 9: Crear el Macro y ejecutarlo sobre las fuente de datos que se utilizan en la prctica. Cerrar el a OpenOce.org y volver a entrar. Ejercicio 10: Crear un subformulario enlazado con el principal con los datos de los clientes. Para introducir un campo en el subformulario, por ejemplo para mostrar el nombre del cliente asociado a la factura, se deben seguir los siguientes pasos:

Figura 12: Pestaa Datos de las propiedades de un campo de control n

Seleccionar el subformulario en el navegador de formularios. En la barra de herramientas de formulario seleccionar Campo de Texto ( este punto se ha de indicar el rea que debe ocupar el campo. a ). El cursor cambia de forma, en

Pulsando el botn Propiedades del campo de control ( ) se puede indicar, en la pestaa Datos qu dato o n e se debe mostrar en dicho campo. La gura 12 muestra la ventana que se abre al pulsar el botn o Repitiendo este proceso se pueden aadir tantos campos como se quiera en el subformulario. Asimismo se puede n aadir otros subformularios para mostrar datos de otras tablas. n
2 Un

mdulo es como un almacen de macros. o

13

Ejercicio 11: Mostrar el nombre del cliente en el formulario. En el caso anterior una factura era de un slo cliente y por tanto en el subformulario slo hay que indicar o o qu atributos se quieren mostrar. En otros casos, por ejemplo facturas y lineas fac en la que una factura puede e tener varias lineas, en que el subformulario puede tener varios registros relacionados con el del formulario principal se suele utilizar un Control de Tablas ( ) para mostrar los datos del subformulario, en vez de cuadros de texto. En este caso, se debe actuar de forma opuesta, es decir, primero denir, el Control de Tablas sobre el subformulario y despus enlazar el subformulario con el formulario principal (en el ejercicio siguiente se indican los e pasos para realizar este proceso). Ejercicio 12: Aadir las lineas de facturas al formulario. El resultado debe ser similar a lo que aparece en la n gura 13. A continuacin se muestran los pasos a seguir. o Crear el subformulario lineas. Crea el Control de Tablas sobre la tabla lineas fac. Editar las propiedades del subformulario lineas (seleccionarlo en el navegador y pulsar el botn o .

Cambiar las propiedades de la pestaa datos para enlazar el subformulario lineas con el formulario principal n (facturas) tal y como se comenta al principio de este apartado.

Figura 13: Ejemplo sobre cmo debe quedar el ejercicio. o

4.2.

Campos combinados y listados

Los campos combinados son atributos que nos permiten introducir datos en un campo de un formulario a partir de datos extra dos de otra tabla. Por ejemplo, se puede denir un campo combinado para introducir el cdigo de o un cliente a partir de los cdigos de clientes de la tabla clientes a modo de lista de valores. o Los pasos a seguir para crear un campo combinado son los siguientes: En el navegador de formularios seleccionar el formulario sobre el que se quiere denir, Seleccionar el botn Cuadro combinado ( o a rea que debe ocupar el campo. ). El cursor cambia de forma, en este punto se ha de indicar el

En la ventana que aparece, se debe seleccionar la tabla de la que se quieren extraer los datos y pulsar el botn o Siguiente. 14

Ahora se ha de seleccionar el campo de la tabla y pulsar el botn Siguiente. o En la siguiente ventana se debe indicar S e indicar en qu campo del formulario se debe almacenar el dato e seleccionado en el campo combinado. Pulsando el botn crear se naliza el proceso. o Ejercicio 13: Aadir un campo combinado para el cdigo del cliente del formulario principal y sustituirlo por el n o que hay. F jate que aunque se muestran datos de otras tablas, el Campo combinado est asociado al campo codcli a del formulario principal y por tanto se debe denir en ste. De esta forma, no se tendrn problemas de integridad e a referencial al insertar o modicar los cdigos de clientes de facturas. o Los listados son similares a los campos combinados con la diferencia que se puede mostrar un dato distinto al que se almacena en el campo. Por ejemplo en la lista desplegable se muestran los nombres de los vendedores, pero se almacena el cdigo del vendedor. o Los pasos a seguir para crear un listado son los siguientes: En el navegador de formularios seleccionar el formulario sobre el que se quiere denir. Seleccionar el botn Listado ( o debe ocupar el campo. ). El cursor cambia de forma, en este punto se ha de indicar el rea que a

En la ventana que aparece, se debe seleccionar la tabla de la que se quieren extraer los datos y pulsar el botn o Siguiente. A continuacin, seleccionar el campo de la tabla que se quiere visualizar y pulsar el botn Siguiente. o o En la ventana que aparece a continuacin se debe indicar los atributos de las dos tablas que se utilizan para o hacer el join. El atributo de la primera tabla es dnde se almacenar en el formulario principal. El atributo o a de la segunda tabla es el que se almacenar. a Pulsando el botn crear se naliza el proceso. o

Figura 14: Ejemplo sobre cmo debe quedar el ejercicio. o Ejercicio 14: Aadir un listado al formulario con el nombre del vendedor de la factura. El resultado debe ser n similar a lo que aparece en la gura 14. F jate que aunque se muestran datos de otras tablas, el Listado est asociado a al campo codven del formulario principal y por tanto se debe denir en ste. e Si se quieren visualizar ms de un atributo en el campo de visualizacin se deben editar las propiedades del a o listado y modicar el Tipo de contenido de la pestaa Datos a SQL [Native] y el primer atributo de la sentencia n select de la orden SQL con los atributos que se quieran visualizar concatenados con el operador ||. 15

4.3.

Campos calculados

En un formulario se pueden aadir datos calculados que son el resultado de hacer alguna operacin sobre otros n o datos de la base de datos. Por ejemplo, se puede calcular el total de la factura a partir de las lineas de facturas. Para introducir datos calculados en un formulario hay que denir un subformulario enlazado con el principal que obtenga los datos, en el SELECT dndoles un nombre mediante as, que se quieren calcular. Una vez creado el a subformulario, se ha de aadir un campo de texto en dicho subformulario cuyo contenido ser uno de los atributos n a de la sentencia SELCET. Ejercicio 15: Aadir un campo que muestre el total de una factura. n

4.4.

Botones y Macros

En los formularios es posible incluir determinados botones para facilitar el acceso a los datos. A cada botn se o le debe asociar un macro que es el cdigo que se ejecutar cuando se pulse. o a Los macros se pueden crear utilizando un lenguaje similar a Visual Basic, que es algo complicado pero muy verstil y potente, no es el objetivo de est prctica el aprender el lenguaje de macros de OpenOce.org. a a a Otra forma de crear macros es utilizando una herramienta para grabar macros, lo cual es mucho ms sencillo a aunque no ofrece tantas posibilidades como escribir directamente el cdigo. Para crear un macro utilizando esta o segunda forma hay que seleccionar Herramientas->Macros->Grabar Macro. A partir de ese momento, todas las acciones que realicemos se irn grabando hasta que se pulse el botn Finalizar Grabacin ( a o o ).

Figura 15: Ventana para guardar un macro. o Al pulsar este botn, se abrir una ventana (gura 15) en la que hay que indicar dnde se debe guardar el macro y o a con qu nombre. Para que el formulario sea portable, es decir, que se pueda ejecutar en distintos ordenadores se deben e guardar los macros en un mdulo del documento, en la gura 15 se ha indicado que se guarde en Standard->Module1 o del documentoEjemploPractica Form ig18 public.facturas (si el documento no tiene ningn mdulo denido u o se puede crear uno nuevo utilizando el botn correspondiente en la parte derecha de la ventana). Para nalizar, o basta pulsar el botn Guardar. o Para crear un botn hay que seguir los siguientes pasos: o En el navegador de formularios seleccionar el formulario sobre el que se quiere denir, Seleccionar el botn Botn ( o o ocupar el botn. o ). El cursor cambia de forma, en este punto se ha de indicar el rea que debe a

16

Ahora se debe seleccionar el botn Propiedades del campo de control ( ) y en la pestaa General o n denir el ttulo. En la pestaa Acontecimientos asignar en Al ejecutar el macro previamente creado. n Ejercicio 16: Grabar un macro para avanzar diez registros en el formulario. Crear un botn y asignarle el o macro.

4.5.

Otras funciones de formulario

En el apartado anterior se han explicado las funcionalidades de algunos botones de la barra de herramientas de formulario. Existen otras muchas que podis consultar simplemente poniendo el ratn encima de los distintos e o botones.

4.6.

Tipos de formularios

Los formularios pueden ser para visualizar datos o para introducir o modicar datos en la base de datos. Si el usuario utilizado en la conexin ODBC no tiene permisos de modicacin e insercin, el formulario no permitir que o o o a se introduzcan datos. Si el usuario s que tiene permisos de actualizacin pero no se quiere que se modiquen o inserten datos utilizando o el formulario, se puede indicar, utilizando el botn Propiedades del formulario ( o ) en la pestaa general. n

Tambin se puede indicar sobre cada campo individualmente si son o no de slo lectura utilizando el botn e o o Propiedades del campo de control ( ).

Si se quiere utilizar un documento slo como formulario, es decir, que no se pueda escribir en l ni que se hagan o e modicaciones sobre el diseo del formulario, hay que quitarle los permisos de escritura al chero. n

17

Вам также может понравиться