You are on page 1of 43

Escuela Tcnica Superior de Ingeniera Informtica

Guin de Prcticas de Programacin de BD y Bases de Datos II


Juan Miguel Medina Rodrguez y M Amparo Vila Miranda

Dpto. Ciencias de la Computacin e I. A.

Universidad de Granada

Granja El Cerdito Valiente. Requisitos


La gestin se centra en dos grupos de funciones de consulta y mantenimiento: el libro de contabilidad y la lista de personas que trabajan en la granja junto con sus direcciones y cualificacin. El libro de contabilidad registra las transacciones financieras:
Cantidades de bienes comprados y vendidos Jornadas pagadas y cantidades recibidas

Lista de personas con sus direcciones y cualificaciones Personas involucradas en las transacciones y en los trabajos de la granja. Representar a ambos tipos de personas en un mismo conjunto de entidades

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

Granja El Cerdito Valiente. Requisitos


Funciones que el software de aplicacin habr de tratar:
Representar las personas y organizaciones con las que interacta en una lista central a disposicin de contabilidad y personal para consulta y mantenimiento. Deseable facilitar la correccin de fallos en la lista Seguimiento de todas las transacciones de la granja, incluyendo tipo (compra, venta, pago, ingreso), descripcin del artculo, nmero unidades, importe unitario, total. Disponible para consulta y realizacin de auditorias Para auditora todas las transacciones deben quedar registradas. Deseable que la aplicacin pudiese generar automticamente el importe de la transaccin a partir de la cantidad y el precio. Que puedan ordenarse por cualquier campo Mantener una lista de los trabajadores para realizar contactos y pagos. Direcciones correctas y actualizadas. Poder generar etiquetas de correo Mantener un lista de de cualificaciones y competencias de los trabajadores para asignacin de trabajos. Aadir un valoracin para cada cualificacin

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

Granja El Cerdito Valiente. Diseo BD


Diseo conceptual utilizando E/R
Nombre Edad Valoracion Cualif Decripcion

LibroCuentas

Relativo a

Persona

Trabajador Posee

Cualificacion

Apunte#

Fecha

TipoOp

Item

Vive en

B) Formulario Empleado Cualificacion

Total

Cantidad

TipoCant

PrecioUnitario

Alojamiento

A) Formulario Libro Cuentas

Aloja-miento

NombComplet

Director

Direccion

C) Informe Alojamientos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

Granja El Cerdito Valiente. Diseo BD


Diseo lgico relacional:
Alojamiento(Alojamiento, NomCompleto, Director,Direccion) EmpCualif(Nombre, Cualificacion, Valoracion) Persona(Nombre,Edad,Alojamiento) Cualificacion(Cualificacion, Descripcion) LibroCuentas(Apunte#, Fecha, TipoOperacion, Item, Cantidad, TipoCantidad, PrecioUnitario, Total, Persona

Diseo Fsico.
El archivo h:\ccia\orawin95\tmp\CreaGranja.sql contiene las sentencias sql que permiten la creacin de la BD, donde se contempla, adems, la creacin de una secuencia para la generacin de cdigos de apuntes. h:\ccia\orawin95\tmp\DatosGranja.sql introduce algunos datos en esa BD. Adems de establecer los tipos y tamaos para los campos, se establece mediante una clusula check los valores permitidos para el campo TipoOperacion. Posteriormente se pueden crear ndices para mejorar la consulta
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 5

Granja El Cerdito Valiente. Diseo Funcional


El formulario Libro de Contabilidad debe llevar a cabo las siguientes tareas:
Debe permitir la introduccin de transacciones contables con todos sus datos Generar identificadores nicos para cada apunte La transaccin debe ligarse a una persona presente en la BD Calcular el total a partir de precio unitario y cantidad Evitar que alguien no autorizado pueda actualizar o borrar transacciones Consultas y ordenacin por distintos criterios

Adoptaremos una representacin tabular basada en el esquema de datos A) de la figura que muestre varias transacciones a la vez y quizs una lista de valores o desplegable para seleccionar la persona implicada en la transaccin El formulario EmpleadoCualifcacin se va encargar de mostrar las cualificaciones que presenta cada empleado. Para eso se utilizar un maestro-detalle basado en el esquema de datos B)
El registro maestro (empleado) ser de slo lectura
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 6

Granja El Cerdito Valiente. Diseo Funcional


Enlaza con los detalles (las cualificaciones) Sera interesante poder seleccionar la cualificacin de la lista de cualificaciones almacenada en la tabla correspondiente

Necesarios formularios para mantener Persona, EmpCualif, Cualificaciones y Alojamiento Informe Resumen Libro basado en el esquema de datos A):
Obtener las transacciones agrupadas por persona, en orden cronolgico y total para cada persona

Informe Direcciones basado en el esquema de datos C):


Para obtener la direccin de cada persona para correspondencia. Salida de etiquetas de diversos tamaos.

Antes de comenzar crearemos el siguiente directorio: u:\CerditoValiente donde ubicaremos todos los ficheros relacionados con los tutoriales y ejercicios

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

Formulario Empleado. 1er Prototipo


Procedimiento para crear el formulario:
Cread el bloque persona que muestra un nica persona Cread como detalle el bloque cualificaciones asociadas a cada persona Aadid una lista desplegable que permita seleccionar una cualidad de la misma Organizad el formulario Ejecutad y almacenad la aplicacin

Creacin del bloque persona


Ejecutad Form Builder Activad Asistente de Bloques de Datos Avanzad hasta visualizar Pulsad Siguiente

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

Formulario Empleado. 1er Prototipo


Pulsad Examinar Introducid vuestro Usuario y Clave, dejando en blanco Cadena de Conexin Visualizad vuestras tablas y vistas y seleccionad persona

Pulsad Terminar para entrar en el Asistente de Diseo Avanzad hasta Visualizad nombre y pulsad Terminar Ya tenemos nuestro primer bloque!
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 9

Formulario Empleado. 1er Prototipo


Creacin del bloque Cualificacin
Marcad el bloque persona Para crear otro bloque pulsad Aceptad la utilizacin del Asistente de Bloques de Datos Seleccionad la tabla EmpCualif y utilizad todos sus campos. Avanzad y pulsad Crear Relacin Seleccionad la tabla Persona como maestro

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

10

Formulario Empleado. 1er Prototipo


Continuad con el Asistente de Diseo Visualizad slo los campos Cualificacin y Valoracin Elegid el estilo Tabular para presentar los resultados Despus poned Cualificacin en el Ttulo del Marco Visualizad 6 registros y activad Visualizar Barra de Desplazamiento Pulsad Terminar Ya tenemos el esqueleto de nuestro primer formulario!

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

11

Formulario Empleado. 1er Prototipo


Lista de Cualificaciones.
Vamos a crear una lista dinmica para seleccionar cualificaciones, generada a partir de la tabla Cualificaciones Pulsad sobre Cualificacin, botn derecho y abrir la Paleta de Propiedades con los atributos del elemento Cualificacin Estableced los atributos Tipo de Elemento, Estilo de la Lista y Correspondencia de Otros valores como muestra la figura Pulsad en el valor de Elementos de la Lista y estableced al menos un elemento para la lista que se encuentre en la tabla Cualificacin
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 12

Formulario Empleado. 1er Prototipo


Para dotarla de carcter dinmico necesitamos:
Escribir una consulta que obtenga los valores de la tabla Cualificaciones Escribir un procedimiento PL/SQL que la rellene con los datos de la tabla Cualificacin Crear un disparador que actualice su contenido en el momento oportuno

Para crear esta consulta, que es un Grupo de Registros, realizad:


Marcad Grupo de Registros y pulsad Introducid Llamadlo Cualificacion

Dada la generalidad de este proceso vamos a crear un procedimiento reutilizable que vamos a incorporar a nuestra biblioteca para posteriores usos
Creamos una biblioteca.

Marcamos Bibliotecas PL/SQL y pulsamos Marcamos Unidades de Programa y pulsamos Introducimos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

13

Formulario Empleado. 1er Prototipo

En la ventana de edicin introducimos el siguiente cdigo:

Compilamos el mdulo Salvamos la biblioteca con el nombre MiBiblioteca Marcamos la biblioteca y la compilamos (Programa | Compilar Seleccin) Marcamos Bibliotecas Asociadas bajo el Modulo1 y pulsamos seleccionando MiBiblioteca

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

14

Formulario Empleado. 1er Prototipo


Vamos a utilizar un disparador WHEN-NEW-FORM-INSTANCE para determinar que la lista de valores se actualice con los valores de la tabla Cualificacin
Marcad Disparadores pulsad Seleccionad el mencionado disparador En la ventana introducid el cdigo: llena_listas('empcualif.cualificacion','cualificacion'); Compilad y cerrad

Ejecutad el formato, comprobad los resultados y almacenad como empleado si todo ha estado conforme

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

15

Formulario Libro de Cuentas. Ejercicio


Realizad el formulario correspondiente al libro de cuentas (llamadlo libro.fmb) de acuerdo con el aspecto de la figura y los siguientes requisitos:
Debe incluir todos los campos de la tabla correspondiente Debe tener forma tabular (varias transacciones a la vez) Una lista esttica sobre TipoOperacion (Compra,Venta,Pago,Ingreso) Una lista dinmica sobre Persona con datos de la tabla Persona

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

16

Informe Contabilidad. 1er Prototipo


El informe agrupar por personas las entradas y mostrar los subtotales de las mismas:
Iniciar Report Builder y aceptar el uso del Asistente de Informes En Ttulo ponemos: Granja El Cerdito Valiente Seleccionamos el estilo Agrupar a la Izquierda puesto que queremos agrupar por personas. Pulsad Siguiente En esta pantalla aprovechamos para conectarnos (Usuario, Clave) Escribimos la consulta:
SELECT Persona, Fecha, Item, Cantidad, PrecioUnitario, Total FROM LibroCuentas

La siguiente pantalla solicita los campos sobre los que agrupar el informe. Introducid Persona. Pulsad Siguiente En esta pantalla se solicita los campos a visualizar en el informe. Introducidlos todos como muestra la figura

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

17

Informe Contabilidad. 1er Prototipo

Pulsad Siguiente. La pantalla de los totales solicita los campos a agregar. Nosotros queremos obtener las sumas de los totales por persona. Seleccionamos Total y pulsamos el botn Suma Pulsad Siguiente dos veces. En la pantalla de plantillas seleccionamos, por ejemplo, Corporate1 Pulsad Terminar para obtener en el Visor Activo la vista preliminar del informe generado. Es preciso retocarlo un poco para mejorar la presentacin
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 18

Informe Contabilidad. 1er Prototipo


Mediante la utilizacin del Live Previewer:
Dimensionad los campos para que ocupen menos espacio Cambiad el formato de la fecha y la etiqueta asociada. Salvad como LibroContabilidad.rdf

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

19

Informe Contabilidad. En Formato Web


A partir de este informe se puede crear una versin publicable en la Web, ya sea en formato html o en formato pdf para ello se utiliza el Asistente Web:
Seleccionad Herramientas|Asistente Web La pantalla de la figura nos solicita un campo del informe que nos va a permitir navegar por el mismo. En nuestro caso el campo Persona que es por l que se agrupa

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

20

Informe Contabilidad. En Formato Web


La siguiente pantalla nos permite seleccionar un documento html que acte como cabecera y otro como final de informe. En nuestro caso lo dejamos en blanco y seguimos Esta pantalla nos permite elegir el formato en que vamos a publicar el informe. Probad con pdf y visualizad con el Acrobat Reader. Despus ejecutad de nuevo el Asistente Web y publicad en html visualizando con el navegador.

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

21

Informe Contabilidad. Aadir Grficos


Podemos generar grficos en diferentes formatos a partir de los datos e incorporarlos a nuestros formularios o informes Graphics Builder es la herramienta que se encarga de ello. Se puede invocar de forma separada o desde Forms o Report Builder. Vamos a generar un grfico de tarta desde Report Builder que muestre las transacciones totales por persona
Con el ltimo informe abierto se activa el Modelo de Diseo pulsando De la Barra de Herramientas seleccionamos la seccin margen del informe Seleccionamos el Asistente de Grficos rellenamos la ventana como figura abajo

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

22

Informe Contabilidad. Aadir Grficos


En la siguiente pantalla seleccionamos Persona como valor para el eje X En la siguiente seleccionamos SumTotalPerPersona como eje Y puesto que queremos las porciones segn el total de cada persona En la ventana que nos pide la frecuencia con que va a aparecer el grfico en el informe seleccionamos que slo lo queremos una vez y al principio (Al principio del Informe) En la siguiente ventana indicamos que lo guarde como total.ogd Pulsad Terminar, se obtendr algo parecido a:

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

23

Creacin de Grficos con Graphics Builder


Ejercicio: Podis jugar con los diferentes tipos de grficos Vamos a crear un grfico reutilizable desde el programa Graphics Builder El modelo de datos de un grfico es una sentencia SQL que generalmente incorpora una clusula GROUP BY
Ejecutamos Graphics Builder Para crear un grfico pulsamos en la barra de herramientas del Editor de Diseo Nos muestra el Asistente de Grficos Llenadlo con los datos de la figura. Pulsad Ejecutar para aseguraos del resultado

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

24

Creacin de Grficos con Graphics Builder


Pulsamos Aceptar, entramos en el cuadro para elegir las propiedades del grfico a generar. Rellenamos segn muestra la figura

Pulsamos Aceptar y se visualiza el grfico. Podemos cambiar la fuente del ttulo para resaltarlo ms Salvad como pagos.ogd

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

25

Creacin de Grficos con Graphics Builder

Se puede utilizar Grfico|Marco para organizar la presentacin de los resultados Marcando el grfico y pulsando el botn derecho se puede acceder a un men en el que se puede indicar mediante Actualizar que se actualice la presentacin del grfico Pulsando Herramientas|Consultas accedemos a la consulta para una eventual modificacin
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 26

Integracin de Grficos con Formularios


Veamos como se puede integrar un grfico en un formulario. Se necesita un disparador que ejecute Graphics para producir el grfico:
Abrimos el formulario libro.fmb Creamos un bloque de control. Seleccionamos Bloq de Datos y pulsamos Optamos por crearlo manualmente Abrimos la ventana de propiedades y ponemos: Nombre: Control , Bloque de Datos de Base de Datos: No Hacemos hueco bajo el frame que rodea al bloque LibroCuentas. Para ello establecemos la propiedad Altura a 400 en Window1 y Canvas2 Seleccionamos el bloque Control en el Navegador de Obj. se pulsa Se dimensiona un rea suficiente bajo el bloque LibroCuentas, optamos por construir el grfico manualmente Visualizamos las propiedades del elemento creado y establecemos Nombre: Pagos, Lienzo: Canvas2 Asociamos la biblioteca grfica al formulario. Seleccionamos Bibliotecas Incorporadas y luego , en el campo Biblioteca: ponemos OG, pulsamos el botn Incorporar
Programacin de Bases de Datos y Bases de Datos II 27

Guin de Prcticas

Integracin de Grficos con Formularios


Asociamos la biblioteca grfica al formulario. Seleccionamos Bibliotecas Incorporadas y luego en el campo Biblioteca: ponemos OG, pulsamos el botn Incorporar Necesitamos un disparador que active el grfico y otro para cerrarlo Editamos el disparador WHEN-NEW-FORM-INSTANCE para que contenga:
BEGIN llena_listas('librocuentas.persona','personas'); OG.Open(pagos.ogd','control.pagos'); END;

Creamos un nuevo disparador de tipo POST-FORM con el siguiente cdigo:


OG.Close(pagos.ogd','control.pagos');

Ejecutamos, corregimos los posibles desajustes y salvamos el formulario Si queremos refrescar en el grfico los cambios que se deriven de la actuacin sobre el formulario, debemos utilizar un disparador de tipo Post-Commit que cierre y vuelva a abrir el grfico

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

28

Integracin de Grficos con Formularios

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

29

Elementos de los Formularios. Ventanas


Canvas o Lienzos Son elementos de diseo sobre el que se sitan los otros elementos. Una ventana acta como un visor sobre el lienzo permitiendo desplazarse por su contenido. Tipos:
Contenido: Elemento contenedor de otros. Una ventana debe tener al menos un lienzo de este tipo Apilado: Un lienzo que se muestra encima de otros. Suelen tener elementos independientes Tabular: Lienzo de contenido que organiza el contenido de una ventana a modo de fichas Barra de Herramientas: Lienzo que contiene botones con iconos que la ventana muestra en barras verticales y horizontales

El tipo del lienzo se puede seleccionar mediante la propiedad Tipo de Lienzo La ventana que lo visualiza tambin se puede seleccionar desde la hoja de propiedades Todo elemento debe de estar asignado a un lienzo para ser visualizado. Si perseguimos que no se visualice ponemos NULL en su propiedad Lienzo
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 30

Elementos de los Formularios. Ventanas


Cuando se crea un Bloque de Datos se crea un lienzo por defecto Tambin se puede crear manualmente desde Navegador de Objetos y dimensionar en su hoja de propiedades o en el Editor de Diseo Cuando se visualiza una ventana se visualiza el lienzo base, para visualizar otros lienzos se utilizan los procedimientos predefinidos Show_View y Hide_View desde disparadores Ejemplo: Lienzos apilados. Vamos a crear un formulario con Persona como maestro y LibroCuentas como detalle en un lienzo apilado que permita visualizar los apuntes de cada persona desplazndose horizontalmente por los mismos mientras se mantiene visualizados los datos de la persona correspondiente:
Abrid Forms Builder y utilizad el asistente para crear un bloque sobre Persona del que slo vamos a visualizar el campo nombre En el Editor de Diseo Desplazad el frame un poco hacia arriba Seleccionad Canvas2 en el Navegador de Objetos y dimensionadlo en el Editor de Diseo de forma que se ajuste ms o menos al frame Ejecutad de nuevo el Asistente de Bloques para crear el bloque LibroCuentas
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 31

Ventanas. Lienzos Apilados


Seleccionad la tabla LibroCuentas y todos sus campos Solicitad la creacin de una Relacin con la tabla Persona entre los campos persona y nombre Entrad en el Asistente de Diseo y estableced los valores de la figura Visualizad todos los campos excepto persona Modificad los valores de Ancho de acuerdo con la figura Visualizad unos 5 registros con barra de desplazamiento

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

32

Ventanas. Lienzos Apilados


Editad las propiedades del lienzo apilado y poned los valores de la figura Con el Editor de Diseo dimensionad los lienzos y frames de los dos bloques de forma que rodeen los grupos de registros sin superponerse Editad el lienzo del bloque persona y pulsad en el men Ver|Vistas Apliadas... Seleccionad el lienzo que aparece por defecto y aceptar. Esta operacin permite superponer los dos lienzos en la misma ventana de edicin. Si queremos eliminar la superposicin realizamos la anterior operacin y, mientras pulsamos la tecla Ctrl, pinchamos el lienzo que queremos desactivar, aceptando despus Ved figura de la transparencia siguiente Editad las propiedades de WINDOW1 y estableced: Width: 300 y Height: 280 Ejecutad, consultad y desplazaos utilizando la barra horizontal del canvas de LibroCuentas Modificad lo que sea necesario y salvad como apilado.fmb
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 33

Ventanas. Lienzos Apilados

Aspecto de los lienzos de Persona y LibroCuentas apilados en el Editor de Diseo


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 34

Ventanas. Lienzos Apilados

Aspecto del formulario en ejecucin

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

35

Ventanas. Lienzos Tabulares


Es un tipo de carpeta que, cuando se pulsa sobre la solapa, se muestra la pgina correspondiente Vamos a crear el formulario Recursos Humanos, que asocie a cada persona (maestro) sus capacidades (detalle) por un lado y los datos de alojamiento (detalle) por otro:
Abrid Forms Builder y utilizad el asistente para crear el bloque Persona con las siguientes caractersticas:
Basado en la tabla persona, que utilice todos los campos de dicha tabla En el Asistente de Diseo asignadle la creacin de un lienzo nuevo de tipo Contenido Visualizad nicamente nombre y edad Visualizadlo en formato Formulario, el titulo del Marco Persona, visualizad un slo registro y la barra de desplazamiento Verificad el correcto funcionamiento y salvad como RecursosHumanos.fmb Basado en la tabla del mismo nombre con todos sus campos La condicin que lo relaciona con Persona, que va a ser su bloque maestro, estar basada en la igualdad del campo nombre
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 36

Cread el bloque detalle EmpCualif con las siguientes caractersticas:

Asignadle un lienzo nuevo (Nuevo Lienzo) de tipo de tabular (Tabular) y (Nueva Pgina con Pestaa) Visualizad cualificacin y valoracin Elegid una presentacin tabular visualizando 5 registros y la barra de desplazamiento Visualizad la Paleta de Propieades de PAGE5 y estableced: Etiqueta: Cualificacion Ejecutad, slo vereis el lienzo tabular. Salvad con el mismo nombre

Ventanas. Lienzos Tabulares

Cread el bloque Alojamiento:


Sobre la tabla del mismo nombre utilizad todos sus campos Cread la relacin detalle con el bloque persona como maestro (desactivad antes Unir automaticamente bloques de datos) basada en una condicin de unin sobre el campo alojamiento Utilizad el mismo lienzo que para el bloque EmpCualif y una nueva pgina (Nueva Pgina con Pestaa) Visualizad todos los campos salvo alojamiento pulsad Terminar para aceptar el resto de los valores por defecto Visualizad la Paleta de Propiedades de PAGE7 y estableced: Etiqueta: Alojamiento

Redimensionad y ubicad los lienzos:


Seleccionad CANVAS4 y en la Paleta de Propiedades poned: Posicin Y en la Puerta de Vista: 85 para situad el lienzo bajo l de persona; Redimensionad el lienzo de Persona para que rodee el Marco Redimensionad CANVAS4 para que rodee la solapa de Alojamiento, en sus propiedades poned Bisel: Ninguno para que no se visualice en ejecucin el borde del lienzo. Dimesionad WINDOW1 para que rodee el lienzo. Aseguraos de que el bloque Persona est el primero en la lista de bloques Ejecutad, corregid y salvad
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 37

Ventanas. Lienzos Tabulares

Diseo visualizado en modo Ver|Vistas Apiladas...


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 38

Ventanas. Lienzos Tabulares

Formulario RecursosHumanos en Ejecucin


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 39

Visualizacin de Lienzos mediante Ventanas


Developer2000 utiliza la arquitectura MDI (Interfaz de Mltiples Documentos). En ejecucin, Developer2000 dispone una ventana principal de aplicacin, que no dispone de lienzos, mediante la que visualiza el resto de las ventanas de documento o de dilogo Estas ltimas ventanas deben tener asociado un lienzo al menos El men principal pertenece a la ventana principal, que siempre est abierta Las ventanas de tipo documento tienen restringida su visualizacin a la ventana principal Las ventanas de dilogo pueden visualizarse fuera Otro criterio de clasificacin de ventanas modales o no modales:
Las modales requieren de una respuesta del usuario al mensaje que ofrecen para desaparecer y, en algunos casos, permitir continuar con la aplicacin (cuadros de dilogo) Las no modales permite acceder a otra ventana sin hacerla desaparecer

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

40

Visualizacin de Lienzos mediante Ventanas


La ventana de aplicacin se corresponde con el formulario que se ejecuta actualmente. De esta forma:
El men principal que se ejecuta es el men del formulario Podemos incluir barras de herramientas horizontales y verticales mediante el empleo de las propiedades Lienzo de la Barra de Herramientas Horizontal y Lienzo de la Barra de Herramientas Vertical del formulario, respectivamente El procedimiento predefinido Set_Window_Property permite establecer de forma programada las propiedades de las ventanas. Para modificar las correspondientes a la ventana principal debemos pasar como primer argumento la referencia FORMS_MDI_WINDOW

En entornos que no soportan MDI, como Java (Web), Motif y Macintosh hay que recurrir al empleo de una ventana raiz. El empleo de esta ventana slo tiene sentido en estos entornos si queremos dotarlos de MDI. La ayuda en lnea muestra la forma de utilizar esta caracterstica Propiedades Funcionales de las ventanas:
Cierre Permitido (S|No) si permitimos que, en ejecucin, el usuario cierre la ventana Dimensionamiento Permitido (S|No) si permitimos que, en ejecucin, el usuario redimensione la ventana
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 41

Visualizacin de Lienzos mediante Ventanas


Minimizacin Permitida (S|No) permitir o no la minimizacin Maximizacin Permitida (S|No) permitir o no la maximizacin Movimiento Permitido (S|No) permitir o no el desplazamiento de la ventana Heredar Men (S|No) si muestra o no el men del formulario (no es operativo en Microsoft Windows)

Propiedades Estructurales de las ventanas:


Lienzo Primario, el lienzo que muestra en primer lugar Lienzo de Barra de Herramientas Vertical y Horizontal, las barras de herramientas verticales y horizontales a mostrar Estilo de Ventana (Documento|Dilogo), tipo de ventana Modal (S|No) si es o no modal Ocultar al Salir (S|No) si oculta la ventana o no cuando se navega a otra Nombre de Fichero del Icono, Ttulo minimizado, nombre del archivo del icono que aparece cuando se iconifica y ttulo del mismo Mostrar Barra de Desplazamiento Horizontal y Vertical, si muestra o no las correspondientes barras de desplazamiento

Abrir y cerrar ventanas:


Utilizando disparadores que desencadenen la navegacin hacia, o fuera de una ventana
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 42

Elementos de los Formularios. Ventanas


Canvas Son elementos de diseo sobre el que se sitan los otros elementos. Una ventana acta como un visor sobre el canvas permitiendo desplazarse por su contenido. Tipos:
Contenido: Elemento contenedor de otros. Una ventana debe tener al menos un canvas de este tipo Apilado: Un canvas que se muestra encima de otros. Suelen tener elementos independientes De fichas: Canvas de contenido que organiza el contenido de una ventana a modo de fichas Barra de Herramientas: Canvas que contiene botones con iconos que la ventana muestra en barras verticales y horizontales

El tipo del canvas se puede seleccionar mediante la propiedad Canvas Type La ventana que lo visualiza tambin se puede seleccionar desde la hoja de propiedades Todo elemento debe de estar asignado a un canvas para ser visualizado. Si perseguimos que no se visualice ponemos NULL en su propiedad Canvas
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 43

Ventanas de Aviso o Alertas


Developer dispone de un mecanismo especfico para alertas o avisos que simplifica su programacin, de hecho lo utiliza automticamente para visualizar ciertos mensajes Para crear un aviso seleccionamos el objeto Alertas en el Navegador de Objetos y pulsamos create Dispone de tres clases de avisos que se pueden especificar mediante la propiedad Estilo de Alerta: Parar, Precaucion y Nota este ltimo es del estilo del que hemos creado recientemente La propiedad Mensaje permite introducir el mensaje a mostrar en el aviso. Las propiedades Etiqueta del Botn 1, Etiqueta del Botn 2 y Etiqueta del Botn 3 permiten etiquetar los botones que muestra el aviso, si no se introduce etiqueta el aviso no muestra el botn correspondiente Se debe designar un botn como botn por defecto cuando el usuario pulsa Enter Para determinar la aparicin de un aviso se utiliza la funcin predefinida Show_Alert desde el cdigo de un disparador, la funcin devuelve el nmero ALERT_BUTTON1, ALERT_BUTTON2, ALERT_BUTTON3, dependiendo de que botn haya sido pulsado, en el cdigo del disparador se programarn las acciones apropiadas en funcin del botn pulsado
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 44

Ventanas de Aviso o Alertas


Ejercicio: Realizad el ejemplo anterior utilizando un aviso. Considerad la utilizacin del siguiente cdigo para el disparador:
DECLARE boton NUMBER; BEGIN boton := Show_Alert('Bienvenido'); IF boton = ALERT_BUTTON1 THEN NULL; END IF; END;

Podemos crear elementos de aviso reutilizables. Consideremos el siguiente cdigo que permite gestionar genricamente la aparicin de avisos de tipo informativo:
PROCEDURE muestra_informacion (titulo IN VARCHAR2, mensaje IN VARCHAR2) IS avisoID Alert := Find_Alert('Informativo'); ignora NUMBER; BEGIN Set_Alert_Property(avisoID, TITLE, titulo); Set_Alert_Property(avisoID, ALERT_MESSAGE_TEXT, mensaje); ignora := Show_Alert(avisoID); END;
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 45

Ventanas de Aviso o Alertas


Desde el Navegador de Objetos, en el objeto Bibliotecas PL/SQL abrimos la biblioteca mibiblioteca.pll Creamos una nueva unidad de programa que va a llamarse y contener el cdigo mostrado en la transparencia anterior. Lo compilamos y cerramos el editor y, seleccionando mibiblioteca, pulsamos Guardar. En Bibliotecas Incorporadas del Formulario RecursosHumanos, no de Bibliotecas PL/SQL, asociamos la biblioteca mibiblioteca si todava no la tenemos asociada Creamos una nueva alerta (Alertas) que se va a llamar informativo y va a ser de tipo nota (Estilo de Alerta: Nota) Creamos o utilizamos un disparador a nivel de formulario de tipo WHEN-NEWFORM-INSTANCE cuyo cdigo ser el siguiente:
muestra_informacion('Bienvenido','Bienvenido a la Aplicacion Recursos Humanos');

Ejecutamos y salvamos Situad el bloque dialogo al final para que no se muestre la ventana de ayuda que lo contiene Ejercicio. Modificad el ejercicio para que permita seleccionar el tipo de alerta
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 46

Barras de Herramientas
Vamos a construir una barra de herramientas con el siguiente aspecto

y con la siguiente funcionalidad:


El primer botn visualiza la persona anterior, el segundo la persona siguiente El botn salvar almacena todos los cambios producidos El botn salir muestra la ventana de aviso: donde, la primera opcin almacena y sale la segunda sale sin almacenar y la tercera cancela la salida

Para ello acometemos los siguientes pasos:


Cread un lienzo de tipo barra de herramientas (Tipo del Lienzo: Barra de Herramientas Horizontal) denominado Herramientas, visualizadlo en Window1 (Ventana: WINDOW1) estableced Altura: 28 Editad este lienzo en el Editor de Diseo y aseguraos que en Bloque: ponga persona para que los elementos que aadamos estn asociados a ese bloque Utilizando la barra de herramientas vertical del Editor de Diseo seleccionar, ubicad y dimensionad cuatro botones en forma similar a la figura de arriba
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 47

Barras de Herramientas
Los nombres y etiquetas respectivas de esos botones son: anterior y <, posterior y >, salva y Salvar, salida y Salir Seleccionad de forma mltiple los cuatro botones (mientras se mantiene pulsada la tecla Maysculas se van seleccionado los botones con el ratn) y visualizad la Paleta de Propiedades y estableced las propiedades Teclado de Navegacin y Navegacin del Ratn No. Esto hace que la navegacin no permanezca en ninguno de estos botones Cread un nuevo aviso (Alertas) y estableced las propiedades: Nombre: Salir, Estilo de Alerta: Precaucin, Etiqueta de Botn 1: Si, Etiqueta de Botn 2: No, Etiqueta de Botn 3: Cancela Ahora debemos asociar a cada botn la funcin a realizar cuando se pulsa. El disparador WHEN-BUTTON-PRESSED se activa cuando pulsamos ese botn y ejecuta el cdigo asignado al mismo, por tanto utilizaremos ese disparador para cada uno de los botones:
Creamos un disparador de este tipo para el botn ANTERIOR con el cdigo: do_key('up'); Para el botn POSTERIOR el cdigo es: do_key(down'); Para el botn SALVA el cdigo es: commit_form;
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 48

Barras de Herramientas
Para el botn SALIDA el cdigo es algo ms complejo: DECLARE boton NUMBER; BEGIN SET_ALERT_PROPERTY('salir',ALERT_MESSAGE_TEXT,'Quieres almacenar los cambios antes de salir?'); boton := show_alert('salir'); if boton = ALERT_BUTTON1 then commit_form; end if; if boton <> ALERT_BUTTON3 then exit_form(no_commit); end if; end;

Ejecutad y verificad el funcionamiento, corregid y salvad

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

49

Barras de Herramientas

Formulario en Ejecucin
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 50

Bloques. Elementos
Los bloques son elementos funcionales normalmente asociados a tablas aunque pueden actuar como marco que agrupa elementos de control Los elementos que contiene pueden recurrir al empleo de algunos de los siguientes componentes o caractersticas:
Listas que pueden ser de cuatro tipos:
Lista emergente: Una lista desplegable del tipo visto Lista T: Un cuadro que muestra todos los elementos de texto en una lista desplazable, como un canvas independiente, pero dentro de un nico campo de formulario Recuadro de Combinacin: Combinacin de lista emergente y de campo de texto, permite introducir valores distintos a los de la lista Lista de Valores (LOV List of Values): Un cuadro de dilogo con posibilidades de bsqueda que se puede asociar a un campo de texto

Botones de opcin para crear opciones mutuamente exclusivas Campos con resultados de clculos para facilitar la tarea de mostrar totales y otros clculos que se realizan en el formulario Etc.

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

51

Bloques. LOV
A diferencia de las listas permiten asociar ms de un valor por tupla. Vamos a ilustrar su empleo mediante la creacin de una LOV para el campo cualificacin del bloque empcualif del formulario Recursos Humanos utilizando el asistente
Seleccionamos la cabecera de los elementos LOV en el Navegador de Objetos y pulsamos create Dejamos marcado Nuevo Grupo de Registros basado en una consulta Introducimos la sentencia de la figura y comprobamos Desplazamos las dos columnas a la ventana derecha Avanzamos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

52

Disponemos la forma en que se asocian los valores visualizados a los campos del formulario, estableciendo Cualificacion como valor de retorno para la columna CUALIFICACION. Esto devuelve nicamente el valor cualificacin a ese campo del bloque empCualif Activamos Ajustar automticamente ... En Titulo ponemos Seleccione Cualificacion Despazamos cualificacion a la ventana derecha. Terminamos
Ejercicio: Cread un formulario sobre Persona con todos los campos, aadid los campos NomCompleto, Director y Direccion que no estn asociados a tabla. Cread un LOV que rellene el campo alojamiento y visualice estos campos. Cread un disparador que los visualize en modo consulta. Considerad la utilizacin de disparadores Post-Query y Post-Change
Guin de Prcticas

Bloques. LOV

Programacin de Bases de Datos y Bases de Datos II

53

Bloques. Elementos con Resultados de Clculos


Se pueden crear campos que muestren clculos elaborados en funcin de otros campos (total en funcin de cantidad y de precio unitario) o que realicen agregaciones para grupos de registros (cantidad total de transacciones). Estos campos no almacenan el resultado en la BD Modifiquemos el campo total para que calcule automticamente el total en funcin de la cantidad y el precio unitario:

Visualizamos las propiedades del campo total y establecemos: Modo de Clculo: Frmula y Frmula: :librocuentas.cantidad * :librocuentas.preciounitario Ejecutad y cambiad los valores de los campos cantidad y preciounitario para ver que sucede

Para mostrar el total de las transacciones realizamos las siguientes operaciones:


Cread un campo de tipo Elemento de Texto en el bloque librocuentas con las propiedades: Nombre: SumTotal, Tipo de Dato: Number, Nmero de Elementos Visualizados: 1, Elemento de Base de Datos: No, Modo de Clculo: Total, Funcin Totalizar: Sum, Bloque de Total: librocuentas y Elemento de Total: Total Ubicad el campo bajo el campo total y cread y ubicad una etiqueta a su izquierda que ponga Total Transacciones: Seleccionad el bloque librocuentas y estableced: Consultar Todos los Registros: S y Precalcular Totales: No
Programacin de Bases de Datos y Bases de Datos II

Guin de Prcticas

54

Bloques. Elementos con Resultados de Clculos

Aspecto del Formulario Libro en Ejecucin


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 55

Mens
Developer dispone de un men por defecto en la ventana de aplicacin que permite ejecutar las rdenes habituales en ejecucin, Next Record, Enter_Query, etc. Cada una de estas rdenes se corresponde directamente con la pulsacin de una tecla y existen procedimientos predefinidos para desencadenar su ejecucin La utilizacin de este men y de su barra de herramientas asociada es por defecto, a menos que se defina y utilice un men personalizado. El contenido y funcionalidad del men por defecto no se puede alterar Menus Personalizados. Es conveniente partir de un men previamente definido, como el men menudef.mmb que se encuentra definido en h:\ccia\orawin95\tmp
Comenzaremos por abrir el formulario libro.fmb Seleccionamos la clase Menus debajo de Forms e invocamos Abrir, seleccionando el men mencionado Ejecutamos el Editor de Mens y editamos las etiquetas de las diferentes opciones para traducirlas al espaol de acuerdo con la figura de siguiente transparencia

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

56

Mens

Vamos a introducir una entrada en la opcin de men Consulta para invocar al informe LibroContabiblidad.rdf Para ello, desde el Editor de Mens, utilizamos el botn para introducir bajo Sig. Grupo un separador (Nombre: Sep20, Etiqueta: Sep20, Tipo de Elemento de Men: Separador), la opcin Informes (Nombre: Informes, Etiqueta: Informes, Tipo de Elemento de Men: Normal). Con esta ltima opcin seleccionada pulsamos para crear una opcin lateral (Nombre: Libro, Etiqueta: Libro Cont., Tipo de Elemento de Men: Normal)
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 57

Mens
La opcin de men Consulta debe presentar el siguiente aspecto: Ahora vamos a incorporar el informe LibroContabilidad a nuestro formulario, para ello:
Seleccionamos en el Navegador de Objetos la clase Informes dentro del formulario libro e invocamos crear, en la ventana de dilogo optamos por abrir el informe LibroContabilidad.rdf previamente creado Modificamos las propiedades del informe: Nombre: LibroContabilidad, Modo de Ejecucin Runtime, Modo de Comunicacin: Sncrono, Tipo de Destino del Informe: Pantalla Manteniendo seleccionado el informe, pulsamos Fichero|Administracin|Compilar Fichero en el Men Principal para recompilar el informe con esas propiedades

Para invocar la ejecucin del informe desde la opcin Libro Cont. editamos sus propiedades y en Cdigo del Elemento de Men escribimos el cdigo de la figura. Compilad
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 58

Mens
Slvemos el men en Cerdito Valiente como mimenu.mmb Con dicho men seleccionado, procedemos a compilarlo mediante la opcin Fichero|Administracin|Compilar Fichero del Men Principal Slo nos queda asociar el men recin generado al formulario libro. Para ello editamos sus propiedades y establecemos: Mdulo de Mens: mimenu.mmx Ejecutamos y seleccionamos la nueva opcin para visualizar el informe que debe presentar un aspecto similar al de la prxima transparencia

Adems de la funcin predefinida Run_Report_Object, dispuesta especficamente para la invocacin de Informes, podemos utilizar Run_Product para invocar la ejecucin de cualquier mdulo de Oracle. La utilizacin de este procedimiento se puede consultar en la ayuda interactiva Disponemos tambin de los procedimientos Disable_item(nomb_menu, elemento) y Enable_item() para deshabilitar y habilitar, respectivamente, un elemento del men dependiendo de la fase de operacin sobre la aplicacin en la que estemos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

59

Mens

Aspecto del formulario libro con el informe en ejecucin


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 60

Creacin y Uso de Parmetros


Un parmetro es una variable asociada a un Formulario, Informe o Grfico que parametriza el funcionamiento del mdulo en funcin del valor que se enve en el momento de ejecucin del mdulo (lnea de comandos o invocacin desde otro mdulo) Para Formularios e Informes se pueden utilizar cuadros de dilogo mediante los que establecer los valores de los parmetros Creacin de Parmetros en Formularios. Vamos a crear un parmetro para determinar si la aplicacin de ejecuta maximizada o minimizada.
Con el formulario libro abierto, se pulsa create en sobre la clase Parmetros. Y se rellena como en la figura

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

61

Creacin y Uso de Parmetros


Utilizacin del parmetro.
Se crea o edita un disparador WHEN-NEW-FORM-INSTANCE para que aparezca el cdigo:
BEGIN Set_Window_Property(FORMS_MDI_WINDOW, WINDOW_STATE, :Parameter.Tamwindow); llena_listas ('librocuentas.persona','persona'); OG.Open('pagos.ogd','control.pagos'); END;

Compilamos libro (seleccionndolo, en el men Programa|Compilar|Todo )

Paso de argumentos.
Abrimos una ventana MS-DOS y nos situamos en u:\CerditoValiente Ejecutamos: IFRUN60 libro TAMWINDOW=1421 Vemos que la aplicacin se ejecuta maximizada Si paso 1422 como parmetro se ejecuta minimizada y si paso 1423 se ejecuta con el tamao establecido en diseo

Desde un mdulo se puede invocar a otro pasndole los parmetros a travs de una lista de ellos previamente construida

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

62

Creacin y Uso de Parmetros


Vamos a modificar la opcin Libro Cont. del men personalizado para que invoque al informe a travs de una lista de parmetros cuyo valor vamos a definir previamente desde una ventana de dilogo del formulario
Creacin de la ventana de dilogo.
Cread una nueva ventana con las propiedades: Nombre: Impresion, Ttulo: Parmetros de Impresin, Estilo de Ventana Documento, Modal: S, Cierre Permitido, Dimensionamiento, Maximizacin y Minimizacin PermitIdos: No, Ancho: 200, Altura: 150 Cread un nuevo lienzo con las propiedades: Nombre: Impresin, Ventana: Impresin, Ancho: 200, Altura: 150 Cread manualmente un nuevo bloque con las propiedades: Nombre: Impresin, Bloque de Datos de Navegacin Anterior y Siguiente: Impresin, Bloque de Datos de Base de Datos: No Visualizad las propiedades del bloque LibroCuentas y estableced Bloque de Datos de Navegacin Anterior y Siguiente: LibroCuentas Editad en el Editor de Diseo el nuevo lienzo procurando que el lienzo sea Impresin y el block tambin. Ubicad los componentes que aparecen en la figura

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

63

Creacin y Uso de Parmetros

Aspecto del formulario libro en ejecucin con el informe LibroContabilidad invocado


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 64

Creacin y Uso de Parmetros


Las propiedades para el Grupo de Botones Radio son: Nombre Salida, Valor Inicial screen, Elemento de Dase de Datos No Las del primer botn: Nombre Pantalla, Etiqueta Pantalla, Valor de Botn de Radio: screen Las del segundo: Nombre Impresora, Etiqueta Impresora, Valor de Botn de Radio: printer

Funcionalidad botones Salir e Imprimir:


Cread un disparador de tipo WHEN-BUTTON-PRESSED para el botn Salir y escribid el cdigo: go_block(librocuentas); Cread un disparador del mismo tipo para Imprimir con el siguiente cdigo:
DECLARE id ParamList; BEGIN commit_form; id := Create_Parameter_List('datos'); Add_Parameter(id,'destype',TEXT_PARAMETER,:impresion.salida); Add_Parameter(id,'copies',TEXT_PARAMETER,:impresion.copias); Add_Parameter(id,'PARAMFORM',TEXT_PARAMETER,'NO'); Run_Product(REPORTS,LibroContabilidad',SYNCHRONOUS, RUNTIME,FILESYSTEM, id,NULL); Destroy_Parameter_List(id); Go_Block(librocuentas'); END;
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 65

Creacin y Uso de Parmetros


Modificacion del men personalizado:
En la seccin Menus, abrid mimenu.mmb Editad el cdigo de la opcin Libro para que se lea: go_block('impresion'); Salvad y Compilad el men Fichero|Administracin|Compilar Fichero (o Ctrl + T)

Ejecutad y comprobad el funcionamiento, no pulseis imprimir con la opcin de salida a impresora activada puesto que no se dispone de ella

Se pueden pasar valores de parmetros mediante la creacin de una lista de parmetros, como en el ejemplo anterior, desde un formulario a otro mediante los procedimientos New_Form(), Open_Form() y Call_Form() Hemos utilizado los parmetros predefinidos de Report: destype con el que se establece a donde va la salida (printer, screen, preview, etc), copies que establece el nmero de copias a imprimir. Consltese la ayuda para la utilizacin de otros parmetros Report dispone de su propia ventana para la asignacin de valores en ejecucin. Se edita fcilmente desde el men pulsando Herramientas|Constructor de Pantalla de Parmetros Report tambin permite la definicin de parmetros de usuario. Incluso permite parametrizar la consulta en que basa su ejecucin

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

66

Creacin y Uso de Parmetros


Vamos a parametrizar la clusula Where del informe LibroContabilidad
Creamos un parmetro de usuario pulsando crear sobre Parmetros del Usuario dentro de Modelo de Datos Establecemos las propiedades de la figura Seleccionamos Herramientas|Constructor de Pantalla de Parmetros seleccionando el parmetro CLAUS_WHERE y poniendo en Etiqueta: Clusula Where Editamos, a travs de sus propiedades, la consulta Q_1 (bajo la clase Consultas de Modelo de Datos) para que ponga:

Ejecutamos el informe y, para el ltimo parmetro, introducimos, por ejemplo: where Total > 500

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

67

Creacin y Uso de Parmetros

Aspecto de la Pantalla de Parmetros y del Informe en ejecucin


Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 68

Empaquetado y Distribucin de Aplicaciones


La implantacin de una aplicacin Developer es una tarea compleja ya que puede implicar diversas tareas de administracin para su puesta en funcionamiento La relacin de tareas necesarias depende de diferentes factores:
Modo de publicacin: Web o Cliente/Servidor Configuracin actual de los servidores y clientes: disposicin, o no, del entorno runtime de Developer en los clientes, disposicin de los servidores de Bases de Datos, servidores Web, servidores de ficheros, etc. El grado de compromiso contractual con el cliente: si estamos desarrollando para un tercero este grado determina los cometidos en cuanto a la instalacin y administracin de las herramientas necesarias para el funcionamiento o, si el cliente dispone de un administrador, suministrar la informacin precisa para la correcta configuracin e integracin de nuestra aplicacin con el sistema

Los requisitos comunes para que una aplicacin funcione son:


Disponer de un servidor de Bases de Datos (preferiblemente Oracle aunque se puede acceder a cualquier Servidor mediante ODBC) configurado adecuadamente Disponer de una red (preferiblemente con soporte TCP/IP) con PC clientes debidamente configurados y conectados con el servidor o servidores. Sera interesante disponer de un servidor de archivos que permita a los clientes compartir ficheros comunes
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 69

Empaquetado y Distribucin de Aplicaciones


Crear o adaptar los esquemas utilizados por la aplicacin (creacin de usuarios y mtodos de acceso, gestin de recursos, creacin de tablas vistas y otros objetos con los adecuados privilegios de acceso) y, en su caso, cargar los datos en esta base de datos

Si distribuimos para un entorno Cliente/Servidor:


Los PCs clientes deben estar configurados para poder acceder al Servidor de Bases de Datos (Cliente de SQL*Net para el caso de Servidores Oracle) y con el componente runtime de Developer (Form Runtime, Report Runtime, Graphics Runtime, etc.). Existen dos formas de realizar esta instalacin:
Utilizar el CD-ROM de instalacin de Developer y, al ejecutar el instalador, seleccionar la opcin Deployment Instalacin, opcin sta que instala todo lo necesario Si se dispone de un servidor de ficheros, utilizar Oracle Software Client Manager, que es un modo de instalacin que permite instalar el software en un directorio del servidor accesible por los PCs clientes y una pequea parte, relativa a la configuracin particular de cada PC, en el directorio local de los PCs. Adems, gestiona de forma automtica la actualizacin de todo el software y configuracin de cada PC cliente

Debemos empaquetar convenientemente los mdulos que componen la aplicacin propiamente dicha (versiones ejecutables de los formularios, informes, etc.). Proyect Builder facilita enormemente esta tarea, veamos como podemos empaquetar nuestro proyecto
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 70

Gestin del Proyecto con Proyect Builder


Esta herramienta permite la integracin y gestin de todos los mdulos (formularios, informes, grficos, bibliotecas, etc.) que componen un proyecto Copiad la carpeta h:\ccia\orawin95\pj60 a u:\ Ejecutad Proyect Builder y utilizad el Asistente de Proyectos. Introducid los siguientes datos en las ventanas del Asistente:
Nombre de Fichero del Registro del Proyecto: u:\CerditoValiente Titulo: Granja El Cerdito Valiente Directorio del Proyecto: u:\CerditoValiente

Continuad e introducid vuestro nombre y los comentarios que describan el proyecto En la siguiente ventana seleccionad Crear un Proyecto Vaco

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

71

Gestin del Proyecto con Proyect Builder


Continuad e introducid vuestro nombre y los comentarios que describan el proyecto Ventajas del empleo de Proyect Builder:
Centraliza la ejecucin de las diversas herramientas de Developer Organiza los archivos en varios directorios incluso en ordenadores diferentes Proporciona una interfaz a herramientas de control de versiones como PVCS Permite la actualizacin y generacin automtica de archivos en base a dependencias. Por ejemplo, si una serie de aplicaciones utilizan un mdulo PL/SQL y variamos ste, todas ellas se actualizan Permite automatizar el proceso de empaquetado de la aplicacin para su implantacin. Pueden programarse tareas en este proceso Permite adaptar el entorno a las necesidades de cada proyecto Permite la creacin de subproyectos y la comparticin entre equipos de desarrollo
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 72

Empaquetado y Distribucin de Aplicaciones


En primer lugar debemos disponer de un programa de compresin o de un programa de creacin de instalaciones. En nuestro caso vamos a utilizar Winzip. Con Proyect Builder en ejecucin vamos a utilizar el proyecto CerditoValiente anteriormente creado Con este proyecto seleccionado pulsamos desde el men Proyecto|Aadir Ficheros al Proyecto. Navegamos al directorio u:\CerditoValiente y realizamos una seleccin mltiple de todos los ficheros salvo los .bak y otros que no formen parte de la aplicacin. Aceptamos para incorporarlos a nuestro proyecto Nos aseguramos de que tenemos definida adecuadamente la conexin oracle0 en el apartado Conexiones y de que la tenemos asignada a nuestro proyecto Antes de empaquetar debemos asegurarnos que todos los ficheros estn compilados. Para ello, con el proyecto seleccionado podemos pulsar Proyecto|Crear Incremental o, mejor, Proyecto|Crear Todo para compilarlos todos Proyect Builder invoca al correspondiente compilador de cada fichero y lo compila automticamente, salvo para los ficheros de grficos que, al no existir un compilador separado, los abre en Graphics Builder y tenemos que desencadenar manualmente la compilacin (Fichero|Compilar Todo) y salir

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

73

Empaquetado y Distribucin de Aplicaciones


Cada uno de los ficheros que cuelgan de nuestro proyecto dispone de la propiedad Entregar Fichero (S|No) que determina si ser incluido o no en el paquete Por defecto Proyect Builder incluye slo los ejecutables, que es la forma habitual de distribuir la aplicacin, nosotros vamos a incluir tambin los fuentes para que tengamos una copia de nuestro trabajo Para ello, seleccionamos el proyecto y pulsamos Editar|Seleccionar Todo, abrimos la Paleta de Propiedades y ponemos a S Entregar Fichero Antes de empaquetar, debemos modificar la propiedad Entregar los Ficheros Seleccionados de Cerdito Valiente para que utilice winzip en la forma: {Packfile ? winzip32 -a {Packfile} {1}} Y determinar el nombre y ubicacin del fichero comprimido. Establecemos la propiedad PACKFILE con el valor u:\CerditoValiente\cerdito.zip Ya podemos empaquetar. Para ello utilizamos el asistente de entregas Herramientas|Asistente de Entregas. Activando la opcin Usar la accin DELIVER definida en mi proyecto, y aceptando el resto de las opciones

Si distribuimos para entorno Web:


Los PCs cliente slo deben disponer de un navegador Web con soporte para Java 1.1.x (por ejemplo: Explorer 4.x o Netscape 4.0x al que hay que aplicar un parche) o de la versin ejecutable del jdk1.1.x (jre.1.1.x) y de conexin TCP/IP con el/los servidor/es Un servidor Web debidamente configurado e inicializado
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 74

Empaquetado y Distribucin de Aplicaciones


El servidor de formularios para la Web configurado e inicializado El servidor de Informes para la Web configurado e inicializado El servidor de Grficos para la Web configurado e inicializado y un mdulo denominado Web Request Broker para conectar con el servidor Web (vlido para servidores Netscape, Microsoft y Oracle) Los mdulos que componen la aplicacin compilados para el sistema operativo del servidor de aplicaciones y ubicados en los directorios configurados al efecto Las pginas html desde las que se invocan a los correspondientes mdulos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

75

Empaquetado y Distribucin de Aplicaciones

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

76

Reutilizacin
Mecanismos para beneficiarse de la reutilizacin:
Utilizacin de Plantillas: Formularios, Informes, Grficos Consultas externas (Query Builder) y parametrizadas: referencias (&) y variables ligadas (:variable) Atributos visuales nominados Clases de propiedades Subclases, copia y referencia de objetos. Creacin de bibliotecas de objetos Parametrizacin, variables y paso de argumentos Aplicaciones multiformulario. Reutilizacin de un formulario en varias aplicaciones

Plantillas de Formulario
No existen como tal, se puede construir un formulario basado en otro formulario a partir de la ventana inicial Bienvenido a Form Builder seleccionando la opcin Crear un form basado en una plantilla Se abre el formulario del que se desea partir, el que actuara como plantilla Sobre esta plantilla se completa el diseo Para beneficiarse de esta aproximacin el formulario plantilla debera disponer de los elementos comunes de un conjunto de formularios que se basen en l

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

77

Reutilizacin. Plantillas
Se pueden estandarizar mediante plantillas de formularios algunos de los siguientes objetos que los componen:
Formulario: Estableciendo valores para las propiedades Sistema de Coordenadas, Mdulo de Mens y otras opciones de configuracin Disparadores del Formulario: Acciones en el disparador When-New-Form para configurar tamaos estndar y dems operaciones de inicializacin Alertas: Alertas estndar de error y aviso Bibliotecas Incorporadas: Bibliotecas estndar compartidas por mltiples formularios Lienzos: Lienzo estndar con configuracin de reglas y diseo Parametros: Parmetros utilizados por todos los formularios Mens Desplegables: Mens emergentes compartidos por todas las aplicaciones Unidades de Programa: Mdulos de de Programa especficos de formulario Informes: Informes estndar compartidos por todos los formularios Ventanas: Ventanas y caja de dilogo estndar

Plantillas de Informes
Archivo que contiene texto y grficos junto con campos de ejemplo para diferentes tipos de datos: caracteres, nmeros y fechas Developer proporciona una especie de plantillas genricas que hay que adaptar para que cumplan con nuestros propsitos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

78

Reutilizacin. Plantillas
Ejercicio
Estas plantillas se encuentran en h:\ccia\orawin95\reports60\admin\template\us Abrimos desde Report Builder la plantilla corp1.tdf y la salvamos como u:\CerditoValiente\cerdito.tdf Copiamos h:\ccia\orawin95\tmp\granja.bmp a u:\CerditoValiente\granja.bmp Eliminamos la imagen de la plantilla y dimensionamos un Fichero de Con la seccin Margen marcada, creamos Enlace cuyas propiedades son: Nombre Cerdito, Formato de Fichero Origen: Imagen y Nombre de Fichero de Origen: granja.bmp Cambiamos el Ttulo por: Granja el Cerdito Valiente y Report Run on: por Informe ejecutado el: La propiedad Mscara de Formato de F_DATE1 la establecemos a: DD-MM-RRRR Salvamos Creamos nuevamente el informe LibroContabilidad.rdf utilizando esta plantilla (selecionando Fichero de Plantilla en el Asistente de Informes)

En la seccin Cuerpo se pueden personalizar todos los parmetros de visualizacin de los datos del informe Tambin se pueden asociar bibliotecas y unidades de programa para facilitar su utilizacin desde los informes
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 79

Reutilizacin. Atributos Visuales


Atributos Visuales
En la seccin Atributos Visuales se pueden crear objetos que recogen las caractersticas visuales de los elementos. Las propiedades que se pueden establecer son:
Nombre de la Fuente, Tamao de la Fuente, Grosor de la Fuente, Estilo de la Fuente, Espaciado de la Fuente, Color del Primer Plano, Color del Fondo, Trama de Relleno, Atributo Lgico de Modo Carcter (para la versin de la aplicacin en modo carcter), Blanco sobre Negro (si se pone a S, texto blanco sobre negro para pantallas monocromas)

Para que un elemento asuma las propiedades de un objeto Atributo Visual establecemos el nombre de ese objeto en la propiedad Grupo de Atributos Visuales Cuando se modifican las propiedades del objeto Atributo Visual, se modifican las de todos los elementos que lo utilizan Deberan crearse atributos visuales nominados para cada tipo de atributos e incluirlos en las plantillas de Formulario

Clases de Propiedades
En la seccin Clases de Propiedad se pueden crear objetos que implementan caractersticas de herencia en las aplicaciones Posibilita establecer propiedades funcionales adems de las visuales Para crear una clase de propiedades se pulsa create en la seccin Clases de Propiedad o se abre la hoja de propiedades de un objeto existente y se pulsa la herramienta Clase de Propiedad de la hoja para crear una Clase de Propiedad basada en ese objeto
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 80

Reutilizacin. Clases de Propiedades


Se aaden propiedades a la clase mediante , se eliminan mediante , se copian mediante y se pegan mediante Una clase de propiedades puede heredar las propiedades de otra clase de propiedades Para que un elemento herede las propiedades de una clase de propiedades hay que establecerla en su propiedad Informacin de Subclase, desde esta propiedad tambin se pueden heredar las propiedades de cualquier objeto existente Las propiedades heredadas se pueden sobreescribir (reemplazar el valor heredado) poniendo el nuevo valor en la propiedad del objeto. Se puede recuperar el valor heredado seleccionando la propiedad y pulsando La utilizacin de disparadores en las clases de propiedades es posible, slo que es preciso generalizar su funcionamiento

Subclases, copia y referencia de Objetos


Desde el Navegador de Objetos se puede utilizar el mecanismo de arrastrar y soltar para mover un objeto de ubicacin y para crear un objeto o referencia al mismo (si mantenemos pulsada la tecla Ctrl durante la operacin de arrastre). No es muy aconsejable crear referencias Las subclases basadas en objetos se crean de forma similar a la empleada para utilizar las clases de propiedades

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

81

Reutilizacin. Grupos de Objetos


Bibliotecas de Objetos
Es un contenedor de objetos de tipo Formulario Se pueden incluir cualquier nmero de objetos individuales, como bloques, elementos, lienzos, ventanas o clases de propiedades Actualmente no se pueden almacenar objetos de tipo men, informe o grfico La biblioteca se crea desde la seccin Grupos de Objetos. Una doble pulsacin sobre la nueva biblioteca abre el editor de Grupos de Objetos que muestra dos fichas para organizar los objetos que se incluyan El nombre y nmero de fichas se puede variar para lograr una mejor organizacin de los objetos introducidos Para copiar objetos a esta biblioteca slo es preciso arrastrarlos desde el Navegador de Objetos a la pestaa correspondiente Un vez completada nuestra biblioteca es preciso salvarla en nuestro directorio Para utilizarla se abre en la seccin Grupos de Objetos y se arrastran los objetos que contienen hasta el lugar correspondiente del formulario Se nos preguntar si queremos copiar el objeto o crear una clase del objeto, en el ltimo caso las modificaciones que se hagan en el objeto de la biblioteca se reflejarn en el objeto del formulario Un objeto de una biblioteca puede convertirse en una Smart Class y figurar en el men que se despliega con el botn derecho sobre cualquier elemento bajo la entrada SmartClasses
Guin de Prcticas Programacin de Bases de Datos y Bases de Datos II 82

Reutilizacin. Ejercicios
Para ello seleccionamos el objeto deseado en el editor de Grupos de Objetos de la biblioteca de objetos Pulsamos la opcin de men Objeto|SmartClass, aparecer una marca verde junto a ese objeto en dicho editor Para verificarlo seleccionamos en el formulario un objeto del mismo tipo y pulsamos el botn derecho, debe aparecer ese objeto en la entrada SmartClass

Ejercicios de reutilizacin
Cread un objeto de tipo Atributo Visual que especifique las propiedades visuales para vuestros elementos Cread una Clase de Propiedad a partir del elmento nombre del bloque persona del formulario RecursosHumanos Utilizad los mecanismos de arrastrar y soltar sobre objetos Cread un Grupo de Objetos y disponed en ella pestaas para elementos, bloques, Clases de Propiedad y Atributos Visuales. Copiad en ella objetos de cada una de estas categoras tomados de los ejercicios anteriores y del formulario RecursosHumanos Cread un nuevo formulario llamado plantilla.fmb que responda a los siguientes requisitos (podis recurrir a algunos de los elementos disponibles en la biblioteca anterior):

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

83

Reutilizacin. Ejercicios
Que utilice el men mimenu Que disponga de alertas de informacin y de error genricas. Modificad los procedimientos disponibles en mibiblioteca para que utilicen estas alertas de forma parametrizada Que tenga enlazada la biblioteca mibiblioteca Que disponga de un disparador When-New-Form-Instance a nivel de formulario que visualice una ventana de bienvenida a travs de las alertas definidas y que ejecute la ventana de aplicacin maximizada Que disponga de las Clases de Propiedades y de los Atributos Visuales definidos anteriormente

Salvad esta plantilla y utilizadla como base para crear una nueva versin de RecursosHumanos llamada RecursosHumanosb.fmb. Podes utilizar tambin la biblioteca de objetos

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

84

Bibliografa
Manual de Oracle Developer/2000. Robert J. Muller. Oracle Press. McGrawHill. 1998 Oracle8. Programacin PL/SQL. Scott Urman. Oracle Press. McGraw-Hill. 1998

Guin de Prcticas

Programacin de Bases de Datos y Bases de Datos II

85

You might also like