Professional Documents
Culture Documents
Universidad de Granada
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
Guin de Prcticas
LibroCuentas
Relativo a
Persona
Trabajador Posee
Cualificacion
Apunte#
Fecha
TipoOp
Item
Vive en
Total
Cantidad
TipoCant
PrecioUnitario
Alojamiento
Aloja-miento
NombComplet
Director
Direccion
C) Informe Alojamientos
Guin de Prcticas
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
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
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
Antes de comenzar crearemos el siguiente directorio: u:\CerditoValiente donde ubicaremos todos los ficheros relacionados con los tutoriales y ejercicios
Guin de Prcticas
Guin de Prcticas
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
Guin de Prcticas
10
Guin de Prcticas
11
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.
Guin de Prcticas
13
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
14
Ejecutad el formato, comprobad los resultados y almacenad como empleado si todo ha estado conforme
Guin de Prcticas
15
Guin de Prcticas
16
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
17
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
Guin de Prcticas
19
Guin de Prcticas
20
Guin de Prcticas
21
Guin de Prcticas
22
Guin de Prcticas
23
Guin de Prcticas
24
Pulsamos Aceptar y se visualiza el grfico. Podemos cambiar la fuente del ttulo para resaltarlo ms Salvad como pagos.ogd
Guin de Prcticas
25
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
Guin de Prcticas
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
28
Guin de Prcticas
29
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
Guin de Prcticas
32
Guin de Prcticas
35
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
Guin de Prcticas
40
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
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
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
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
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;
Guin de Prcticas
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
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
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
53
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
Guin de Prcticas
54
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
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
59
Mens
Guin de Prcticas
61
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
62
Guin de Prcticas
63
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
66
Ejecutamos el informe y, para el ltimo parmetro, introducimos, por ejemplo: where Total > 500
Guin de Prcticas
67
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
Continuad e introducid vuestro nombre y los comentarios que describan el proyecto En la siguiente ventana seleccionad Crear un Proyecto Vaco
Guin de Prcticas
71
Guin de Prcticas
73
Guin de Prcticas
75
Guin de Prcticas
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
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
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
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
Guin de Prcticas
81
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
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
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
85