Professional Documents
Culture Documents
Dia 1
................................................................................................................3
ORACLE FORMS.................................................................................3
El entorno de Oracle Forms........................................................3
El Navegador de Objetos................................................................3
Disparadores..............................................................................................................4
Alertas........................................................................................................................4
Bibliotecas Incorporadas...........................................................................................4
Bloques......................................................................................................................5
Elementos..................................................................................................................5
Relaciones..................................................................................................................5
Vistas-Lienzo.............................................................................................................5
Editores......................................................................................................................5
LOV (Listas de Valores)............................................................................................6
Grupos de Objetos.....................................................................................................6
Parmetros.................................................................................................................6
Unidades de Programa...............................................................................................6
Clases de Propiedad...................................................................................................6
Grupos de Registros...................................................................................................7
Atributos Visuales......................................................................................................7
Ventanas.....................................................................................................................7
Hojas de propiedades de objetos...............................................................................7
Dia 2
..............................................................................................................20
Dia 3
..............................................................................................................24
Dia 4
..............................................................................................................27
Dia 5
..............................................................................................................38
Herramientas de Desarrollo
Oracle Forms
29/02/16
Dia 1
ORACLE FORMS
OracleForms6.0esunaherramientadedesarrolloquepuedeserusadaparacrearaplicacionespara
introducir,accedera,modificaroeliminardatosdesdeunabasededatosOracleenunentorno
basado en formularios en lnea. Forms ha proporcionado muchos objetos para desarrollar un
mdulodeaplicacinefectivo. Acopladoconelconceptodeextensibilidaddeusuario,Forms
puedeserusadoparaservirvirtualmenteparacualquiernecesidadenlneaenunentornodebases
dedatosdeOracle.
EstecaptuloexploramuchosdelosconceptosrelacionadosconeldesarrollodeOracleForms.Los
ejemplos comienzan con unos primeros pasos iniciales y agregan gradualmente informacin
suficiente de forma que el lector puede seguir sus propios pasos. Con cada avance en la
complejidad,lasaplicacionessevanhaciendomspotentes.Alfinal,seremoscapacesdehurgar
dentrodeconceptosavanzadosyquizsagregarinnovacionespropias.
El Navegador de Objetos
El Navegador de objetos (que se muestra en la figura 1) presenta todos los elementos que se
combinan para crear un mdulo de aplicacin de Oracle Forms. Se pueden manipular esos
elementos(uobjetos)usandolosbotonesenformadeiconosylasopcionesdelosmens.Dentro
delNavegadordeObjetos,loscomponentesdelaaplicacinsepresentanenformatodeesquema
jerrquicoindicandolaorganizacindeloselementosindividuales.
Herramientas de Desarrollo
Oracle Forms
29/02/16
Figura1.ElNavegadordeObjetosdeOracleFormsylashojasdepropiedades.
Disparadores
Los disparadores son funciones PL/SQL que son ejecutadas basadas en alguna actividad o
condicin especficas del formulario. Estas actividades, llamadas eventos, son la base de la
caractersticadelaextensibilidaddeusuariodeOracleForms. Aunquemuchosdeloseventos
disparadores realizan una funcin particular por defecto, se puede escribir un disparador para
desactivar, modificar o mejorar las capacidades de procesamiento por defectoasociadas con el
evento.Sepuedendefinirlosdisparadorescomoelniveldecampodeformulario,bloque,registro
o individual. Adems, un disparador puede hacer que se dispare otro disparador, as como
ejecutar,otraunidaddelprogramarelacionado.
Alertas
Lasalertasproporcionaninformacinadicionalobienotrosmensajesquerequieranrespuestao
acusederecibodesdeelusuario.Unaalertapuedecontenerdeunoatresbotonesquesepueden
usarparadefinirlaaccinqueelusuariodeseaqueseejecutebasadaenlacondicin.
Bibliotecas Incorporadas
Herramientas de Desarrollo
Oracle Forms
29/02/16
LasbibliotecassonmdulosespecialesdeOracleFormsquepuedenserdefinidosparacontener
procedimientosyfuncionesreutilizables. Vinculandobibliotecasdeunidadesdeprogramaaun
formulario,sepuedemantenerelcdigodelprogramaenunnicoarchivoenluegardeencada
mdulodeformularioindividual. Lasbibliotecasayudanaasegurarlacalidaddeunaaplicacin
comprobandoquetodoslosmdulossiguenlasmismasreglasdeltema.
Bloques
Un bloque de un formulario corresponde generalmente a una entidad individual (table, vista o
instantnea)delabasededatos.Adicionalmente,sepuedencrearbloquesquenocorrespondena
ninguna tabla. Esos bloques, llamados bloques de tabla no base, contienen usualmente
informacin de control genrica, tal como criterios de consulta, contadores, indicadores
condicionalesyotrainformacinquepuedeestarrelacionadaconmsdeunregistrooactividad.
(Losbloquesqueserelacionanconunaentidadsondenominadosbloquesdetablabase).
Elementos
Loselementos(quenosemuestranenlafigura1)sonagrupadosenelNavegadordeObjetosdentro
desusbloquesrespectivos.Unelementocorrespondeaunelementodedatosouncampo nico.
Esoselementospuedencontenercolumnasdebasededatosopuedenserusadoscomocontenedores
paraotrosdatosrelacionados.
Relaciones
Lasrelaciones(quenosemuestranenlafigura1)sondefinidasdeacuerdoconlaformaenquese
relacionanentreslosbloquesindependientesdeunformulario.Generalmenteenunformulariode
variosbloques,unbloqueesdefinidocomotablaprimariaomaestrayelotrobloquemuestra
informacin de detalle asociada con el registro actual del bloque maestro. Un ejemplo de
formulario de detalle maestro es una aplicacin de registro de empleados en la que el bloque
maestromuestraelDepartamentoyelbloquedeldetallemuestraLaspersonasquepertenecenaese
departamento.
Vistas-Lienzo
Unlienzoeslaestructuravirtualenlaquesedisponenlosobjetosdelformulario.Paralamayor
parte,loslienzossondefinidoscomolienzosdecontenidooapilados.Unlienzodecontenidose
muestraensutotalidaddentrodelaventanadelformulario.Siemprequesemuestraporprimera
vezunlienzodecontenido,todoslosdemslienzossonocultadosenlaventana.Unlienzoapilado,
porotraparte,semuestraporencimadetodosloslienzosexistentesdentrodelaventanadel
formulario.Ademsdeesosdostiposdelienzos,sehaincluidoenFormsuntercertipodelienzo.
Unabarradebotonesapareceenlapartesuperiordetodosloslienzosquesemuestranyesutilizada
usualmenteparacontenerbotonesenformadeiconosparaloscomandosdelusuario. Existeun
lienzonuloespecialparacontenerlosobjetosquesemuestran.
Editores
Herramientas de Desarrollo
Oracle Forms
29/02/16
Uneditoresunaventanaparavisualizarymantenercamposdedatosgrandes.Estoscamposestn
algunasvecesincluidosparalaentradadecomentariosdelusuariooparaotrainformacinqueno
quepanormalmenteenunelementoquesemuestre.
Grupos de Objetos
Ungrupodeobjetosesunmecanismoespecialparaempaquetarvariosobjetosdeformulariodentro
de un contenedor, que pueda ser usado despus en otros formularios con un mnimo de
programacin. Unavezquesehacreadoungrupodeobjetosenunformulario,sepuedecopiar
cualquieradelosobjetosdelformulariodentrodelgrupodeobjetos.Porejemplo,unformulario
puedecontenerunpaquetesecundarioquemuestreunaplantilladeunhorario.Sepuedencopiar
loscomponentesdeestemdulosecundarioalgrupodeobjetosyotrosformulariospuedenhacer
referenciaalgrupodeobjetos,quesecomportacomosifuerapartedelmismoformulariosegundo.
EstaesotracaractersticadeFormsquepromuevaelplanteamientoorientadoaobjetosalavezque
garantizalacalidadpormediodelaconsistencia.
Parmetros
Podemos definir parmetros para unformulariopara proporcionar unentrada de inicio para el
formulario.Generalmente,losparmetrospasanvaloresdesdeunformulariohastaotroformulario
recin llamado en una aplicacin de varios formularios. Antes de las herramientas de
Developer/2000, la nica forma de pasar valores entre formularios era por medio del uso de
variablesglobalesquetendanaconsumirlamemoriadisponible. Aunquelasvariablesglobales
estnandisponibles,sedebenusarparmetrosenloscasosenquelosdatosseanespecficospara
los formularios individuales en lugar de ser universales para todos los formularios de una
aplicacin.
Unidades de Programa
Las unidades de programa son procedimientos y funciones PL/SQL que pueden llamar los
disparadoresdelformulario.Unaunidaddeprogramaesequivalentealconceptodeprogramacin
detercerageneracindelassubrutinas.Uncandidatotpicoparasudefinicinesunsegmentode
cdigodeprogramausadopormsdeundisparador.Sedebenusartambinunidadesdeprograma
paramodularizarsegmentosdecdigograndes.
Clases de Propiedad
Herramientas de Desarrollo
Oracle Forms
29/02/16
Unaclasedepropiedaddefinelaspropiedadesdeunaclasedeobjetos. Enloscasosenlosque
muchosobjetosdeformulariotienenpropiedadesidnticas,unaclasedepropiedadbeneficiaal
desarrolladorgarantizandoquelosobjetossonconsistentes. Adicionalmente,sepuedenusarlas
clasesdepropiedadparahacercumplirlosestndaresyparaacelerareltiempodedesarrollodeun
mdulodeformulario.
Grupos de Registros
Sepuedeconsiderarungrupoderegistroscomounatablavirtualenlamemoria. Losgruposde
registrossonconjuntosdedatosestructuradosquesepuedenusarparapasardatosentremdulosde
aplicacionesoparapoblarlistasdevaloresodeotroselementosdelistas.
Atributos Visuales
Un atributo visual de un objeto define el color, la fuente y las caractersticas de estilo de un
elemento. Aunque sepuedever cada unode los valores individualmente para cada objeto, el
atributovisualproporcionaunmecanismoparadefinirunacombinacinvlidadecaractersticas
visualesparaunformulario.Unaaplicacindealtacalidadnodebeusarmuchosatributosvisuales
diferentes dentro de los elementos. Adhirindose a un conjunto de atributos visuales, los
formularios pueden usar una caracterstica particular de un elemento para expresar un sentido
especfico.
Ventanas
Unaventanaeselmarcodentrodelcualapareceunformulariosobrelapantalladeunusuario.
Cadalienzoesasignadoaunaventanaespecficaenelformularioyvarioslienzospuedenser
asignadosalamismaventana.Unnicoformulariopuedecontenervariasventanasoconsistiren
slounaventana.
Herramientas de Desarrollo
Oracle Forms
29/02/16
ElbotnInherit(Heredar)hacequelapropiedadseleccionadaenlaactualidadherededesdelaclase
depropiedaddelobjeto.Sinosedefineningunaclaseparaelobjeto,elbotnInherithacequela
propiedadsearestauradaalvalorpordefectodeForms6paralapropiedad.
ElsiguientebotnseusacuandoseseleccionaunobjetodesdeelNavegadordeObjetos.Elbotn
cambia entre mostrar la unin de todas las propiedades asociados con todos los objetos
seleccionadososlolaspropiedadesasociadascontodoslosobjetos(interseccin). Cuandose
seleccionanvariosobjetosenelNavegadordeObjetos,unsencillocambioaunapropiedadenla
hojadepropiedadesespropagadoatodoslosobjetos.
Seusaelltimobotnparacongelar(freeze)odescongelar(unfreeze)elmododesincronizacinde
la hoja de propiedades . Cuando la ventana est descongelada (por defecto), siempre que se
seleccionaunobjetonuevo,lahojadepropiedadesestsincronizadaparamostrarelnuevoobjeto.
Sinembargo,siestcongeladanoseproducelasincronizacinhastaquesedescongele.
Truco: SepuedenmaximizarlasdiversasventanasdeOracleFormsdentrodelaventana
deldiseador.Pero,enlaprctica,usandovariasventanassimultneamente(vasefigura1)
sepuedeacelerarlafasedeprogramacindelmdulo. Conformenosmovemosporel
NavegadordeObjetos,semuestralahojadepropiedadesadecuaday,alseleccionarvarios
elementos del Navegador, veremos las propiedades comunes. Esta es una cuestin de
preferenciapersonalypodemosencontrarquetienevariasventanasesdemasiadoconfuso.
Sinembargo,recomendamosquesepruebeantesdedecidirquesloqueseprefieremejor.
Botn
Uso
Seleccionar
Ampliar
Rectngulo
Elipse
Polgono
Rectngulo Redondeado
Texto
Check Box
Text Item
Chart Item
VBX Control
List Item
Rotar
Herramientas de Desarrollo
Oracle Forms
29/02/16
Remodelar
Lnea
Arco
Lnea segmentada
Mano Alzada
Push Button
Radio Button
Image Item
OLE2 Object
Display Item
Tabla1BotonesdelLayoutEditor
LoscuadrosdelistadelapartesuperiordelLayoutEditorpermitenalusuarionavegarentrelos
diversoslienzos(Canvas)ybloquesdelformulario,mientrasquelosbotonesenformadeiconosse
usanparaelcontroldeloscomandosdentrodeleditor.Estosbotonesson,enorden:
Open
Save
Run
Cut
Copy
Paste
CopyProperties
PastePropierties
Herramientas de Desarrollo
Oracle Forms
29/02/16
Abreunmduloexistente.
Guardaelmduloactual.
Ejecutaelmduloactual.
Cortalosobjetosseleccionados.
Copialosobjetosseleccionados.
PegalosobjetosdesdeelPortapapeles.
CopialaspropiedadesenelPortapapeles.
PegalaspropiedadesdesdeelPortapapeles.
Figura2
ElLayoutEditordeOracleForms
Herramientas de Desarrollo
Oracle Forms
29/02/16
10
Herramientas de Desarrollo
Oracle Forms
29/02/16
11
Por defecto, Oracle Forms muestra una sugerencia en la zona inferior izquierda de la pantalla
basadaenelcontextodeldiseador.Seleccionandolacasillasiguiente,SuppressHints(Suprimir
Sugerencias),sesuprimelaaparicindesugerencias.Siseactivalaopcinsiguiente,RunModules
Asynchronously (Ejecutar mdulos en forma asncrona) el Forms Designer permite ejecutar un
mdulodeformularioytrabajarsimultneamenteeneldiseador.Deotroforma,esnecesariosalir
delformularioentiempodeejecucinantesdeusarposteriormenteeldiseador.Laltimacasilla
deverificacindefineeleditorquedebeserusadoeneldiseador.Laltimacasilladeverificacin
defineeleditorquedebeserusadoeneldiseador.Activandoestacasilla,hacequeeldiseador
use un editor del sistema operativo en lugar del de formularios por defecto. (En entornos de
Windows3.xodeWindows95/NT,eleditordeformulariospordefectooperadeformasimilara
notepad.exe)
Herramientas de Desarrollo
Oracle Forms
29/02/16
12
Lapaletadecoloresdeterminaloscoloresquedebenserusadosenunformulario.Serecomienda
queseuselapaletade16coloresdeOracle,comoseveenlafigura3paragarantizarlacapacidad
decorrespondenciadecoloresentrelosobjetosdelformulario.SeutilizaelMododelapaletade
coloresparadefinirlaformaenquedebensermanejadaslaspaletasdecoloresenOracleForms.
Lasopcionesdelcuadrodelistason:Editable,ReadOnlyShared(Slolecturacompartido)yRead
OnlyPrivate(Slolecturaprivado).Editablesignificaquelapaletadecolordelformularioactivo
reemplazaalapaletadecolordelsistema,haciendoqueelformularioactivoseamostradocon
exactitudmientrasquelaaparienciadetodoslosformulariosinactivospuedenoserexacta,Read
OnlySharedsignificaquecadapaletadecoloresdelformularioesagregadaalapaletadelsistema
hastaqueelespacioreservadoparalapaletaquedelleno.Siseabrecualquierformularioqueuse
unapaletadecoloresdiferente,puedequenoaparezcaexacta. Finalmente,ReadOnlyPrivate
operalomismoqueelmodocompartidoexceptoqueOracleFormsgarantizaquelapaletausadaes
siemprevlidaparaelformularioactivoyquecualquierformularioinactivopuedenoaparecer
correctamentedebidoaquesuspaletasdecoloreshansidoborradasparadejarespacioparael
nuevoformulario.
LasopcionesModuleAccess(Accesoalmdulo)definensilosmdulosdebenserabiertosdesdela
basededatos(Database)odesdeelsistemadearchivos(File),odesdeambos(File/Database)o
desdeelsistemadeserincluidosenlaseleccin.Laltimaopcindefinelaimpresoraquedebeser
utilizadaparacualquiernecesidaddeimpresindelFormsDesigner.
Seusalasegundapestaadeestaventana(vasefigura4)paradefinirlasopcionesausarcuandose
ejecutaunmdulodesdeelOracleFormsDesigner. Laprimeraopcin,BufferRecordsinFile
(Registrosdebferesenelarchivo),hacequeFormsregistreenunbferenlamemoriasolamente
elnmeromnimoderegistros(elnmeroderegistrosquesemuestranmstres).Todaslasfilas
adicionalesrecuperadassonalmacenadasenunarchivotemporal.Lasiguienteopcinhacequeel
formularioseaejecutadoenunmododedepuracin.Estaopcinpermiteinsertarinstruccionesde
interrupcinenlossegmentosPL/SQLparaobservarlosvaloresdeloselementosdelformularioy
paraseguirlaevolucindelcdigodelprograma.
LascuatroopcionessiguientesestnrelacionadasconlapuestaapuntodelrendimientodeOracle
Forms.ArrayProcessing(Procesamientomatricial)permitequeelformulariodevuelvavariasfilas
desdelabasededatosenunnicociclobsquedaenlugardeunacadavezpuedetenerimpactoen
elusodelamemoriaenelformulario. Paramantenercompatibilidadhaciaatrs,OracleForms
permite usar en el formulario disparadores del estilo de la version 2 (pasos de procesamiento
independientes). LaopcinOptimizeTransactionModeProcessing(Optimizarelprocesamiento
delmododetransaccin)hacequeestosdisparadoresseanprocesadosutilizandounatcnicade
optimizacinparaaprovecharlascapacidadesmsmodernasqueestnincorporadasenPL/SQL.
Optimize Transaction Mode disparadores de confirmacin) para optimizar el usodel cursor en
formaqueelcursorpuedasercompartidodentrodelformulario.LaopcinStatistics(Estadsticas)
devuelvelasestadsticasrelativasalautilizacindecursoresydeotrosrecursoscuandoseejecuta
elformulario.ElotroefectodeestaopcinesqueesgeneradaunasesindeSQL*Trace,quese
puedeanalizarconTKPROFoconunaherramientadeanlisisdelrendimientoparaquesirvade
ayudaenlapuestaapunto.
Herramientas de Desarrollo
Oracle Forms
29/02/16
13
Figura4.OpcionesdeltiempodeejecucindeOracleForms.
Lasiguienteopcin,DisplayBlockMenu,muestraelmendelbloquedeunformulario,enlugar
delformularioens,tanprontocomoseinicialelformulario.
Estemenpermitenavegardirectamenteaunbloqueparticularenlugardealinicialpordefecto.
Query Only Mode (Modo de solo consulta) desactiva todas las inserciones, eliminaciones o
actualizaciones de un formulario. Finalmente, Quiet Mode (Modo silencioso) desconecta el
pitidoaudiblequeseproducesiemprequesegeneraunmensajeenelformulario.
14
Herramientas de Desarrollo
Oracle Forms
29/02/16
15
Herramientas de Desarrollo
Oracle Forms
29/02/16
16
Figura 6.3 Data Block Wizard (Seleccin del bloque y sus elementos)
Herramientas de Desarrollo
Oracle Forms
29/02/16
17
Figura 6.5 Data Block Wizard (Seleccin del Estilo del bloque)
Herramientas de Desarrollo
Oracle Forms
29/02/16
18
Figura 6.6 Data Block Wizard (Seleccin del Ttulo y cantidad de registros)
Una vez que se haya completado lo anterior, se hace clic en la pestaa Items para mostrar el cuadro
de dilogo de definicin de elemento que se muestra en las Figura 6.3 y 6.4. Para seleccionar las
columnas de esa tabla se hace clic en el botn Select Columns y se presentar una lista de todas las
columnas de la tabla. Un signo ms delante de una columna indica que la columna es utilizada en el
formulario. Para excluir una columna, se hace doble clic en el nombre de la columna en el cuadro
de la lista. Para cada columna de la lista, se modifica la etiqueta en el cuadro Label y el ancho de la
columna en el cuadro With. El tipo de elemento se modifica en el cuadro de lista Type.
Despus de completar este cuadro de dilogo, se hace clic en OK para terminar de construir el
formulario. Para comprobar el formulario se hace clic en el icono Run (Ejecutar) o bien se
selecciona File, Run (Archivo, Ejecutar) en el men. Obsrvese que este captulo supone que se
han seleccionado las opciones del diseador Save Before Generate (Guardar antes de generar) y
Generate Before Run (Generar antes de ejecutar). En caso contrario, deben realizarse esos pasos
manualmente antes de ejecutar el formulario. Aparecer el formulario, tal como se ha mostrado
antes en la Figura 5, con todos los cuadros de datos vacos. Para presentar una lista de los datos
existentes, se selecciona Consultar, Ejecutar. Se pueden introducir datos en los campos y despus
guardarlos usando Accin, Salvar. Para cerrar el formulario se selecciona Accin, Salir.
Herramientas de Desarrollo
Oracle Forms
29/02/16
19
Dia 2
Usar texto fijo y grficos para realzar las aplicaciones de
formularios.
El ejemplo anterior no proporciona el aspecto y acabado tridimensional que es comn en la mayor
parte del software de Windows. Utilizando algunos de los objetos grficos y efectos visuales de
Oracle Forms, se puede transformar en una aplicacin ms agradable, como se muestra en la figura
9
20
En este caso seleccionamos la Fuente, Arial; Estilo de Fuente, Negrita cursiva y tamao 9. En el
cuadro Ejemplo se ve una muestra de la seleccin. Al terminar se hace clic en Aceptar para aplicar
las modificaciones.
21
y a continuacin Arrange, Send to Back (Organizar, Enviar atrs) para llevarlo a un segundo plano
si han desaparecido las cabeceras de las columnas al insertar este rectngulo. Usando el ratn,
podemos organizar los objetos para que aparezcan en la pantalla como se muestra en el ejemplo.
22
necesario definir caractersticas especiales para objetos de aplicaciones. Se puede hacer esto
modificando las propiedades de los objetos del formulario usando la hoja de propiedades del objeto.
Para examinar las propiedades, cargaremos de nuevo el formulario de la seccin anterior. Cada
objeto del formulario (incluyendo el formulario en s) tiene una hoja de propiedades asociada
sensible al contexto. Las propiedades de los objetos estn organizadas en grupos lgicos basados en
su utilizacin. Para cambiar una propiedad, se selecciona el objeto en el Navegador de Objetos. Si
la hoja de propiedades est visible en la organizacin de ventana dividida, la hoja de propiedades se
muestra automticamente para el objeto. Si la hoja de propiedades no est visible, haciendo doble
clic sobre el icono que se encuentra a la izquierda del nombre del objeto en el Navegador de
Objetos se ver la hoja de propiedades.
Usualmente, solamente son visibles algunas de las propiedades en la ventana y se dispone de barras
de desplazamiento para ver las dems propiedades. Para modificar una propiedad, se hace clic en la
propiedad en la hoja de propiedades. El valor de la propiedad es copiado en la lnea superior de la
ventana de la hoja de propiedades. Para modificar la propiedad, se editar esta lnea y se pulsar
Intro.
La primera modificacin personalizada que se haga afectar a la apariencia global de la aplicacin.
Seleccione la hoja de propiedades para la ventana del formulario (Ventanas). Cambie el ttulo de la
ventana EMP por EMPLEADOS y despus cambie el ancho de la ventana a 400 y la altura a
200. Para impedir que un usuario utilice la funcin Windows para cambiar el tamao del marco de
la ventana o para minimizar, actualice la propiedad Tamao Fijo como TRUE (Verdadero) y la
propiedad Iconificable como FALSE para la ventana del formulario. Adicionalmente, repita las
propiedades del tamao para el lienzo CANVAS1 (o bien el nmero de CANVAS que resulte,
CANVAS2..., etc.).
Ahora selecciones el elemento EMPNO y cambie la propiedad Actualizacin Permitida a FALSE.
Este cambio protege de los cambios a la clave primaria de la tabla de empleados. Finalmente
seleccione a la vez los campos EMPNO y ENAME. Obsrvase que la hoja de propiedades comn
muestra que se han seleccionado varios objetos y que, en los casos en que las propiedades son
diferentes, se muestra un conjunto de asteriscos. Despus de completar todos los cambios, guarde y
ejecute el nuevo formulario. El resultado debe tener un aspecto como el de la Figura 12. Compare
este formulario con el credo en la seccin anterior para ver la forma en que los cambios de las
propiedades afectan al mdulo del formulario resultante.
Herramientas de Desarrollo
Oracle Forms
29/02/16
23
Dia 3
Implementar disparadores y unidades de programa
Se pueden personalizar todava ms las aplicaciones de Oracle Forms desarrollando procedimientos
y funciones PL/SQL llamados disparadores. Estos disparadores estn vinculados para especificar
actividades en el formulario llamados eventos. Los eventos estn definidos generalmente como
antes de (PRE-FORM, PRE-QUERY, PRE-INSERT), despus de (POST-FORM, POST-QUERY,
POST-INSERT) o bien durante (WHEN-NEW-FORM-INSTANCE, WHEN-BUTTON-PRESSED)
las actividades comunes de la base de datos. Adicionalmente, se pueden asociar los disparadores
con determinadas actividades del teclado (por razones de compatibilidad hacia atrs con
aplicaciones basadas en caracteres), aunque la tendencia es reducir al mnimo los disparadores
clave.
El formulario de Mantenimiento de empleados de la Figura 13 utiliza un disparador PRE-INSERT
para determinar un nmero exclusivo de empleados basado en un generador de secuencias.
Adicionalmente, los disparadores son definidos por los botones de la parte inferior del formulario.
Para construir este formulario, se crea un bloque para la tabla EMPLEADOS usando un estilo de
formulario en la definicin de la disposicin del bloque.
Se organizan los elementos y los objetos de texto fijo como se muestra en la figura y, usando la
herramienta Push Button, se crean tres botones como se ve en la pantalla. (Esos botones tendrn en
Herramientas de Desarrollo
Oracle Forms
29/02/16
24
sus propiedades la Etiqueta PUSH_BUTTON.) Usando las herramientas Size Objects y Align
Objects del men Arrange, se colocan y se ajusta el tamao de los objetos del formulario y se
colocan para que aparezcan como muestra la figura.
Ahora definiremos las propiedades de los objetos segn sea necesario definiendo los tamaos de la
ventana y del lienzo y de los ttulos. A continuacin, puesto que el nmero de empleado debe estar
protegido contra las actualizaciones, cambiaremos las propiedades Actualizacin Permitida y
Navegable de EMPNO a False. Modificaremos las propiedades de los rtulos para que los botones
reflejen el texto que se muestra en la figura.
En este punto, podemos agregar al formulario la lgica de procesamiento adicional. En primer
lugar, EMPLEADOS en el Navegador de Objetos. Haremos clic en el botn Create (Crear) y
aparecer una lista de todos los nombres de disparadores vlidos que pueden ser construidos para el
formulario. El disparador que va a ser construido determina el nmero de empleado para un
empleado nuevo antes de insertar basado en el generador de secuencia de la base de datos. Mientras
se muestra esta lista, se puede o bien usar la barra de desplazamiento para encontrar el disparador
PRE-INSERT o bien teclear el nombre del disparador dentro del cuadro de entrada.
EleditorPL/SQL,quesemuestraenlaFigura14aparece,indicandoelniveldeldisparadoryel
nombre del disparador conunazona que puede ser usada para introducir el procedimientodel
disparadorcomosehamostrado. Unavezqueseintroduceeltexto,sehaceclicenelbotn
CompilarparaasegurarsedequenohayerroresdecdigodespussehaceclicenelbotnCerrar
paracompletarladefinicindeldisparador. Obsrveseelsignodedospuntosusadoparahacer
referenciadesdeloscampos.SepuedenusarotrosbotonesparaRetrocederalaversinanteriorala
del ltimo cierre o compilacin, para crear un disparador Nuevo o para Borrar el disparador
existente.
Finalmente,sedebecreardisparadoresWHEBUTTONPRESSEDparalostresbotonesquehan
sidocreadosenellienzodelformulariocomoseindicaacontinuacin:
Save:
begin
commitform;
end;
Clear
begin
clear_form;
end;
Exit
begin
do_key(EXIT_FORM);
end;
Herramientas de Desarrollo
Oracle Forms
29/02/16
26
Figura14.EditorPL/SQLparalacreacindedisparadores
Losdosprimerosdisparadoresusanprocedimientosincorporadosestndar,mientrasqueeltercero
usaelprocedimientoincorporadoDO_KEYparasimularlapulsacindelateclaExit.
Nota: La tecla Exit (Salir) es definida por el mapeado del teclado para el dispositivo de
presentacin en pantalla. En el teclado del PC de IBM, esto es por defecto la tecla Esc
pero puede ser modificado usando Oracle Terminal. Para visualizar el mapeado real de
las teclas durante el tiempo de ejecucin de Oracle Forms, se teclea Control+K o se
selecciona Ayuda, Teclas en el men del formulario.
Siemprequeseusaunbotndelapantallapararealizarlamismafuncinqueserarealizadaal
pulsarunateclaespecfica,esgeneralmenteunabuenaprcticausarelprocedimientoincorporado
DO_KEY.Sepuedecodificarcualquierlgicaespecficaquenecesitaserrealizadaantesdesalir
delformularioenundisparadorKEYEXITparaasegurarlaconsistencia
Herramientas de Desarrollo
Oracle Forms
29/02/16
27
Dia 4
Usar grupos de registros y listas de valores para la
validacin de los datos
Un grupo de registros es una estructura interna que es anloga a una tabla en la memoria. Los
grupos de registros contienen columnas y filas con datos basados en una estructura definida por una
definicin de consulta o de columna.
Los usos de los grupos de registros incluyen parmetros, matrices estructuradas y entidades de
validacin. Este ltimo uso de los grupos de registros es demostrado en el Mantenimiento de
empleados de la Figura 15.
28
son construidos para este formulario. Tambin se har que el campo EMPNO sea no actualizable y
no navegable. Los campos deben ser poblados con datos siempre que se consulte un registro de
elementos. Para hacerlo se crea un disparador POST-QUERY similar del ejemplo:
Begin
selectdname
into:emp.descrip_depar
fromdept
wheredeptno=:emp.deptno;
exception
whenno_data_foundthen
:emp.descrip_depar:='DeptnoExiste';
RAISE FORM_TRIGGER_FAILURE
End;
Nota: Este disparador ha sido escrito de esta forma puesto que en una aplicacin
cliente/servidor, una consulta nica es mucho ms efectiva que varias consultas
independientes. Debido a que cada uno de los campos que deben ser cargados pueden
obtenerse a travs de una consulta. Otro planteamiento ( y probablemente mejor) es crear
una vista que recupere esos valores en la consulta inicial. Siempre se puede usar una vista
como tabla base para un bloque. El paso de la excepcin introduce unos pocos conceptos
nuevos con relacin a los disparadores la campana incorporada (bell) realiza un sonido
audible desde el terminal del usuario. Tambin la excepcin FORM_TRIGGER_FAILURE
que es lanzada antes de salir del disparador hace que se aborte el todo el procesamiento
cuando se produzca un fallo.
Ahoradebendefinirselaslistasdevaloresparaeldepartamento.Paracrearunalistadevalores,se
seleccionaLOVenelNavegadordeObjetosysehaceclicenelbotnCreate.Aparecerelcuadro
de dilogo de la Figura 16. En el cuadro permite escojer que tipo de creacin desea hacer,
ManualmenteoWizard,unavezqueescojapresionaOK.
Laprimerapantallalepedirsitieneunrecordgroupyacreado,casocontrarioserealizarun
nuevoLOVconunrecordgrouptambiennuevo(Fig.16.1).
Como un LOV es informacin de ayuda, se tiene que armar un query el cual recupere esa
informacin.(Fig.16.2)
Laspantallasquesiguen,esparaverificarcualescamposenelLOVvamosapresentar,aque
campos de la forma se le asigna ese valor una vez que se recupere los valores, titulo, ancho
columnasetc.
Herramientas de Desarrollo
Oracle Forms
29/02/16
29
Figura16.Creacindeunanuevalistadevalores
Figura16.1Nuevogrupoderegistrosounoyaexistente
Herramientas de Desarrollo
Oracle Forms
29/02/16
30
Figura16.2QueryquerecuperalosdatosenelLOV
Herramientas de Desarrollo
Oracle Forms
29/02/16
31
Figura16.3Correspondenciadecolumnasparaunalistadevalores
Figura16.4Formatoyasignacindevalores
Herramientas de Desarrollo
Oracle Forms
29/02/16
32
Figura16.5Titulo,TamaoyCoordenadasdelapantalladelLOV
Figura16.6CantidaddeRegistrosaPresentarse
Herramientas de Desarrollo
Oracle Forms
29/02/16
33
Figura16.7CamposaAsignarseenlaforma
Figura16.8Propiedadesdelcampoquecontienelalistadevalores
Herramientas de Desarrollo
Oracle Forms
29/02/16
34
ParaculminarlacreacindelLOV,debemosverificarsielcampodelaformatieneasignadoun
LOV,estolopodemosvisualizarenlaspropiedadesdelcampo,enlaspropiedadesdelistade
valores.SinosotrosqueremosquecuandounusuariodigiteundatoerroneoaparezcaelLOV,la
propiedaddeVALIDATEFROMLISTdebeestarenYES
Finalmente, para conseguir completar el formulario, se crea el disparador PREINSERT en el
bloquedeelementosparaseleccionarelvalorsiguientedeS_EMPdesdeelgeneradordesecuencia
como el valor de un nuevo EMPNO. Entonces se debe guardar y generar el formulario para
comprobaresteconcepto.
SELECTS_EMP.NEXTVAL
INTO:EMP.EMPNO
FROMDUAL;
UnacaractersticaatenerencuentaesquelalistapuedeseractivadausandolatecladeListade
Valores(F9enlamayorpartedelasconfiguracionesestndardePC;paraverunalistadelasteclas
definidas,sepuedeseleccionar Ayuda, Teclasdesdeelmen). Lacaractersticadevalidacin
permitealusuarioteclearsolamentepartedelnombredelcampoparareducirlalista.
Herramientas de Desarrollo
Oracle Forms
29/02/16
35
Herramientas de Desarrollo
Oracle Forms
29/02/16
36
37
(WHEN-MOUSE-LEAVE). Puede producirse un tercer estado del ratn si el ratn se mueve dentro
de un elemento (WHEN-MOUSE-MOUVE).
La tabla 23.2 describe los disparadores adicionales que han sido agregados para las actividades con
los botones del ratn.
Nombre del
Uso
WHEN_MOUSE_DOWN
WHEN_MOUSE_UP
WHEN_MOUSE_CLICK
WHEN_MOUSE_DOUBLECLICK
MOUSE_BUTTON_PRESSED
MOUSE_BUTTON_SHIFT_STATE
MOUSE_ITEM
MOUSE_CANVAS
MOUSE_X_POS
MOUSE_Y_POS
MOUSE_RECORD
MOUSE_RECORD_OFFSET
MOUSE_FORM
38
declare
msgtext
VARCHAR(80):=message_text;
bno
number;
begin
set_alert_property(MSG_ALERT,ALERT_MESSAGE_TEXT,msgtext);
bno:=show_alert(MSG_ALERT);
end;
Dia 5
Consideraciones para aplicaciones de formularios
mltiples
Oracle Forms proporciona tres procedimientos incorporados que permiten que el usuario acceda a
otros formularios desde un formulario original de llamada.
Estos procedimientos son
NEW_FORM,CALL_FORM y OPEN_FORM.
NEW FORM termina la ejecucin del formulario original e inicia el nuevo formulario. Si se han
realizado cambios en los datos de la base de datos, se le solicitar al usuario si desea confirmar los
datos. Si selecciona no confirmar los cambios, estos se pierden. Una llamada NEW_FORM se usa
generalmente cuando el usuario navega a un mdulo de aplicacin sin relacionar.
Por otra parte, CALL_FORM pasa la ejecucin al formulario siguiente, a la vez que mantiene una
pila de llamada que regresa al formulario que llama cuando se sale del formulario llamado. Si
quedan pendientes cambios en el formulario que llama, se ejecuta el formulario llamado en el modo
POST_ONLY. Si el usuario intenta guardar los cambios realizados en el formulario llamado, los
cambios son enviados a la base de datos (una anulacin pierde todos los cambios) y son guardados
cuando se confirma el formulario original. Generalmente, se usa CALL_FORM cuando los dos
formularios son dependientes entre s y los valores pueden ser pasados o bien en variables globales
o como parmetros. Una utilizacin de CALL_FORM es agregar un botn a un formulario de
introduccin de pedidos que puede ser usado para crear un nuevo registro de empleado. El segundo
formulario puede ser usado despus para crear el registro del empleado y, despus de que se inserta
un registro nuevo y se entrega o se confirma, puede devolverse el nmero del empleado dentro de
una variable global para ser usado para la entrada de pedidos.
Finalmente, se usa OPEN_FORM para cargar un segundo formulario a la vez que se mantiene la
funcionalidad del primero. Por defecto, el segundo formulario se convierte en el formulario activo;
sin embargo, el usuario puede activar el primer formulario haciendo clic dentro de su marco. Si el
segundo formulario no debe ser convertido en el formulario activo, puede definirse el segundo
parmetro de la llamada al procedimiento como NO_ACTIVATE. Adems, el nuevo formulario es
Herramientas de Desarrollo
Oracle Forms
29/02/16
39
abierto en la misma sesin como formulario original de llamada. Es posible, sin embargo, llamar al
segundo formulario con una sesin independiente definiendo el tercer parmetro de la llamada
como SESSION. Esto conecta al usuario en una segunda (o tercera, y as sucesivamente) sesin.
La ventaja de tener abierta la segunda sesin es que se pueden hacer modificaciones dentro del
primer formulario y se las puede confirmar sin afectar a las modificaciones pendientes en el primer
formulario. Se puede desarrollar una aplicacin interesante en la que el primer formulario ejecute
una consulta basada en un temporizador (por ejemplo, cada dos minutos). Entonces se puede usar
el segundo formulario para mantener registros sobre la base de datos y las modificaciones se
mostraran en el formulario original. (Esta es una forma tosca aunque eficaz de pasar datos entre
dos reas de aplicaciones.
40
reducido. La calidad de un sistema Oracle puede ser clasificada de acuerdo con varios atributos
clave:
Capacidad de cumplir con las normas: el sistema debe adherirse a los estndares.
Esttica: el sistema debe tener buen aspecto al realizar las tareas anteriores.
Oracle Forms proporciona muchas herramientas para garantizar la calidad de una aplicacin Oracle.
Los disparadores proporcionan las construcciones necesarias para garantizar la fiabilidad de un
formulario al adherirse a las reglas segn son establecidas. Acoplando estos conceptos con los
disparadores y procedimientos de la base de datos, el proceso de desarrollo del sistema puede hacer
cumplir la conformidad con todas las reglas. Adems, las bibliotecas de las unidades de programas
y los impresos de referencia son clases de objetos y con atributos visuales definidos pueden ayudar
a entregar un sistema fiable que cumpla con el formato de presentacin estndar que est
establecido para la organizacin. Estos componentes hacen tambin que un sistema sea ms fcil de
modificar para reflejar las modificaciones de las reglas o interfaces deseadas recientemente.
Tales modificaciones son inevitables en prcticamente todas las aplicaciones de bases de datos
Oracle y, si se usan principios orientados a objetos desde el primer momento, las modificaciones
son ms fciles de realizar en el futuro.
El concepto final que es clave en el desarrollo de las aplicaciones de bases de datos Oracle es el
rendimiento. Desafortunadamente, en muchos casos, el rendimiento es una ocurrencia tarda en el
desarrollo de las aplicaciones. Muchos sistemas terminan finalmente en produccin sin que se les
haya realizado ninguna puesta a punto del rendimiento. Como mucho, la mayor parte de las
aplicaciones reciben slo esfuerzos mnimos de puesta a punto. Esto no es completamente culpa del
desarrollador, aunque ste debe estar ms preocupado por el rendimiento del sistema. Despus de
todo, siempre que un sistema se comporte pobremente, el dedo acusador apunta siempre al
desarrollador.
AdemsdeasegurarnosdequetodaslasinstruccionesSQLsoneficientes,hayotrasvariasreglas
que se pueden seguir cuando se construye un formulario, especialmente en un entorno
cliente/servidor.Entreellasseencuentranlassiguientes:
Reduciralmnimoelnmerodeconsultas. SisellamaaundisparadorPOSTQUERY
para cada fila, devuelta por la consulta inicial, crear una vista que contenga toda la
informacinenlaprimeraconsulta.
Herramientas de Desarrollo
Oracle Forms
29/02/16
41
Combinarconsultasnorelacionadassiesposible. Variasconsultasquedevuelventodas
unafilausandounndicenicopuedensercombinadasenunanicaconsulta.Estoahorra
viajesdeidayvueltasobrelared.
Usar disparadores y procedimientos de bases de datos siempre que sea posible. Estas
construccionesgarantizanquetodoelmantenimientodelabasededatosutilizalasmismas
reglas.Adems,sereducenalmnimolascomunicacionesconlabasededatos.
Finalmente,antesdepasarlaaproduccin,debesometerselaaplicacinaunapruebade
resistenciaconungranvolumendedatosconmuchosusuarios. Estaspruebasagitanlos
cuellosdebotellaeindicandndepuedesernecesariorevisarlasestrategiasdebloque.
Herramientas de Desarrollo
Oracle Forms
29/02/16
42