Está en la página 1de 42

CONTENIDODELCURSO

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

El editor Layout Editor....................................................................8


Personalizar el entorno Forms...............................................10
Creacin de nuevos mdulos de formularios........14
Construir un formulario sencillo por defecto.......14

Dia 2

..............................................................................................................20

Usar texto fijo y grficos para realzar las


aplicaciones de formularios.......................................................20
Personalizar impresos con propiedades......................22
Herramientas de Desarrollo
Oracle Forms
29/02/16

Dia 3

..............................................................................................................24

Implementar disparadores y unidades de


programa.........................................................................................................24

Dia 4

..............................................................................................................27

Usar grupos de registros y listas de valores para la


validacin de los datos.....................................................................27
Usar relaciones para enlazar bloques separados
en un formulario.....................................................................................34
Eventos de ratn, temporizadores y otras................36
cuestiones avanzadas.........................................................................36
Trabajar con el ratn........................................................................36
Trabajar con alertas...........................................................................37

Dia 5

..............................................................................................................38

Consideraciones para aplicaciones de formularios


mltiples...........................................................................................................38
Bibliotecas, clases/objetos y atributos ..........................39
Consideraciones de calidad ......................................................39

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 entorno de Oracle Forms


Oracle Forms 6.0 opera en un entorno de interfaz grfica de usuario como Windows 3.x de
Microsoft. Lasherramientasprimariasusadasparadesarrollarformulariospersonalizadossonel
NavegadordeObjetos,elLayoutEditor(EditordeDiseo)ylashojasdepropiedadesdeobjetos.
Ademsdelosformulariosenlnea,OracleForms6.0esutilizadotambinparacrearymantener
mensdeaplicacionesybibliotecasdeunidadesdeprogramas.

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.

LOV (Listas de Valores)


LosLOV(listofvalues,listasdevalores)proporcionanalusuariounalistadeentradasvlidaspara
uncampo.Unalistadevalorespresentadatoscontenidosdentrodeunobjetollamadosungrupode
registrosmedianteloscualeselusuarioseleccionaunvalordesdelalistaparapoblarunelemento
delformulario.Tambinsepuedeutilizarlalistadevaloresparavalidarlaentradadelusuariocon
elfindegarantizarquesehaintroducidounvalorvlido.

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.

Hojas de propiedades de objetos


Lascaractersticasdecadaelementodeunformulariosondefinidasporsusdiversaspropiedades.
Existeunahojadepropiedadessensiblealcontextoparacadacomponente,basadaeneltipode
objeto que es definido. Las propiedades estn agrupadas lgicamente dentro de la hoja de
propiedadesycadatipodeobjetotieneunahojadepropiedadesdiferente. Enestecaptulose
describenmsadelantevariasdelaspropiedadesmsimportantes.
Labarradedesplazamientoenelladoderechodelahojadepropiedadespermitenavegarporla
hojadepropiedadesylosbotonesenformadeiconosdelapartesuperiorcontrolanlasactividades
delahoja.
Losdosprimerosbotonescopianypegantodaslaspropiedadesentrelahojadepropiedadesyel
portapapeles.Losdosbotonessiguientesagreganyeliminanpropiedadespersonalizadasdelahoja
depropiedades.Elbotnsiguientecreaunanuevaclasedepropiedadbasadaenlaspropiedadesdel
objeto.

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.

El editor Layout Editor


ElLayoutEditor(EditordeDiseo),vasefigura2,presentaellienzosobreelquesedisponenlos
objetosdelformulario.Estaherramientaesmanejadaporomediodelusodebotonesenformade
iconosydeopcionesdemens.Seusanlosbotonessituadosenelladoizquierdodelaventanadel
LayoutEditorparacrearymanipularlosobjetosdeladisposicindelformulario. Latabla1
describeestosbotones(dearrribaabajoydeizquierdaaderecha).

Botn

Uso

Seleccionar
Ampliar

Selecciona objetos en el lienzo.


Hace zoom acercando/alejando sobre el lienzo. Se hace clic en el
lienzo para acercar. Se hace clic manteniendo pulsada la tecla de
maysculas para alejar. El nivel de ampliacin actual se muestra
en la zona inferior izquierda de la ventana del Layout Editor.
Dibuja un rectngulo en el lienzo.
Dibuja un crculo o una elipse.
Dibuja un objeto de varios lados.
Dibuja un rectngulo con las esquinas redondeadas.
Agrega texto fijo al lienzo.
Crea un elemento de casilla de verificacin.
Crea un campo de elemento de texto.
Crea un elemento de Oracle Graphics.
Crea un elemento de control VBX
Crea un elemento de lista desplegable.
Gira el elemento seleccionado.

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

Remodela el elemento seleccionado,


Dibuja una lnea.
Dibuja una lnea curva.
Dibuja una serie de lneas conectadas.
Dibuja en el modo de mano alzada.
Crea un elemento de botn para pulsar.
Crea un elemento de botn de radio.
Vincula un elemento de imagen al lienzo
Crea un elemento de contenedor de OLE.
Crea un elemento slo para fines de visualizacin.

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

Personalizar el entorno Forms


Oracle Forms 6 permite al programador modificar el entorno de desarrollo seleccionando el men
Tools, Options (Herramientas, Opciones). Se usa el cuadro de dilogo Designer Options (vase
figura 3) para ver el comportamiento del Oracle Forms Designer.

Herramientas de Desarrollo
Oracle Forms
29/02/16

10

Figura 3.1 El cuadro de dilogo de Preferencias

Figura 3.2 El cuadro de dilogo de Preferencias (Access)

Herramientas de Desarrollo
Oracle Forms
29/02/16

11

Figura 3.3 El cuadro de dilogo de Preferencias (Wizards)


Las cuatro casillas de verificacin establecen el modo operativo de Oracle Forms Designer. Si est
activada, la primera casilla (Guardar antes de generar) hace que el mdulo actual sea guardado
automticamente siempre que se genere un formulario y la segunda casilla (Generar antes de
ejecutar) hace que el formulario sea generado (compilado) siempre que sea ejecutado desde el
diseador. (El efecto neto de tener las dos casillas activadas es que todos los formularios son
guardados y generados haciendo clic en el botn Run (Ejecutar).
Nota: Muchas de las versiones anteriores de Oracle Forms eran famosas por producir
fallos de proteccin general, lo que daba como resultado prdida de trabajo. Se ha hecho
una prctica comn usar esas casillas de verificacin universalmente en la prctica.
Desafortunadamente, a menos que se guarde una copia de seguridad de un mdulo, las
modificaciones pueden destruir las versiones anteriores de un formulario si se usan esas
opciones.

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.

Creacin de nuevos mdulos de formularios


Se puede crear un formulario seleccionando File, New, Form (Archivo, Nuevo, Formulario) o bien
usando la combinacin de teclas de acceso rpido (Control+Y). El nuevo formulario es agregado al
Navegador de Objetos. Adicionalmente, siempre que se inicia Oracle Forms Designer, se crea
automticamente un formulario nuevo vaco. Similarmente, se pueden crear desde el men
bibliotecas de unidades de programas (File, New, Library) (Control+I) y mdulos de men (File,
New, Menu) (Control+E). A su vez, se pueden guardar esos mdulos o bien ejecutndolos (con las
opciones apropiadas seleccionadas) o seleccionando explcitamente File, Save (Archivo, Guardar) o
usando el botn en forma de icono de las ventanas del diseador.

Construir un formulario sencillo por defecto


La caracterstica de Oracle Forms de tomar los valores por defecto de forma inteligente permite
crear un formulario bsico en pocos minutos. Como ejemplo, podemos crear el formulario de
Empleados de la figura 5 sin escribir una sola lnea de cdigo del programa.
Herramientas de Desarrollo
Oracle Forms
29/02/16

14

Figura 5. Formulario de Empleados.


Para construir este formulario, se crea primero un formulario nuevo en el Navegador de Objetos
(debe iniciarse la sesin en la base de datos si no se ha hecho antes) y se selecciona el grupo
Bloques dentro del nuevo formulario. Aparecer el cuadro de dilogo de definicin de bloque de la
Figura 6. Este formulario est basado en la tabla EMP;, por consiguiente, se introduce en el campo
de la tabla base y se navega hasta el campo siguiente usando el botn Select situado a la derecha del
campo del nombre de la tabla. Al pulsar ese botn se presenta un cuadro de dilogo que se puede
utilizar para obtener una lista de todas las tablas disponibles en la base de datos.) Obsrvese que
por defecto cambia el nombre del bloque para coincidir con el nombre de la tabla, aunque el nombre
puede ser cualquier valor que se desee. Pulsando de nuevo la techa Tab para pasar al campo Canvas
(Lienzo) que por defecto tiene un valor como CANVAS1.

Herramientas de Desarrollo
Oracle Forms
29/02/16

15

Figura 6.1 Data Block Wizard (Seleccin de tabla y columnas)

Herramientas de Desarrollo
Oracle Forms
29/02/16

16

Figura 6.2 Data Block Wizard (Seleccin del Canvas)

Figura 6.3 Data Block Wizard (Seleccin del bloque y sus elementos)

Herramientas de Desarrollo
Oracle Forms
29/02/16

17

Figura 6.4 Data Block Wizard (Etiquetas y tamao de los elementos)

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

Figura 9. Utilizacin de objetos fijos para realzar la aplicacin


Para modificar este formulario, lo abrimos el Layout Editor y seleccionamos el ttulo del bloque y
lo eliminamos con la tecla Supr. Hacemos lo mismo con el cuadro que rodea la cuadrcula de datos.
Ahora, usando la herramienta de seleccin (pulsando sobre el icono en forma de flecha) se
seleccionan todas las cabeceras de las columnas de la pantalla. Para modificar la fuente, se
selecciona, Format, Fuente para mostrar el cuadro de dilogo de la figura 10.
Herramientas de Desarrollo
Oracle Forms
29/02/16

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.

Figura 10. El cuadro de dilogo de seleccin de fuentes.


Ahora, situamos las cabeceras de las columnas centradas sobre las columnas seleccionando
Arrange, Align Objects (Organizar, Alinear objetos). Para ello se hace clic en el texto de la
cabecera de la primera columna de la izquierda para seleccionarlo y, despus, manteniendo pulsada
la tecla Mayscula, se hace clic en el campo de esa columna. Seleccionando Arrange, Align
Objects se seleccionan las opciones de alineacin de la Figura 11. Se repetir esta operacin para
las dems columnas.
Ahora seleccionaremos la herramienta Rectngulo y dibujaremos un rectngulo como se ve en la
Figura 9 de forma que bordee ambos lados y la parte inferior de la cuadrcula de datos. (Se pueden
usar los pequeos marcadores en forma de cuadrados negros para ajustar el tamao y cambiar la
posicin del rectngulo, si fuera necesario.) Para crear el efecto tridimensional, seleccionaremos
Format, Bevel (Formato, Bisel) y despus del efecto Lowered (Rebajado) para crear el aspecto de
un bloque rebajado sobre la pantalla. Se puede ajustar la profundidad utilizando Format, Line. Se
crea otro rectngulo ms pequeo para el rtulo de la pantalla, que se solape con el rectngulo
anterior. Usando la herramienta Texto, crearemos l rtulo de la pantalla (EMP) utilizando una
fuente apropiada. Debe tenerse en cuenta que puede ser necesario seleccionar el rectngulo mayor
Herramientas de Desarrollo
Oracle Forms
29/02/16

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.

Figura 11. El cuadro de dilogo Alinear Objetos


Nota: Algunas veces, la caracterstica de valores por defecto en forma inteligente de Oracle
Forms hace que los objetos aparezcan de forma diferente a lo que se desea, especialmente en
lo relativo a los atributos visuales de las lneas de los bordes y al relleno del objeto. Se
pueden corregir esos atributos usando los botones de la paleta de atributos que se encuentran
debajo de la presentacin de los atributos visuales actuales en el Layout Editor. Igualmente el
men Arrange proporciona opciones para mover objetos hacia delante y hacia atrs de otros
objetos.

Personalizar impresos con propiedades


Como hemos mencionado antes, se pueden utilizar las capacidades de las propiedades inteligentes
por defecto de Oracle Forms para crear aplicaciones tiles. Sin embargo, en muchos casos es
Herramientas de Desarrollo
Oracle Forms
29/02/16

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

Figura 12. Formulario de ejemplo de las propiedades personalizadas

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.

Figura 13. Impreso de Mantenimiento de Empleados


Nota: Generalmente las listas de Oracle Forms usan un algoritmo para estrechar una lista
cuando de
se pulsan
las teclas. En este caso, despus de teclear P y R la lista muestra todos los
Herramientas
Desarrollo
25
Oracledisparadores
Forms
PRE-x y la lnea de entrada sigue adelante debido a que no existen otros
29/02/16
disparadores que comiencen con esas letras. Si se teclea una I y el disparador PRE-INSERT
ser el nico disparador de la lista.

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.

Figura 15. Formulario de mantenimiento de Empleados.


Para construir este formulario, se comienza con un bloque por defecto para la tabla de elementos
usando la disposicin de estilo de formulario. A continuacin, se cambia Lienzo mostrado a <Null>
y la propiedad Mostrado a False para los elementos que se desee ocultar de la vista. Estos
elementos son ocultados de la vista y son actualizados por las validaciones de la lista de valores que
Herramientas de Desarrollo
Oracle Forms
29/02/16

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.

Usar relaciones para enlazar bloques separados en un


formulario
Hasta ahora, los ejemplos que se han descrito aqu solamente utilizan un nico bloc de datos. La
caracterstica clave de Oracle (o de otras bases de datos relacionales) es que las tablas estn
relacionadas entre s por los campos clave.
Podemos construir un formulario maestro-detalle, para el cual vamos a necesitar dos bloques, uno
que contengan datos referentes a los departamentos y el otro que contengan datos de los empleados.
Ahora vamos a crear una relacin entre los bloques, el cual me ayude en el momento de presentar
los datos, saber cuales empleados pertenecen a un departamento especifico
(Ver fig 18).

Herramientas de Desarrollo
Oracle Forms
29/02/16

35

Figura 18. Pantalla con dos bloques relacionados.


Para crear las relaciones debemos de ubicarnos en el bloque que va a ser maestro (en el caso del
ejemplo el que contiene la informacin de los departamento) y en la clausula relations Crear una
relacin.
Acontinuacin debemos llenar los datos de la caja de dialogo con el nombre del bloque que va a ser
el detalle (EMP) y la condicin que va a relacionar los bloques (EMP.DEPTNO =
DEPT.DEPTNO) y automaticamente va a crear Triggers en el bloque de Cabecera y triggers a
nivel del forms (ver Fig 19.)

Herramientas de Desarrollo
Oracle Forms
29/02/16

36

Figura 19. Creacin de relaciones entre bloques.

Eventos de ratn, temporizadores y otras


cuestiones avanzadas
La interfaz estndar de Windows usa varios controles grficos y otros objetos para controlar el
funcionamiento de los componentes de las aplicaciones. Oracle Forms proporciona acceso a
muchas de esas caractersticas a travs del uso de disparadores del ratn, temporizadores y controles
VBX. Adems la mensajera de la mayor parte del software de Windows se realiza a travs de un
objeto llamado cuadro de alerta que ha sido implantado en Oracle Forms.

Trabajar con el ratn


El puntero del ratn es el dispositivo principal de las entradas del usuario para la navegacin y la
seleccin de la mayor parte de las aplicaciones de Windows. Oracle Forms proporciona
disparadores para detectar y actuar en varias de las actividades con el ratn.
Oracle Forms 6.0 usa el ratn para la navegacin y para la entrada de comandos. Adems, el ratn
puede ser usado para disparar eventos especficos. Un evento puede ser disparado cuando el ratn
pasa sobre un elemento de la pantalla (WHEN-MOUSE-ENTER) o cuando sale del elemento
Herramientas de Desarrollo
Oracle Forms
29/02/16

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

El operador pulsa y mantiene pulsado el botn del ratn


El operador suelta el botn del ratn
El Operador pulsa el botn y lo suelta rapidamente
El operador hace click dos veces sucesivas en el ratn
Devuelve 1 para el botn izquierdo; 2 para el botn
central o derecho
Devuelve nulo, Mayus+ ,Control+, o Mayus+Control+,
dependiendo de la tecla pulsada
Elemento actual en el que est localizado el cursor del
ratn
Lienzo actual en el que esta localidaco el cursor del ratn
Posicin X actual del ratn dentro del elemento
Posicin Y actual del ratn dentro del elemento
Registro dentro del bloque en el que est localizado el
cursor del ratn
Registro en el que est localizado el cursor del ratn con
ralacin al primer registro que se muestra
Formulario actual en el que est localizado el cursor del
ratn

MOUSE_BUTTON_SHIFT_STATE
MOUSE_ITEM
MOUSE_CANVAS
MOUSE_X_POS
MOUSE_Y_POS
MOUSE_RECORD
MOUSE_RECORD_OFFSET
MOUSE_FORM

Tabla 23.2. Disparadores del ratn


La instalacin por defecto de Oracle Forms incluye varias bibliotecas y programas de ejemplo que
se pueden usar para el desarrollo de los formularios.
Una de esas bibliotecas, DRAG.PLL, proporciona funciones que pueden ser usadas para la
funcionalidad de arrastrar y soltar de Oracle Forms. Para usar esa biblioteca, seleccione el grupo
Bibliotecas incorporadas en el formulario y haga clic en el botn Create. Seleccione despus
DRAG.PLL en la ventana Biblioteca del cuadro de dilogo Incorporar Biblioteca.

Trabajar con alertas


Las alertas son dispositivos que pueden ser incluidos en un formulario para proporcionar al usuario
la informacin que requiere una respuesta. Una alerta puede ser de tres estilos: de Parada
(usualmente errores fatales), de Precaucin (mensajes de aviso) y de Observacin (informativa).
Dependiendo del estilo que se escoja, aparecer un icono diferente en el cuadro de alerta. Adems,
se pueden definir hasta tres botones rotulados para determinar la respuesta del usuario. La
asignacin por defecto es un cuadro de alerta de dos botones con los ttulos OK (Aceptar) y Cancel
(Cancelar). Para mostrar esta alerta, una funcin incorporada usa la sintaxis siguiente:
Button_no:=SHOW_ALERT(nombre_alerta);

Button_no es definida como una variable numrica PL/SQL. Usando la


SET_ALERT_PROPERTY incorporada, se puede cambiar dinmicamente la propiedad
Herramientas de Desarrollo
Oracle Forms
29/02/16

38

ALERT_MESSAGE_TEXT en el tiempo de ejecucin. Usando el disparador estndar, ON


MESSAGE,sepuedecrearuncuadrodealertaquepresentealusuariotodoslosmensajesenun
cuadrodealertaenlugardelalneadeestado,queavecesesignoradaporelusuario.Sepuede
escribirunONMESSAGEqueutilizaelcuadrodedilogoMSG_ALERTdeParada,unbotncon
elrtuloOK(Aceptar)comosigue:

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.

Bibliotecas, clases de objetos y atributos visuales


Una de las principales caractersticas de los entornos de programacin orientados a objetos es el
concepto de la reutilizacin. Al crear objetos reutilizables, podemos hacer cumplir los estndares en
forma global y desarrollar aplicaciones con un ritmo sin precedentes. Los usuarios se encuentran
ms cmodos con una aplicacin que aparece y opera de forma uniforme. Se han incluido varios
objetos en Oracle Forms para proporcionar esta capacidad de reutilizacin. Como se ha descrito
antes, las bibliotecas son repositorios de unidades de programas PL/SQL reutilizables. Para trabajar
con una biblioteca se crea la biblioteca en el Navegador de Objetos lo mismo que se hace para un
formulario. Una biblioteca puede estar relacionada con tres bibliotecas y puede contener unidades
de programas PL/SQL. Para usar esas unidades de programas en otros formularios, se relaciona la
biblioteca con el formulario y se hace referencia a los procedimientos y funciones como si fuera
parte del formulario en s. Si se hacen cambios en la biblioteca, debe regenerarse cada formulario
que use la biblioteca para reflejar el cambio.
Por otra parte, los atributos visuales son definidos como parte del formulario en s. Un atributo
visual define las caractersticas de la fuente y los colores del objeto. Existe un atributo visual
especial llamado Default (por defecto) para todos los formularios basados en el valor del parmetro
FORMS45_DEFAULTFONT del archivo oracle.ini del sistema. Se pueden disear atributos
visuales para definir el significado del elemento. Por ejemplo, una aplicacin financiera puede
mostrar valores negativos en rojo o se pueden usar caractersticas especiales para indicar errores o
extremos estadsticos. Otro uso valioso de un atributo visual es indicar el registro seleccionado en
la actualidad. El atributo de registro actual est disponible tanto en el nivel del bloque como en el
del formulario y es usado con frecuencia en aplicaciones de varias filas. Finalmente, se puede
cambiar el atributo visual para una instancia de un elemento en forma dinmica en el tiempo de
ejecucin usando el procedimiento incorporado DISPLAY_ITEM.
La ltima caracterstica que proporciona reutilizacin dentro de un formulario es una clase de
propiedad. Una clase de propiedad toma la funcionalidad presentada por el atributo visual y la
expande ms definiendo todas las propiedades de una clase de objetos. Esto permite definir un
conjunto de clases de propiedades vlidas y usar estas propiedades a travs de las aplicaciones sin
definir cada propiedad individual para cada objeto.

Consideraciones de calidad para Oracle Forms


Oracle Forms puede manejar una amplia serie de funciones de procesamiento. Como en el caso de
una herramienta poderosa, hay muchas formas de realizar la misma tarea. Es responsabilidad del
desarrollador crear aplicaciones que devuelvan la calidad ms alta para el coste global ms
Herramientas de Desarrollo
Oracle Forms
29/02/16

40

reducido. La calidad de un sistema Oracle puede ser clasificada de acuerdo con varios atributos
clave:

Fiabilidad: el sistema debe entregar resultados fiables y seguros.

Rendimiento: el sistema debe entregar los resultados rpidamente.

Caractersticas: el sistema debe entregar la funcionalidad necesaria.

Durabilidad: el sistema debe sostener el crecimiento.

Capacidad de servicio: el sistema debe poder ser modificado fcilmente.

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