You are on page 1of 113

Application Express User's Guide

Building an Application

Application Express User's Guide


Notas de la traduccin: Building an Application comienza en la pag.24. Al comienzo de este documento se agreg la guia del usuario y los conceptos bajo los cuales se apoya la herramienta de desarrollo. No se traducen los ttulos con el fin de relacionar los p rrafos con el te!to original m s r pidamente."os hiper#nculos de este documento apuntan todos a un ser#idor $racle !e %ue se supone corriendo en el e%uipo %ue se est consultado este documento. &ulio 'alle Resumen Esta herramienta permite generar aplicaciones web sobre una base de datos Oracle. Incluye todos los componentes que se necesitan para construir una interface completa con el usuario. Permite utilizar los datos de una hoja de clculo crear modelos de pginas !plantillas" crear reportes formularios grficos calendarios na#egar a una url bloquear pginas que se estn modificando !desarrollo en equipo" utilizar listas de #alores !$O% como las de form" implementar cortes de control crear los formularios y reportes manualmente !adems de con el wizard" implementar master&detail en un solo formulario crear formularios a partir de tablas a partir de procedimientos almcenandos a partir de una consulta sql ' de un ser#icio web. Por supuesto se pueden #alidar y chequear los datos ingresados por el usuario en forma interacti#a mostrar mensajes de error crear pginas de ayuda para los items crear grficos de control de procesos que monitorean un sistema a inter#alos espec(ficos en forma automtica crear botones de na#egaci'n listas de selecci'n chec) bo* popup calendarios areas de te*to file browse !mostrar archi#os ' documentos que estn en disco" ocultar elementos de la pgina radio group etc. +e puede incorporar ,a#a+cript a las aplicaciones web a tra#-s de #arias interfaces sin sacrificar la comodidad de desarrollo. .rear $O% dependiente de los seleccionado en otra $O%. +e puede en#iar e&mail desde una aplicaci'n. /ambi-n se puede correr la aplicaci'n en modo debug es decir #iendo los #alores que toman las #ariables en tiempo de ejecuci'n.

Esta ayuda del sistema describe como usar el cliente Oracle 0pplication E*press conectado a una base de datos Oracle E*press Edition !Oracle 1atabase 2E". Temas:

1ocumentation /opics 0udience 1ocumentation 0ccessibility Related 1ocuments .on#entions

Documentation Topics $os temas que se incluyen en esta ayuda son los siguientes3 Title 4uic) +tart Running a 1emonstration 0pplication Description Ofrece una rpida introducci'n al uso del cliente Oracle 0pplication E*press con Oracle 1atabase 2E. 1escribe como ejecutar y modificar una aplicaci'n de demostraci'n con 0pplication 5uilder.

Application Builder Provee los conceptos bsicos sobre Application Builder. Concepts Utilice Application Builder para ensamblar inter aces !T"# $% -1-

Application Express User's Guide

Building an Application

Title

Description aplicaciones& a partir de los ob'etos de la base de datos tales como tablas ( procedimientos. $)&

6sing 0pplication 5uilder Buildin* an Application Controllin* Pa*e #a(out and User ,nter ace

Pro#ee importante informaci'n sobre el uso de 0pplication 5uilder para construir aplicaciones. Describe como utili+ar Application Builder para construir una aplicaci%n ( sus componentes. $)& Describe di erentes m-todos para re inar las inter aces de las aplicaciones de usuarios ( el la(out de las p*inas inclu(endo el re inamiento de las re*iones. editando los atributos de los items. re inando templates e incorporando C// $cascadin* st(le s0eets& e im*enes. $)& 1escribe como implementar na#egaci'n a una aplicaci'n utilizando diferentes tipos de controles de na#egaci'n incluyendo entradas en las barras de na#egaci'n tales como tabs breadcrumbs lists y trees. E*plica como gestionar el entorno de desarrollo de aplicaciones incluyendo ser#icios estados de cesi'n preferencias de usuarios archi#os de log modelos de aplicaciones usuarios finales de 0pplication E*press acti#idad de desarrollo de las aplicaciones y e*plica como en#iar email desde una aplicaci'n. 1escribe como usar la interface de usuario que #iene por default para asignar propiedades a tablas columnas ' #istas. 1escribe la metodolog(a para depurar las aplicaciones con 0pplication 5uilder incluye modo 1ebug modo +4$ trace #isualizar pginas de reportes y como remo#er manualmente un control ' un componente para aislar el problema. E*plica como implementar !instalar" una aplicaci'n construida con 0pplication 5uilder. 1escribe como pro#eer seguridad a las aplicaciones desarrolladas con 0pplication 5uilder utilizando encriptaci'n protecci'n del estado de la sesi'n autenticaci'n y control de autorizaci'n. Pro#ee informaci'n acerca de t-cnicas a#anzadas de programaci'n tales como enlace de base de datos utilizaci'n de tipos de datos collections ejecuci'n de +4$ en bac)ground utilizaci'n de ser#icios web y gesti'n de las preferencias de los usuarios. E*plica como traducir una aplicaci'n construida con 0pplication 5uilder. 1escribe las 0PIs disponibles en Oracle 0pplication E*press.

0dding 7a#igation

6nderstanding 0pplication 0dministration

8anaging 6ser Interface 1efaults 1ebugging an 0pplication

1eploying an 0pplication 8anaging 0pplication +ecurity 0d#anced Programming /echniques 8anaging 0pplication 9lobalization Oracle 0pplication E*press 0PIs

8anaging 1atabase 1escribe como usar el Object 5rowser para mostrar crear y editar Objects with Object objetos de la base de datos Oracle 1atabase E*press Edition. 5rowser -2-

Application Express User's Guide

Building an Application

Title

Description

5uilding 4ueries with E*plica como usar la interface grfica del 4uery 5uilder:s para buscar 4uery 5uilder y filtrar objetos de la base de datos seleccionar objetos y columnas crear relaciones entre objetos formatear las salidas de los query y sal#ar los query. 6sing +4$ +cripts 6sing +4$ .ommands 6sing +4$ 6tilities Pro#ides information on how to use +4$ +cripts to create edit #iew run and delete script files. E*plica como utilizar los comando +4$ para crear editar #er ejecutar y borrar comando sql. 1escribe como usar las herramientas de +4$ para e*portar e importar datos desde la base de datos generar 11$ #er reporte de objetos y restaurar objetos dropeados de la base de datos. 1escribe como administra la base de datos Oracle 1atabase 2E.

0dministering the 1atabase

-3-

Application Express User's Guide

Building an Application

Application Builder Concepts


Nota de la traduccin: Son conceptos bajo los cuales se apoyara la herramienta de desarrollo No describe los !i"ards de desarrollo Se traducen los titulos de este tema #ulio $alle

Conceptos sobre Application Builder !05"


%eremos conceptos sobre los cuales se describe el 05. .omenzamos por indicar que se define como aplicaci'n a una colecci'n de pginas !Pages" enlazadas a tra#-s de /ags 5uttons ' enlaces de ;iperte*to. 12u- es una p*ina3 6na pgina es el elemento de construcci'n bsico de una aplicaci'n. .uando se construye una aplicaci'n con 05 se crean pginas que contienen elementos que interactuan con el usuario tales como /abs $istas 5uttons Items y Regions. +e pueden agregar controles a la pgina en su Page 1efinition. Para #er la Page 1efinition de una pgina e*istente3 <. 7a#egar a la 1atabase ;ome Page =. .lic) sobre el icon 0pplication 5uilder. >. +eleccionar una aplicaci'n e*istente. ?. +eleccionar una pgina. $a Page 1efinition se di#ide en tres partes !' secciones l'gicas"3 1. Page Rendering. $ista los controles de la interface con el usuario y la l'gica que se ejecuta cuando la Page es interpretada. %-ase @0bout Page Rendering .ontrols@. . 2. Page Processing. $ista los controles de l'gica !tales como clculos y procesos" que son e#aluados y ejecutados cuando la pgina es procesada. %-ase3 @0bout Page Processing .ontrols@. 3. +hare .omponents. $ista los componentes comunes que se pueden displayar o se aplican sobre cada pgina dentro de la aplicaci'n. %-ase3@0bout +hared .omponents@. . 4er tambi-n: @0bout the Page 1efinition@ and @Editing a Page 1efinition@

Descripci%n de 5Pa*e Processin*6 ( 5Pa*e 7enderin*6 0l crear una aplicaci'n con 05 se enlazan pginas usando tabs buttons o hiperte*t lin)s. .ada pgina puede tener botones - items y puede incluir la l'gica de la aplicaci'n. +e puede bifurcar de una pgina a la pr'*ima usando na#egaci'n condicional ejecuci'n de clculos #alidaciones y display de reports calendarios y grficos. +e pueden generar reportes grficos y forms utilizando los wizards escribiendo ;/8$ esttico o personalizando la generaci'n con programaci'n P$A+4$. /emas3

;ow the 0pplication E*press Engine Renders and Processes Pages 6nderstanding .onditional Rendering and Processing %erifying 6ser Identity .ontrolling 0ccess to .ontrols and .omponents -4-

Application Express User's Guide

Building an Application

Describe como el motor del AB interpreta ( procesa las p*inas. El motor del 05 dinmicamente interpreta y procesa las pginas creadas a partir de los datos guardados en las tablas de la base de datos Oracle. Para #er una pgina se en#(a la petici'n al ser#icio de 0pplication E*press ! 0PP$I.0/IO7 E2PRE++ ". .uando se ejecuta una aplicaci'n el ser#icio de 0pplication E*press se apoya en dos procesos3 /0o8 Pa*e3 es el proceso que dibuja la pgina. Ensambla todos los atributos de la pgina !incluye regiones items y botones" en una pgina ;/8$. Accept Pa*e3 ejecuta el procesamiento de la pgina. Ejecuta bifurcaciones procesos y clculos. .uando se solicita una petici'n de pgina utilizando una url el ser#icio ejecuta el proceso /0o8 Pa*e. .uando se submite !se acepta" una pgina el ser#icio ejecuta el proceso Accept Pa*e y ejecuta procesos de la pgina durante el cual sal#a los #alores submitidos en la cache de la sesi'n y ejecuta los procesos #alidaciones yAo clculos correspondientes. Descripci%n de 5Pa*e Processin*6 ( 5Pa*e 7enderin*6 6na condici'n es una e*presi'n l'gica que permite controlar el display en la pgina de botones regiones items y tabs como as( tambi-n permite controlar la ejecuci'n de procesos #alidaciones y clculos. Por ejemplo cuando se condiciona un bot'n el constructor de pgina e#alua la condici'n durante el proceso +how Page. 1ependiendo del resultado de la e#aluaci'n de la condici'n se mostrar ' no el bot'n. +e especifican las condiciones seleccionando un tipo de condici'n cuando se crea el control o componente !regi'n item bot'n ' tab" ' bien seleccionando el atributo .ondition /ype. 1epende del tipo de condici'n que se seleccione sern los #alores que son apropiados ingresar como e*presiones. $a condici'n es e#aluada a #erdadero ' falso basndose en la e*presi'n especificada. 7ota3 +i se usa una e*presi'n de campo depende del tipo de condici'n seleccionado. 0lgunos tipos de condiciones no necesitan #alores en ninguno de los campos de la condici'n. Otros solo necesitan #alor en uno de los campos y otros requieren #alores en los dos campos. 0unque estos campos son etiquetados E*pression< y E*pression= no son necesariamente e*presiones en el sentido estricto. Ellos son simplemente #alores apropiados al tipo de condici'n. Para #er un listado completo de las condiciones disponibles para un componente !control" dado clic) en el icono %iew a la derecha del listado de los tipos de condiciones. 6na lista rpida de las condiciones comBnmente usadas aparece debajo de la lista. +i la condici'n requiere una e*presi'n se la debe ingresar en el campo apropiado. $a siguiente secci'n ofrece ejemplos de algunos tipos de condiciones comBnmente usadas. %er3 0#ailable .onditions para un listado detallado de los tipos de condiciones. Current Pa*e en la Expression9 +u #alor es #erdadero cuando el I1 de la pgina actual est dentro de una lista !delimitada por comas en la e*pression<". Por Ej. <CC en la e*pression< implica que la condici'n se e#alua como #erdadera si el Id de la pgina actual es <CC. Exists !+ql query que retorna al menos un #alor" $a condici'n es #erdadera si la consulta retorna al menos < fila. Por ejemplo3 /elect 9 rom emp 80ere deptno : :P9;9<deptno -5-

Application Express User's Guide

Building an Application

Este ej. Referencia al item P<C<Ddeptno como una #ariable bind. +e pueden utilizar #ariables bind dentro de la aplicaci'n y en las consultas sql para referenciar items de la sesi'n. %er3 @0bout 5ind %ariables@ P#=/2# Expression 6se pl=s>l expression para e*presiones plAsql #lidas e#aluadas a #erdadero A falso. Por ej. ?4#$:"@<,TE".A?BA& : C@E/A Autenticaci%n de usuario Es el proceso mediante el cual se establece !reconoce" la identidad del usuario antes que este pueda acceder a la aplicaci'n. Podr(a requerir que el usuario deba ingresar un userApass o bien un certificado digital o secure )ey. Oracle 0pplication E*press +oporta autenticaci'n modular permitiendo cambiar fcilmente el m-todo de autenticaci'n cuando se necesite. +e puede establecer la autenticaci'n del usuario seleccionando el m-todo de autenticaci'n o usando el wizard para crear su propio m-todo de autenticaci'n. %er3 @Establishing 6ser Identity /hrough 0uthentication@ para ms informaci'n. Control de Acceso a los Componentes 8ientras las condiciones controlan la construcci'n y procesamiento de componentes sobre una pgina las autorizaciones sobre los esquemas controlan el acceso de los usuarios a los datos. $a autorizaci'n es para controlar el acceso a los recursos basado en los pri#ilegios del usuario !sobre los objetos de la base de datos". El esquema de autorizaci'n e*tiende la seguridad al esquema de autenticaci'n de la aplicaci'n. +e puede especificar un esquema de autorizaci'n para una aplicaci'n completa una pgina o un componente de la pgina tal como una regi'n item o bot'n. Por ejemplo3 se podr(a utilizar un esquema de autorizaci'n para seleccionar que botones !' elementos de na#egaci'n" puede el usuario #er en la pgina. %er3 @Pro#iding +ecurity /hrough 0uthorization@ ?oci%n de *esti%n de estado de la sesi%n ;//P el protocolo a tra#-s del cual se entregan las pginas ;/8$ es un estandar. 6n browser web est solamente conectado al ser#idor el tiempo que necesita para bajar la pgina. 0dems cada petici'n de pgina es tratada por el ser#idor como un proceso independiente des&relacionado con peticiones anteriores o futuras de cualquier pgina. Esto significa que los #alores ingresados en una pgina relacionados tambi-n con pginas subsiguientes necesitan ser gestionados como #alores de estado de la sesi'n. /(picamente es el caso cuando un usuario ingresa #alores en una pgina estos #alores no son accesibles en pginas subsiguientes. Oracle 0pplication. E*press resuel#e este problema manteniendo en forma transparente los #alores de estado de la sesi'n y pro#ee a los desarrolladores la posibilidad de accederlos y actualizarlos desde cualquier pgina de la aplicaci'n !dentro de la sesi'n". /emas3

Ehat Is a +essionF -6-

Application Express User's Guide

Building an Application

6nderstanding +ession I1s Referencing +ession +tate

12ue es una sesi%n3 6na sesi'n es una construcci'n l'gica que establece persistencia a tra#-s de las pginas #isitadas. .ada sesi'n tiene asignado un ,D !identificador Bnico". El motor del 0pplication E*press utiliza este ,D para guardar y recuperar el conjunto de datos pertenecientes a la sesi'n que deben permanecer persistentes durante la misma. Ga que las sesiones son totalmente independientes pueden e*istir #arias al mismo tiempo. 0dems debido a que las sesiones persisten en la 15 hasta que el administrador las purge un usuario puede retornar a una sesi'n abierta con anterioridad y continuar utilizndola. 6n usuario puede ejecutar mBltiples instancias de una misma aplicaci'n en diferentes sesiones de un browser. $as sesiones son l'gica y f(sicamente distintas de las sesiones de base de datos usadas para responder a la peticiones de las pginas. 6n usuario ejecuta una aplicaci'n en una sola sesi'n de Oracle 0pplication E*press que #a desde el login al logout con una duraci'n t(picamente medida en minutos u horas. .ada Page requerida durante la sesi'n implica crear o reutilizar una sesi'n de la base de datos Oracle a fin de acceder a los recursos de la base de datos. 0 menudo estas sesiones de base de datos duran fracciones de segundo. Concepto de /ession ,Ds El ser#icio del 0pplication E*press establece la identidad del usuario para cada pgina requerida y con el I1 de la sesi'n recupera el estado de la sesi'n desde la base de datos. El punto ms #isible del I1 es la 6R$ de la pgina requerida. Otra ubicaci'n #isible est en la pgina ;/8$ post e indirectamente en el contenido de una coo)ie de sesi'n. Esta coo)ie es en#iada por el ser#icio del 0pplication E*press durante la autenticaci'n y se mantiene durante #i#a la sesi'n del browser !' la sesi'n de la aplicaci'n" lo que sea ms corto. Oracle 0pplication E*press asigna un nue#o Id de sesi'n durante la autenticaci'n registra el usuario autenticado identificado con el Id de sesi'n y continuamente chequea el id de sesi'n en cada procesamiento de pgina que se requiere a tra#-s de una 6R$ o post data con la coo)i de la sesi'n y registra la sesi'n en la base de datos. Estos chequeos pro#een fle*ibilidad y seguridad. Ga que el Id de la sesi'n es la cla#e del estado de la sesi'n el coo)ie de la sesi'n !donde se pueda aplicar" y el registro de la sesi'n sal#aguardan la integridad del I1 de la sesi'n y del estado de autenticaci'n del usuario. 4isuali+ar el estado de la sesi%n El comportamiento de una aplicaci'n se gestiona por los #alores de los estados de la sesi'n. Por ej. Puede mostrarse condicionado por el #alor de un item de la sesi'n. +e pueden #er los #alores de los item de una sesi'n desde una pgina con clic) en H+essionI 4isuali+ar el estado de la sesi%n $/ession /tate Pa*e&. $a pgina de Hestado de sesi'nI pro#ee informaci'n muy importante acerca del estado de la sesi'n. Para localizar una pgina espec(fica ingrese el I1 de la pgina en campo Page y haga clic) en 9O. 0 continuaci'n se describe que informaci'n contiene. -7-

Application Express User's Guide

Building an Application

Eti>ueta Application

Descripci%n 8uestra el nombre de la aplicaci'n el usuario conectado el Id del rea de trabajo !' Id del usuario de la base de datos" y el lenguaje del browser. Pa*e ,tems 8uestra los atributos de los items de la pgina incluye los id de la aplicaci'n y de la pgina nombre del item como se displaya el item !oculto popup button display solo del ;/8$" el #alor del item en la sesi'n y un +tatus. $a columna +tatus indica el estado de la sesi'n. $os #alores posibles son3 I&Insert 6&6pdated R&Reset Application $os application items son items que no residen en la page. $os ,tems application items son #ariables de estado de sesi'n despro#istos de las propiedades de la interface de usuario. %-ase tambi-n3 @.reating an 0pplication&$e#el Item@ y @6sing +ubstitution +trings@ para mayor informaci'n sobre referencias a items. /ession /tate Resume el estado de la sesi'n con los datos actuales de la sesi'n. $as listas de los Id de aplicaci'n los Id de pgina los nombres de los item !tipo de display #alor y etiquetas de display". %er3 @8anaging +ession +tate %alues@ Gesti%n de los valores de estado de la sesi%n .uando el motor del 0pplication E*press interactua intercambia datos con la aplicaci'n web es importante conocer como acceder y gestionar los #alores de estado de sesi'n. En Oracle 0pplication E*press el estado de la sesi'n se maneja automticamente para cada pgina y fcilmente referenciado en c'digo ;/8$ esttico ' en controles de l'gica tales como #alidaciones y procesos. /emas3

Referencing +ession +tate !Referenciar estado de la sesi'n" +etting +ession +tate !Establecer #alores del estado de la sesi'n" .learing +ession +tate !Resetear #alores del estado de la sesi'n" 0bout 5ind %ariables !0cerca de #ariables locales relacionadas a la sesi'n"

%er3 HItemsI y HReferencing Item %aluesI 7e erenciar Estados de /esi%n Referenciar el #alor de un item es de uno de los ejemplos ms comunes de referencias de #ariables de estado de sesi'n. 6n item puede ser un campo un rea de te*to una password una select list ' una chec) bo*. En la siguiente tabla se describe la sinta*is soportada para referenciar #alores de las #ariables de sesi'n. Sintaxis para referenciar variables de sesin. T(pe /intaxis Descripci%n +4$ 38GDI/E8 +inta*is de una #ariable bind comBn cuyo nombre -8-

Application Express User's Guide

Building an Application

P$A+4$ P$A+4$ +tati* te*t

no e*cede los >C caracteres. 6se esta sinta*is para hacer referencias dentro de consultas +4$ y dentro de c'digo P$A+4$. 4!J8GDI/E8:" +inta*is P$A+4$ para referenciar un item usando la funci'n 4. %er tambi-n3 @Oracle 0pplication E*press 0PIs@ 7%!J8GD768ERI.DI/E8:" +inta*is para referenciar un item num-rico utilizando la funci'n ?4. %er tambi-n3 @Oracle 0pplication E*press 0PIs@ K8GDI/E8 +inta*is de te*to. %ariable de sustituci'n de te*to.

Establecer variables de sesi%n. .uando un usuario acepta una pgina el motor de 0PP$I.0/IO7 E2PRE++ . automticamente guarda los #alores tipeados en los items de la sesi'n. Por ejemplo supongamos que una aplicaci'n sencilla formada por dos pginas. $a primer pgina de la aplicaci'n contiene un formulario en el cual el usuario puede ingresar un nBmero de tel-fono. +e define el formulario y se crea un item denominado P=DPhone7o. +obre la segunda pgina se quiere displayar la informaci'n ingresada por el usuario en el primer formulario. .uando la pgina es aceptada !la primera" Oracle 0p.E*. captura el #alor ingresado para el nBmero de tel-fono y lo guarda. El nro de tel-fono ingresado por el usuario puede ser recuperado desde el estado de la sesi'n referenciando el item asociado con el campo de la pgina. 7esetear valores del estado de sesi%n. En el desarrollo de la aplicaci'n a #eces es Btil inicializar los #alores de algunos items espec(ficamente de todos los items de una pgina ' de todas las pginas de la aplicaci'n ' los de la actual sesi'n. Inicializar implica colocarles el #alor null. En el punto siguiente se ofrecen ejemplos espec(ficos de inicializaci'n3 /emas3

.learing .ache by Item .learing .ache by Page .learing .ache for an Entire 0pplication .learing .ache for the .urrent 6ser +ession

Clearin* Cac0e b( item Inicializa la cache para un solo item colocando su #alor a null. Por ej. se puede usar este m-todo para asegurar que un item tiene el #alor null al ser preparada para ser interpretada por el e*plorador. El siguiente ej. usa la sinta*is estandar 3p para inicializar la cache para un item. Por ejemplo la pgina denominada L de la aplicaci'n <CC. 6bicando "@<,TE" en la ClearCac0e de la sinta*is 3p resetea el #alor de "@<,TE" a null. 3p:9;;:D:E/E//,B?.::?B:"@<,TE" El siguiente ejemplo resetea el #alor del item T!E<E"P?B y T!E<DEP?B. 3p:9;;:D:E/E//,B?.::?B:T!E<E"P?B.T!E<DEPT?B -9-

Application Express User's Guide

Building an Application

Clearin* Cac0e b( Pa*e .achear los item de la aplicaci'n es una forma efecti#a de mantener el estado de la sesi'n. +in embargo hay ocasiones en que se quiere limpiar la cache para todos los item de la pgina. Por ejemplo sup'ngase que se necesita limpiar todos los campos de una pgina cuando se hace clic) en la opci'n de crear una nue#a orden. $impiando la cache de la pgina entera se colocan todos los #alores de todos los items de la pgina a null. Clearin* /ession Cac0e para dos p*inas ( resetear la pa*inaci%n. Este ejemplo limpia la cache de la sesi'n para dos pgina y resetea la paginaci'n. 3p:F;;;:F;;G:E/E//,B?.::?B:7P.F;;H.F;9H Este ejemplo 3 Ejecuta la pgina MCC> de la aplicaci'n MCCC y utiliza la sesi'n actual !id de la sesi'n corriente" Indica que no se muestra informaci'n de depuraci'n !7O". $impia todos los #alores que se mantienen en la actual cache de la sesi'n para los items de las pginas MCC? y MC<?. Resetea la #ariable de paginaci'n !RP" en la Page MCC> !la pgina solicitada". %er3@.ontrolling Report Pagination@ Clearin* /ession Cac0e de una Pa*e ( le pasa un valor a un item. Este ejemplo muestra como implementar una actualizaci'n de formulario. $impia la informaci'n e*istente y setea el #alor de un item !generalmente se setea la cla#e primaria". 3p:F;;;:F;;G:E/E//,B?.::?B:F;;G:"@<,TE":9IGH Este ejemplo3 Ejecuta la pgina MCC> de la aplicaci'n MCCC de la actual sesi'n. Indica que no se muestra informaci'n de depuraci'n. !7O". $impia todos los #alores mantenidos en la cache de la pgina MCC> de la sesi'n actual. +etea el item de la sesi'n actual denominado 8GDI/E8 al #alor <=>?. Clearin* /ession Cac0e de una Pa*e e iniciali+a varios items. Este ejemplo es similar al anterior e*cepto en que pasa #arios items. 3p:F;;;:F;;H:E/E//,B?.::?B:F;;G:"@<,TE"9:"@<,TE"I."@<,TE"G:9IGH..DFJK Este ejemplo3 Ejecuta la pagina MCC? de la aplicaci'n MCCC de la actual sesi'n. $impia la cache de todos los items de la pgina MCC>. Indica que se oculta la informaci'n de debug. +etea los #alores3 8GDI/E8 a <=>? 8GDI/E8= a null !indicado por la coma utilizada sin #alor pre#io" e indica que 8GDI/E8> se inicialice a LMNO. Clearin* Cac0e para una aplicaci%n completa. +e puede limpiar la cache de una aplicaci'n completa utilizando la sinta*is creando un argumento Clear Cac0e utilizando la palabra cla#e APP. Por ejemplo3 -103p y

Application Express User's Guide

Building an Application

3p:App:Pa*e:/ession::?B:APP 7ota3 Resetear la cache de una aplicaci'n completa no implica que se restaure el estado de la aplicaci'n. Por ejemplo si una aplicaci'n incluye clculos ' procesos !c'digo" en el e#ento onLne8 instance de la aplicaci'n el motor del 0p.E*. ejecuta solo esos clculos y procesos !c'digo" cuando la sesi'n de la aplicaci'n es creada. $uego ejecuta el proceso de limpiar la cache y displayar la pgina requerida. $a Bnica forma de resetear una aplicaci'n completamente sin el ,D de la sesi'n es peticionarla utilizando una U7# sin I1 de sesi'n ' bien llamando al m-todo HTMLDB_APPLICATION.CLEAR_APP_CACHE desde otra aplicaci'n. +i embargo si el I1 es registrado en el cliente utilizando una coo)ie necesitar un logout para resetear el estado. Clearin* Cac0e para la sesi%n del usuario conectado. Otro m-todo para limpiar la cache de una aplicaci'n es crear un argumento Clear Cac0e utilizando la )eyword +E++IO7. Por ejemplo3 3p:F;;;:F;;H:9ID;JJKD9;KHKKHIJDIK::?B:/E//,B? 4ariables 7elacionadas $Bind& +e pueden utilizar #ariables en el c'digo de la aplicaci'n ' consultas +4$ que hagan referencia a items espec(ficos de la sesi'n. Por ejemplo
SELECT * FROM emp WHERE name like '%' || SEARCH_STRIN! || '%'

En este ejemplo el string de bBsqueda es un item de la pgina. +i el tipo de regi'n se define como /2# 2uer( se puede referenciar el #alor utilizando la sinta*is estandar de +4$. 6tilizando #ariables aseguramos que la representaci'n parseada de la consulta +4$ sea reutilizada por la base de datos optimizando la utilizaci'n de la memoria del ser#idor. Recordar las siguientes reglas cuando se definan y utilicen #ariables bind. 1eben corresponder a un nombre de item. 7o son sensibles a las mayBsculasAminBsculas. El nombre puede tener hasta >C caracteres !#alid Oracle identifier". 0unque los nombres de item de aplicaci'n y de pgina pueden tener hasta =LL caracteres si se desea usar un item dentro de la sinta*is de +4$ el nombre del item solo puede tener hasta >C caracteres. Uso de variables en tipos 7e*ions sobre una consulta /2# % #B4. +i el tipo de una #ariable 7e*i%n es /2# 2uer( !las funciones pl=s>l retornan +4$ 4uery" ' #B4 !lista de #alores" se pueden referenciar con la siguiente sinta*is. :"@<,TE" 6na forma sencilla de hacer esto es incorporar una #ariable de sesi'n en la clusula 80ere. El siguiente ejemplo muestra como enlazar el #alor del item T!E<DEPT?B a una regi'n definida como /2# 2uer(. SELECT ename" #$%" &al FROM emp WHERE 'ep(n$ ) THE_DEPTNO -11-

Application Express User's Guide

Building an Application

%er3 @.ustomizing Regions@ para #er informaci'n acerca de la creaci'n de regiones. Uso de variables $bind& en procedimientos P#=/2# Para tipos region tales como un procedimiento P$A+ql las regiones son construidas usando un formato de bloque an'nimo. En otras palabras el comienzo y fin son agregados automticamente al c'digo P$A+4$. Por ejemplo3 INSERT INTO emp *empn$" ename" #$%+ ,AL-ES * P._empn$" P._name" P._#$%+/ En este ejemplo los #alores de empno ename y job son reemplazados por P<Dempno P<Dname y P<Djob. ?oci%n de la sintaxis U7# .ada aplicaci'n tiene un numero !denominado I1 de la aplicaci'n" que la identifica un(#ocamente. 1e forma similar cada pgina tiene un nBmero Bnico !el I1 de la pgina". $as aplicaciones y las pginas podr(an tener tambi-n alias alfanum-ricos. $os alias alfanum-ricos son Bnicos dentro de un esquema de base de datos pero los alias de pginas son Bnicos dentro de cada aplicaci'n. .uando se ejecuta una aplicaci'n el motor de 0p. E* genera un nBmero de sesi'n que sir#e como cla#e para la sesi'n del usuario. /emas3

6nderstanding the 6R$ that 1isplays for a Page 6sing fFp +ynta* to $in) Pages .alling a Page 6sing an 0pplication and Page 0lias .alling a Page from a 5utton 6R$

U7# >ue se muestra para cada p*ina. $a 6R$ que muestra cada pantalla le indica la ubicaci'n a Oracle 0pplication E*press e identifica3 la direcci'n la direcci'n de Oracle 0pplication E*press el I1 de la aplicaci'n el I1 de la pgina y el I1 de la sesi'n3 Por ejemplo3 0((p 11ape23$4a5le35$m1pl&1ape2167p)89:; . <<;==98;>>?:?@988> Este ejemplo indica3 apex.oracle.com es la 6R$ del ser#idor. pls es el indicador que usa el cartridge mod<pls>l. apex es el nombre del descriptor de acceso de base de datos ! DAD". El 101 describe como el ser#idor de 0ttp se conecta al ser#idor de base de datos as( este puede completar la petici'n http. El #alor por default es apex. M3p: es un prefijo usado por Oracle 0pplication E*press. HGD; es la aplicaci'n llamada. 9 es la pgina de la aplicaci'n a displayar. <<;==98;>>?:?@988> es el nBmero de sesi'n. %er3 @0bout Publishing the 0pplication 6R$@ -12-

Application Express User's Guide

Building an Application

Enlace de p*inas con el strin* 3p +e pueden crear lin)s entre pginas en la aplicaci'n usando la sinta*is3 67p)App PaAe Se&&i$n ReBCe&( De%CA Clea4Ca50e i(emName& i(em,alCe& P4in(e4F4ien'lD /able3 fFp +ynta* 0rguments +int*is de los argumentos que se pueden pasar con 3p. Ar*umento 0pp Page +ession Descripci%n Id de la aplicaci'n ' su alias. Id de la pgina ' su alias. Id de la sesi'n. +e puede referenciar un id de sesi'n para crear un lin) !de hyperte*t" a otras pginas que mantienen el mismo estado de la sesi'n mediante el pasaje del numero de sesi'n. +e puede referenciar el I1 de sesi'n utilizando la siguiente sinta*is3 +tring de sustituci'n3 E/E//,B? PlA+4$3 v$C/E//,B?A& %ariable3 :APP</E//,B? +etea el #alor de 7E2UE/T. .ada bot'n de la aplicaci'n setea el #alor de 7E2UE/T con el nombre del bot'n. Esto permite aceptar procesos que hacen referencias al bot'n que el usuario lo cliqueo. +e puede referenciar a 7E2UE/T con la siguiente sinta*is3 +tring de sustituci'n3 E7E2UE/T P$A+4$3 4$C7E2UE/TA& %ariable3 37E2UE/T 8uestra detalles del procesamiento de la aplicaci'n. $os #alores #lidos para la bandera 1E569 son GE+ ' 7O. +etee esta bandera a GE+ para displayar detalles acerca del proceso. +e puede referenciar a la bandera de 1E569 utilizando la siguiente sinta*is3 +tring de sustituci'n3 EDEBUG P$A+4$3 4$CDEBUGA& %ariable3 :DEBUG $impia la cache. Esto setea el #alor de los items a null. Para limpiar los item de la cache de una sola pgina se debe especificar el I1 de la pgina. Para limpiar los items cacheados de #arias pginas se listan separados por comas los I1 de pgina. $impiar una cache de una pgina tambi-n resetea cualquier proceso de la pgina. +e pueden incluir #alores de items indi#iduales separados por coma ' nombres de colecci'n ' la palabra cla#e RP la que cual resetea el numerador de pginas de la regi'n de la pgina requerida. $a palabra cla#e 0PP limpia la cache de todas las pginas y de todos los items de la aplicaci'n y remue#e las preferencias de orden del usuario conectado. $a palabra cla#e +E++IO7 logra el mismo resultado que 0PP pero solo limpia los items asociados a la aplicaci'n de la sesi'n actual. $ista delimitada por comas de nombres de items para setear el estado de la sesi'n en una 6R$. $ista de los #alores de los items para setear la sesi'n en una url. $os items no pueden incluir punto y coma pero pueden incluir comas si estn entre barras P. Por ej3 P<=> =LP -13-

Request

1ebug

.lear.ache

Item7ames Item%alues

Application Express User's Guide

Building an Application

PrinterQriendly 1etermina si la pgina est siendo interpretada !le#antada mostrada" en modo PrinterQriendly. +i PrinterQriendly est seteado a GE+ la pgina se muestra en modo PrinterQriendly. El #alor de PrinterQriendly puede ser usado para condicionar la interpretaci'n de la pgina para remo#er elementos tales como regiones de la pgina para optimizar la salida impresa. +e puede referenciar esta bandera utilizando la siguiente sinta*is3 4$CP7,?TE7<M7,E?D#@A& 0unque es importante comprender como trabaja la sinta*is de 3p. rara #ez tendremos que redactarla nosotros mismos. El Ap Builder incluye #arios 8i+ards que automticamente crean estas referencias. $a siguiente secci'n describe casos espec(ficos en que se utiliza el enlace de pginas con 3p. ,nvocar una P*ina utili+ando alias de aplicaci%n ( de p*ina $os alias de aplicaci'n y pginas deben ser identificadores Oracle #lidos no pueden contener espacios en blanco y no son sensibles a las mayBsculas. El siguiente ejemplo in#oca una pgina utilizando alias desde adentro de una aplicaci'n. Este ejecuta la pgina home de la aplicaci'n myapp y utiliza el I1 de la sesi'n actual. 67p)myapp home ESESSION $os alias de aplicaci'n deben ser Bnicos dentro del esquema del usuario. +i una aplicaci'n en una base de datos diferente tiene el mismo alias utilice el argumento &c para calificar con el esquema del usuario. Por ejemplo3 67p)5$mm$n_alia& 0$me E&e&&i$n3E5)WORFSPACE_A ,nvocando una p*ina desde un bot%n con una url .uando se crea un bot'n se puede especificar una 6R$ para re&direccionar la na#egaci'n cuando el usuario haga clic) en el bot'n. Este ejemplo ejecuta la pgina MCC< de la aplicaci'n MCCC utilizando la sesi'n actual. 67p)?;;; ?;;. ESESSION3 7'tese que esto es solo un m-todo para usar un bot'n. Este m-todo bypasea submitir la pgina y actBa como un hyperlin) a otra pgina. Otro m-todo es submitir primero la pgina. En esta Bltima forma cli)eando el bot'n que submite la pgina para procesarla permite al formulario ser submitido y que el estado de la sesi'n sea guardado. %er3 @.reating 5uttons@ Utili+aci%n de /trin*s de sustituci%n. +e pueden usar strings de sustituci'n dentro de un templeate de pgina ' regi'n para reemplazar un carcter string por un #alor. 0l diseRar la aplicaci'n y permitir a los usuarios editar los items se necesita sustituir strings a fin de pasar la informaci'n. +e puede utilizar sustituci'n de string de la siguientes formas3 Incluir un string de sustituci'n dentro de un template. Referenciar un item ' pgina usando la sinta*is &ITEM. 6sar un string de sustituci'n para lograr una funcionalidad espec(fica. -14-

Application Express User's Guide

Building an Application

$os strings de sustituci'n usado dentro de un template son delimitado por HSI. Por ejemplo3 NABCN Para referenciar items de pginas ' aplicaci'n usar #ariables de sustituci'n3 <. Preceder el nombre del item con un ampersand ! E". =. 0gregar un punto al nombre del item. Por ejemplo se podr(a hacer referencia a un item de aplicaci'n denominado M9;9<O en una regi'n ;/8$ en un titulo en una etiqueta ' en cualquier otro conte*to as(3 EM9;9<O. 7otar que se requiere el punto final. .uando la pgina es interpretada el motor del 0pp.E*p reemplaza el string de sustituci'n por el #alor del item M9;9<O

-15-

Application Express User's Guide

Building an Application

/trin*s de sustituci%n prede inidos. 0pplication builder soporta un conjunto de string de sustituci'n predefinidos. Pueden ser necesarios para referenciar #alores con el fin de lograr una funcionalidad espec(fica. $as siguientes secciones describe estos strings de sustituci'n cuando con#iene usarlos y la sinta*is. 7otar que la #ariable :U/E7 tiene un significado especial dentro de la base de datos. /emas3

0PPD0$I0+ 0PPDI1 0PPDI809E+ 0PPDP09EDI1 0PPD+E++IO7 0PPD67I46EDP09EDI1 0PPD6+ER 06/;E7/I.0/E1D6R$DPREQI2 5ROE+ERD$079609E .6RRE7/DP0RE7/D/05D/E2/ 1E569 ;O8ED$I7T $O9I7D6R$ I809EDPREQI2 0pplication E*press +.;E80 OE7ER PRI7/ERDQRIE71$G $O9O6/D6R$ PRO2GD+ER%ER P65$I.D6R$DPREQI2 RE46E+/ +4$ERR8 +G+10/EDGGGG8811 -16-

Application Express User's Guide

Building an Application

EORT+P0.EDI809E+

%er tambi-n3 @+ubstitutions@ 0cerca de la definici'n de string de sustituci'n estticos tales como un atributo de la aplicaci'n. @Establishing 6ser Identity /hrough 0uthentication@ identificaci'n de usuario a tra#-s de autenticaci'n. APP<A#,A/ 0ppDalias !alfanum-rico" con el nombre de la aplicaci'n actual. 0ppDalias es diferente de 0ppDId ya que 0ppDid debe ser Bnico en todos los esquemas y en todas las aplicaciones residentes en una base de datos. En contraste 0ppDalias requiere que sea Bnico solo dentro del esquema al que pertenece. +e puede utilizar 0ppDalias en cualquier lugar que se pueda utilizar 0ppDid. Por ejemplo en la sinta*is fFp se puede usar un appDalias ' un id de aplicaci'n como se muestra en el ejemplo siguiente3 67p)ABC . ESESSION3 Este ejemplo ejecuta en la actual sesi'n la pgina < de la aplicaci'n 05.. /intaxis de: APP<A#,A/. 7e erence T(pe 5ind #ariable P$A+4$ +ubstitution string El siguiente es un ejemplo ;/8$3 Cli5k me ($ A$ ($ paAe . Ga 04e6)H67p)EAPP_ALIAS3 . ESESSION3HI $6 (0e 5C44en( appli5a(i$nG1aI APP<,D 0ppDid identifica la aplicaci'n que se est ejecutando. /intaxis de: APP<,D 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ /(ntax :APP_ID HTMLDB_APPLICATION.G_FLOW_ID (A NUMBER) NV('APP_ID') /(ntax :APP_ALIAS V('APP_ALIAS') &APP_ALIAS.

-17-

Application Express User's Guide

Building an Application

7e erence T(pe +ubstitution string

/(ntax &APP_ID.

El siguiente es un ejemplo de una referencia a un string de sustituci'n3 67p)EAPP_ID3 8; ESESSION3 APP<,"AGE/ 6tilizar este string para referenciar imgenes importadas ,a#a +cript y casca !"# s$%&' s(''$s (CSS) que son para una aplicaci'n dada y no son compartidos con otras aplicaciones. +i se importa un archi#o y se lo hace espec(fico de la aplicaci'n luego se debe utilizar este string de sustituci'n. /intxis de: APP<,"AGE/ 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ +ubstitution string /emplate substitution /(ntax :APP_IMAGES 7ot a#ailable. V('APP_IMAGES') &APP_IMAGES. )APP_IMAGES)

%er3 @I809EDPREQI2@ @EORT+P0.EDI809E+@ y @8anaging Images@ APP<PAGE<,D 0ppDpageDid es el id de la pgina de la aplicaci'n actual. Por ejemplo si la aplicaci'n est en la pgina > debe responder con >. Es Btil utilizar esta sinta*is cuando se desea escribir componentes de aplicaciones que necesitan trabajar en mBltiples aplicaciones. /intaxis de: app<pa*e<id 7e erence T(pe 5ind #ariable 1irect P$A+4$ 1irect P$A+4$ P$A+4$ /(ntax :APP_PAGE_ID HTMLDB_APPLICATION.G_FLOW_STEP_ID (A NUMBER) :APP_PAGE_ID NV('APP_PAGE_ID')

-18-

Application Express User's Guide

Building an Application

7e erence T(pe +ubstitution string

/(ntax &APP_PAGE_ID.

Ejemplo de sustituci'n3 67p)EAPP_ID3 EAPP_PA!E_ID3 ESESSION3 APP</E//,B? 0ppDsession es uno de los strings de sustituci'n ms usados. +e puede utilizar para crear enlaces de hiperte*to entre pginas de aplicaciones que mantienen el estado de una sesi'n pasndole el nBmero de sesi'n. /intaxis de app<session 7e erence T(pe 5ind #ariable P$A+4$ +hort P$A+4$ +hort substitution string +ubstitution string /(ntax :APP_SESSION V('APP_SESSION') V('SESSION') &SESSION. &APP_SESSION.

.onsideremos el siguiente ejemplo3 1esde adentro de una regi'n ;/8$3 Pa 0re :Q 3p:9;;:D:E/E//,B?.QRclicS meP=aR 6tilizando PlA+ql3 0t .anc0or$' 3p:9;;:D:'TT4$'/E//,B?'&.'clicS me'&U En una consulta sql query3
/E#ECT 0t .anc0or$' 3p:9;;:D:'TT:app<session.'clicSme'& M7B" DUA#U

APP<U?,2UE<PAGE<,D 0ppDuniqueDpageDid es un entero generado por una secuencia Oracle el cual es Bnico para cada pgina presentada. Este nBmero es utilizado por las aplicaciones para pre#enir submitir !aceptar procesar" pginas duplicadas y puede ser usado para otros prop'sitos. Por ejemplo si tu quieres obtener una 6R$ Bnica para e#itar que el browser guarde en la cache se puede embeber !incrustar" este numero en la respuesta ' columna de debug en el llamado al procedimiento . /intaxis de app<uni>ue<pa*e<id 7e erence T(pe 5ind #ariable P$A+4$ /(ntax :APP_UNI*UE_PAGE_ID V('APP_UNI*UE_PAGE_ID') -19-

Application Express User's Guide

Building an Application

7e erence T(pe +ubstitution string

/(ntax &APP_UNI*UE_PAGE_ID.

El siguiente ejemplo es un ;/8$3 SELECT '67p).;; . '|| APP_SESSION||' '|| APP_-NIJ-E_PA!E_ID|| ' P._EMPNO '||empn$" ename" #$% FROM emp 7otar el uso de la columna 0PPD67I46EDP09EDI1 en la respuesta. Esto hace que esta 6R$ sea Bnica y e#ita el problema de cacheo e*cesi#o del browser. APP<U/E7 0ppDuser es el usuario actual que est ejecutando la aplicaci'n. 1ependiendo de la modalidad de autenticaci'n tiene #alores que pertenecen a diferentes conjuntos. +i la aplicaci'n se ejecuta autenticando contra la base de datos el #alor del usuario es el mismo que el 6+ER de la base de datos. +i la aplicaci'n utiliza un esquema de autenticaci'n contra el cual se autentica tendr el user dado durante la autenticaci'n. /intaxis de App<user 7e erence T(pe 5ind #ariable P$A+4$ +hort P$A+4$ +ubstitution string /(ntax :APP_USER V('APP_USER') V('USER') &USER.

.onsidere los siguientes ejemplos. En una region ;/8$. Hell$ D$C a4e l$AAe' in a& E-SER3 En un c'digo PlAsql 0(p3p*KHell$ D$C a4e l$AAe' in a&L||,*K-SERL++/ .omo una #ariable SELECT * FROM &$me_(a%le WHERE C&e4_i' ) app_C&e4 %er3 @0uthentication@ para mayor informaci'n acerca del atributo Public 6ser AUT!E?T,CATED<U7#<P7EM,O Este atributo a ni#el de aplicaci'n identifica un prefijo autenticado #lido !es decir un prefijo 6rl de una sesi'n iniciada". +e puede usar un path relati#o o full comenzando con http. Este item es Btil si tu aplicaci'n puede ser ejecutada en ambos modos3 autenticado !log in" y pBblico ! sin log in". +e puede usar authenticatedDurlDprefi* para construir un lin) a una pgina autenticada. Este item es ms Btil cuando se usa autenticaci'n bsica contra la base de datos porque los cambios a la 6R$ pueden requerir autenticaci'n. -20-

Application Express User's Guide

Building an Application

/intaxis de aut0enticated<url<pre ix 7e erence T(pe 5ind #ariable P$A+4$ +ubstitution string /(ntax :AUTHENTICATED_URL_PREFI+ V('AUTHENTICATED_URL_PREFI+') &AUTHENTICATED_URL_PREFI+.

B7BV/E7<#A?GUAGE Referencia a la preferencia del lenguaje del browser actual. /intaxis de bro8ser<lan*ua*e 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ +ubstitution string +ubstitution string /(ntax :BROWSER_LANGUAGE HTMLDB_APPLICATION.G_BROWSER_LANGUAGE V('BROWSER_LANGUAGE') :BROWSER_LANGUAGE. &BROWSER_LANGUAGE.

CU77E?T<PA7E?T<TAB<TEOT Es el ms utilizado en los template de pginas pero es solo rele#ante para aplicaciones que tienen dos ni#eles de tab !es decir los tab parent y standard". +ir#e para referenciar a la etiqueta del tab parent. Permite repetir el tab parent actualmente seleccionado dentro del template de la pgina. /intaxis de current<parent<tab<text 7e erence T(pe 5ind #ariable +ubstitution string DEBUG -21/(ntax 7ot 0#ailable. &CURRENT_PARENT_TAB_TE+T.

Application Express User's Guide

Building an Application

$os #alores #lidos para la bandera de debug son Ges ' 7o. 0cti#ando debug se muestran los detalles del proceso de la aplicaci'n. +i se escribe c'digo y se desea #er el debug la Bnica forma es setear el modo debug a yes. /intaxis de debu* 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ +ubstitution string /(ntax 3DEBUG HTMLDB_APPLICATION.G_DEBUG V('DEBUG') &DEBUG. EDEB-!

Por ejemplo3 67p).;; . ESESSION3

!B"E<#,?W Es la pgina inicial de la aplicaci'n. El motor del 0pp.E*p apuntar a esta ubicaci'n si no se especifica una pgina y si no se define una pgina alternati#a por medio la l'gica del esquema de autenticaci'n. +e define el ;omeD$in) como un atributo de la pgina. /intaxis de 0ome<linS 7e erence T(pe 1irect P$A+4$ P$A+4$ /emplate Reference +ubstitution +tring /(ntax HTMLDB_APPLICATION.G_HOME_LIN, V('HOME_LIN,') )HOME_LIN,) &HOME_LIN,.

%er3 @0uthentication@ para mayor informaci'n sobre el atributo home lin). #BG,?<U7# +ir#e para displayar un lin) a la pgina de login para usuarios que no estn actualmente logueados. /intaxis de lo*in<url 7e erence T(pe 5ind #ariable /(ntax :LOGIN_URL

-22-

Application Express User's Guide

Building an Application

7e erence T(pe 1irect P$A+4$ P$A+4$ +ubstitution string /emplate +ubstitution

/(ntax HTMLDB_APPLICATION.G_LOGIN_URL V('LOGIN_URL') &LOGIN_URL. )LOGIN_URL)

,"AGE<P7EM,O 1etermina un path #irtual al ser#idor web usado para apuntar al directorio de imgenes distribuidas con Oracle 0pplication E*press. +i se desea referenciar imgenes importadas utilizar EORT+P0.EDI809E+ y 0PPDI809E+. %er3 @0PPDI809E+@ @EORT+P0.EDI809E+@ y @.onfiguring +tandard 0pplication 0ttributes@ /intaxis de ima*e<pre ix 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ +ubstitution string /emplate +ubstitution /(ntax :IMAGE_PREFI+ HTMLDB_APPLICATION.G_IMAGE_PREFI+ V('IMAGE_PREFI+') &IMAGE_PREFI+. )IMAGE_PREFI+)

APP#,CAT,B? EOP7E// /!E"A BV?E7 +i se estn generando llamados a aplicaciones desde dentro de c'digo plAsql podr(a ser necesario referenciar al propietario del esquema de Oracle 0pplication E*press. +eguidamente se describe la correcta sinta*is para referencia directa PlA+ql. HTMLDB_APPLICATION3!_FLOW_SCHEMA_OWNER /ambi-n se podr(a usar NM#BV<BV?E7N para referenciar este #alor en las consultas +4$ y P$A+4$ !por ejemplo en una regi'n ' en un procesos" P7,?TE7<M7,E?D#@ El #alor de PRI7/ERDQRIE71$G determina si el motor de 0p.E* se ejecuta en modo #isualizaci'n. Este setting puede ser referenciado en los condicionales para eliminar elementos no deseados en una pgina impresa. /intaxis de printer< riendl( -23-

Application Express User's Guide

Building an Application

7e erence T(pe /(ntax 1irect P$A+4$ HTMLDB_APPLICATION.G_PRINTER_FRIENDL- (VARCHAR. DATAT-PE) V('PRINTER_FRIENDL-') &PRINTER_FRIENDL-.

P$A+4$ +ubstitution string

#BGBUT<U7# Es un atributo a ni#el de aplicaci'n usado para identificar la 6R$ de logout. Esta es la 6R$ a la que na#ega para la pgina de logout u opcionalmente directamente desconecta al usuario. Para crear una entrada logout en la barra de na#egaci'n se adiciona un punto a E#BGBUT<U7#. +i se est codificando una pgina template utilizar Nlo*out<urlN. !notar el punto final". /intaxis de lo*out<url 7e erence T(pe 5ind #ariable P$A+4$ +ubstitution string /emplate substitution /(ntax :LOGOUT_URL V('LOGOUT_URL') &LOGOUT_URL. )LOGOUT_URL)

P7BO@</E74E7 Pro*yDser#er es un atributo de la aplicaci'n. El atributo puede ser usado por regiones cuyos fuentes se originan desde una url. +eguidamente la sinta*is correcta para una referencia plAsql directa usada cuando estn escribiendo plAsql para acceder a un ser#idor web remoto desde adentro de la base de datos !por ejemplo cuando usamos el paquete utl<0ttp despachado con la base de datos". HTMLDB_APPLICATION3!_PROMN_SER,ER PUB#,C<U7#<P7EM,O Es un atributo a ni#el de aplicaci'n que identifica la 6R$ para salir de modo logged a una #ista pBblica. /intaxis de public<url<pre ix 7e erence T(pe 5ind #ariable /(ntax :PUBLIC_URL_PREFI+ -24-

Application Express User's Guide

Building an Application

7e erence T(pe P$A+4$ +ubstitution string /emplate substitution

/(ntax V('PUBLIC_URL_PREFI+') &PUBLIC_URL_PREFI+. )PUBLIC_URL_PREFI+)

7E2UE/T .ada bot'n de la aplicaci'n setea el #alor de 7E2UE/T al nombre del bot'n ' al #alor del atributo 7E2UE/T asociado al bot'n. Esto permite procesar aceptaciones que referencian el nombre del bot'n cuando un usuario lo clic)ea. In la sinta*is 3p se puede setear request utilizando el cuarto parmetro. Referencias al #alor de 7E2UE/T Request es t(picamente referenciado durante el proceso de aceptaci'n !es decir el proceso que ocurre cuando se en#(a una pgina del cliente al ser#idor". /intaxis de 7e>uest 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ +ubstitution string &RE*UEST. !e*act synta* match" Alcance ( valor de 7E2UE/T para p*inas enviadas. .uando se en#(a una pgina se inicia un proceso de 0ceptaci'n. Este proceso de aceptaci'n consiste de clculos #alidaciones subprocesos y bifurcaciones. El #alor de 7E2UE/T est disponible durante cada fase del proceso de aceptaci'n. 6na #ez que la aplicaci'n bifurca a una pgina diferente se setea el #alor de request a 76$$. El #alor de 7E2UE/T es el nombre del bot'n que el usuario cli)queo ' el nombre del tab elegido por el usuario. Por ejemplo sup'ngase que tiene un bot'n con el nombre de .;079E y una etiqueta 0pply C0an*e. .uando el usuario clic)quea el bot'n el #alor de RE46E+/ ser C!A?GE. 7e erencias 7E2UE/T utili+ando condiciones. Es comBn referenciar RE46E+/ en los condicionales. Por ejemplo si se desea resetear la paginaci'n cuando el usuario hace clic)s en Go a una pgina del report. +e puede resetear la paginaci'n al crear un proceso de aceptaci'n de pagina. El proceso de la pgina puede ser condicionado usando 7e>uest : Expression 9. -25/(ntax :RE*UEST HTMLDB_APPLICATION.G_RE*UEST V('RE*UEST') &RE*UEST

Application Express User's Guide

Building an Application

Para crear un Hon&submit page processI3


<. 8ediante .ondition seleccionar el tipo de condici'n 7e>uest : Expression9. =. En E*pression < ingresar GB.

Uso de 7E2UE/T al mostrar procesos. +e puede usar RE46E+/ para mostrar procesos cuando se na#ega a una pgina usando la sinta*is 3p. Por ejemplo3 67p).;; . ESESSION3 !O Recuerde que el cuarto argumento en la sinta*is fFp es RE46E+/. Este ejemplo dirige hacia la aplicaci'n <CC pgina < para la sesi'n actual y setea el #alor de RE46E+/ al #alor 9O. .ualquier proceso ' regi'n puede referenciar el #alor de RE46E+/ utilizando mostrar proceso !+how processing". El siguiente es un ejemplo similar pero utilizando P$A+4$3 IF , *'REJ-EST'+ ) '!O' THEN 0(p3p*'0ell$'+/ END IF/ 7otar que 0tp.p$'0ello'& es un call a un plAsql del paquete Eeb /ool)it para salida impresa del string especificado. %er tambi-n3 %racle &atabase Application &e'eloper's Guide ( )undamentals for information about de#eloping Eeb applications with P$A+4$ %racle &atabase *+,S-+ *ac.ages and /ypes 0e1erence for information about htp pac)ages /2#E77" Es un templete de sustituci'n solo disponible en la Region de mensajes de error de la aplicaci'n. N/2#E77"N /@/DATE<@@@@""DD Representa la fecha actual sobre el ser#idor de base de datos con el formato yyyymmdd. +e puede utilizar en lugar de in#ocar llamados a la funci'n +G+10/E!". /intaxis de s(sdate<((((mmdd
Bind variable :/@/DATE<@@@@""DD P#=/2# 4$'/@/DATE<@@@@""DD'& Direct P#=/2# !T"#DB<APP#,CAT,B?.G</@/DATE $DATE DATAT@PE&

7e erence T(pe 5ind #ariable

/(ntax :S-SDATE_----MMDD -26-

Application Express User's Guide

Building an Application

7e erence T(pe 1irect P$A+4$ P$A+4$

/(ntax HTMLDB_APPLICATION.G_S-SDATE (DATE DATAT-PE) V('S-SDATE_----MMDD')

VB7W/PACE<,"AGE/ 6tilice este string de sustituci'n para referenciar imgenes importadas ,a#a +cript y hojas de cone*i'n en cascada del estilo que son compartidas con muchas aplicaciones dentro de un wor)space !o esquema de base de datos". /intaxis de 8orSsapce<ima*es 7e erence T(pe 5ind #ariable 1irect P$A+4$ P$A+4$ +ubstitution string /emplate substitution /(ntax :WOR,SPACE_IMAGES 7ot a#ailable V('WOR,SPACE_IMAGES') &WOR,SPACE_IMAGES. )WOR,SPACE_IMAGES)

%er3 @0PPDI809E+@ y @I809EDPREQI2@

Buildin* an Application
0qu( se describe como utilizar el generador de aplicaciones para construir una aplicaci'n y sus componentes. Incluye instrucciones para crear una aplicaci'n y agregar pginas como as( tambi-n componentes !reports grficos ' form" controles de pgina !botones items listas de #alores " y componentes compartidos !menus lists ' tabs". Topics:

Nota de la traduccin: "a traduccin a#anz hasta (reating Buttons. &ulio 'alle

Creatin* an Application Addin* Pa*es to an Application Creatin* 7eports Creatin* Morms Creatin* Calendars Creatin* C0arts Creatin* Buttons -27-

Application Express User's Guide

Building an Application

Creatin* ,tems Creatin* #ists o 4alues Usin* /0ortcuts ,ncorporatin* Xava/cript into an Application Creatin* Dependent /elect #ists Creatin* a !elp Pa*e

4er tambi-n:

@6sing 0pplication 5uilder@ @.ontrolling Page $ayout and 6ser Interface@ @0dding 7a#igation@

Creatin* an Application 6na aplicaci'n es una colecci'n de pginas las cuales comparten un estado de sesi'n comBn y la autenticaci'n. +e puede crear una aplicaci'n utilizando el wizard. +e puede deletear una aplicaci'n desde la home page del builder. Topics:

About Creatin* an Application Usin* a Vi+ard About t0e Create Application Vi+ard About t0e Create Application rom /preads0eet Vi+ard About Demonstration Applications Deletin* an Application

About Creatin* an Application Usin* a Vi+ard .uando se hace clic) en H.RE0/EI en la home page se propone3 Create application Permite crear una consulta a partir de queries +4$ ' de tablas de la base de datos.. Create Application rom /preads0eet. Permite crear una aplicaci'n basada en una hoja de clculo. +e puede subir ' pegar una hoja de clculos de datos para crear una tabla y luego agregar una interfase con el usuario. En la aplicaci'n resultante los usuarios pueden crear consultas eliminar insertar ' actualizar registros ' analizar los datos. %er tambi-n3 QAbout t0e Create Application rom /preads0eet Vi+ardQ. Demonstration Application. Instala A 1esinstala aplicaciones demo. +ir#e para aprender a construir aplicaciones. %er tambien QAbout Demonstration ApplicationsQ. %er tambi-n3 QAddin* Pa*es to an ApplicationQ or in ormation about addin* reports and orms b( creatin* a ne8 pa*e. -28-

Application Express User's Guide

Building an Application

About t0e Create Application Vi+ard. El wizard permite crear una aplicaci'n funcional completa a partir de cualquier nBmero de tablas. +e pueden crear pginas en blanco ' pginas basadas en queries +4$ ' sobre tablas de la base de datos. +e puede crear consultas +4$ escribiendo la select !manualmente" ' bien utilizando la interface grfica del 4uery 5uilder. $as aplicaciones basadas sobre tablas pueden consistir de un simple report un form y un report ' un form tabular. .uando se crean pginas sobre tablas se tiene la opci'n de generar pginas de anlisis. $as pginas de anlisis e*tienden un report simple !' un reporto sobre un form" para incluir mBltiples drill&down reports y grficos. %er tambi-n3 QBuildin* 2ueries 8it0 2uer( BuilderQ Topics:

.reating an 0pplication 5ased on /ables or 4ueries 0bout 0pplication 8odels and 6ser Interface 1efaults $e#eraging 0pplication 8odels and 6ser Interface 1efaults

Creatin* an Application Based on Tables or 2ueries +e puede crear una aplicaci'n basada sobre un tabla query ' drill&down query seleccionando Create Application en el Create Application Vi+ard. 9. +obre la ;ome Page de la base de datos clic) en Application Builder. I. .lic) en el bot'n Create. G. +eleccionar Create Application y clic) en ?ext. H. Ingrese los detalles bsicos de la aplicaci'n y clic) en ?ext. a. 7ame. Ingrese un nombre que describa la aplicaci'n. b. 0pplication. Ingrese un #alor entero !Bnico" para identificar la aplicaci'n. c. .reate 0pplication. +eleccione un m-todo de creaci'n3 / Mrom scratc0 Permite agregar pginas manualmente. / Based on existin* application desi*n model Permite copiar definiciones de pginas desde modelos de aplicaciones anteriores.
7otar que se debern definir todos los otros atributos de la aplicaci'n ' se puede elegir copiar los mismos atributos utilizando la opci'n copiar componentes compartidos desde otra aplicaci'n. !%-ase el punto N y QAbout Application

"odels and User ,nter ace De aultsQ d. /c0ema $a aplicaci'n obtendr su recursos a partir de todas las sql ejecutadas sobre un esquema de base de datos espec(fico. Identificar el propietario del esquema de base de datos. ?ext agrega la pgina a su aplicaci'n. L. 6nder 0dd Pages. .a +eleccionar el tipo de pagina que se desea agregar. Incluye las opciones de3 / BlanS .rea una pgina sin agregar ninguna funcionalidad. / 7eport .rea una pgina que contiene el resultado de una consulta +4$ formateado. +e puede elegir construir un report basado en una tabla que se selecciona ' basado en una sentencia +4$ +E$E./ dada por el usuario ' por una funci'n P$A+4$ que retorna una sentencia +4$ +E$E./ que se pro#ee. / Morm crea un form para actualizar un sola fila en una tabla de la base de datos. / Tabular Morm .rea un form para ejecutar update insert ' delete sobre mBltiples filas de una tabla de la base de datos. -29-

Application Express User's Guide

Building an Application

/ 7eport and Morm .onstruye dos pginas combinando form y report. +obre la primer pgina el usuario selecciona una fila para actualizar. +obre la segunda pgina el usuario puede agregar un nue#o registro ' actualizar ' borrar un reg. E*istente. Action 1isplaya el tipo de pgina seleccionada. Por cada selecci'n el wizard propone diferentes tipos de informaci'n. $as pginas report incluyen un chec) bo* ,nclude Anal(sis Pa*es. +eleccione esta opci'n y siga los prompt del wizard para e*tender un simple report !' un report sobre un form" para incluir mBltiples grficos y reports drill&down. .b .lic) Add Pa*e. $a pgina !' pginas" aparecen al tope de la pgina. Para borrar una pgina clic) en el icono 1elete. .c Repetir los puntos anteriores hasta que todas las pginas hallan sido agregadas. .d .lic) 7e*t. F. 1eterminar si se #a a incluir los tabs en la aplicaci'n y clic) ?ext. N. 1eterminar si se #a a importar componentes compartidos con otra aplicaci'n. $os componentes compartidos son elementos comunes que pueden displayarse ' ser aplicados sobre una pgina dentro de una aplicaci'n. Para incluir componentes compartidos3 a. .opy +hare .omponentes desde otra aplicaci'n seleccione @es b. .opy from 0pplication seleccione la aplicaci'n desde la cual quiere importar componentes compartidos. c. +elect .omponentes to Import seleccione los componentes a importar. d. 7e*t. O. +eleccione las siguientes preferencias de autenticaci'n y globalizaci'n. a. 1efault 0uthentication +cheme U Identifica un esquema de autenticaci'n que se desea usar por default. b. $anguage U +elecciona el lenguaje primario para esta aplicaci'n. Este atributo identifica el lenguaje en el cual la aplicaci'n es desarrollada. Este lenguaje es el lenguaje base desde el cual todas las traducciones son hechas. c. Obtener la preferencia de lenguaje del usuario. Especifica como el motor determina el lenguaje de la aplicaci'n. El lenguaje primario de la aplicaci'n puede ser esttico !es decir deri#ada del lenguaje del browser" ' determinada de una preferencia de usuario ' item. El lenguaje seteado en la base de datos determina el formato de display de la fecha y las caracter(sticas de ordenamiento. +e puede alterar los atributos de lenguaje y la forma de seleccionar el lenguaje ms tarde ' editar los atributos de globalizaci'n de la pgina. Para ello #-ase QCon i*urin* Globali+ation AttributesQ. d. .lic) ?ext. V. +eleccione un theme !conte*to" y clic) ?ext. $os /hemes !conte*tos" son colecciones de templeates que pueden ser usados para definir el layout y el estilo de una aplicaci'n completa. %-ase Q"ana*in* T0emesQ. <C. .onfirmar las selecciones realizadas. Retornar a la pgina anterior del wizard clic) en Previous. 0ceptar las opciones realizadas y clic) en Minis0. About Application "odels and User ,nter ace De aults. !8odelos de aplicaciones y #alores por default de la interface del usuario". El wizard para crear aplicaciones est diseRado asumiendo que el desarrollador lo ejecutar mBltiples #eces. Para facilitar este m-todo interacti#o para el desarrollo de aplicaciones cada vez que se e ecuta el !izard "uarda la definicin de la p#"ina como un modelo de aplicacin. -30-

Application Express User's Guide

Building an Application

.onsideremos el siguiente ejemplo3 .rear una nue#a aplicaci'n ejecutando el wizard. 1espu-s de #er la aplicaci'n caemos en la cuenta que no es todo lo que se quer(a. En lugar de modificarla se puede ejecutar el wizard nue#amente y seleccionar un modelo de aplicaci'n. 0l seleccionar un modelo de aplicaci'n e*istente cuando se re&ejecuta el wizard se puede rpidamente mejorar la aplicaci'n con m(nimo tiempo y esfuerzo. %er tambi-n3 "ana*in* Application "odelsQ Otra forma de incrementar la producti#idad cuando creamos una aplicaci'n es especificando #alores por default en la interface de usuario. $os #alores por default en las interfaces son metadatos que permiten asignar #alores por default a las propiedades de las tablas columnas ' listas dentro de un esquema espec(fico. %er tambi-n3 "ana*in* User ,nter ace De aultsQ #evera*in* Application "odels and User ,nter ace De aults. !8ejorar modelos de aplicaciones e interfaces de usuarios" +e puede incrementar la producti#idad en el desarrollo de aplicaciones mejorando los modelos de aplicaciones y los #alores por default de las interfaces de usuarios. .onsidere los siguientes escenarios3 <" .rear una aplicaci'n basada en tablas ' #istas ejecutando el wizard. =" Ejecutar la aplicaci'n generada. 1eterminar las deficiencias funcionales. >" E#aluar si crear ' editar las interfases del usuario. Por ejemplo se pueden usar los #alores por default en la interface del usuario para controlar los campos del formulario ' para displayar las etiquetas de los reports. /ambi-n se puede utilizar los #alores por default !de la interface" para displayar columnas espec(ficas o displayar determinadas columnas en orden alternati#o. H& 7a#egar a la home page de la aplicaci'n y crear una nue#a aplicaci'n haciendo clic) en Create. D& +eleccionar Create Application. M" .uando pregunta por los detalles de la aplicaci'n especificar lo siguiente3 a. 7ombre&Ingrese el nombre que describe a la aplicaci'n. b. 0pplication&Ingrese el id que identifica a la aplicaci'n !' acepte el #alor por default que propone el wizard". c. .reate 0pplication&seleccione Based on existin* application desi*n model. <" +eleccione un modelo de aplicaci'n. 7ote que las pginas que se crearon reci-n ya aparecen para ser seleccionadas como modelos. =" 0gregue edite ' remue#a pginas. >" .omplete el wizard. ?" Repetir los pasos = a V hasta que la aplicaci'n alcance los requerimientos funcionales. About t0e Create Application rom /preads0eet Vi+ard !Eizard para .reaci'n de aplicaciones desde hojas de clculos" +e pueden crear aplicaciones a partir de datos en hojas de clculos seleccionando Create Application rom /preads0eet en el wizard. Para crear una aplicaci'n desde una hoja de clculo3 9& I& G& H& 1esde ;ome Page clic) en Application Builder. .lic) en el bot'n Create. +eleccionar Create Application rom /preads0eet. Especificar como sern importados los datos desde la hoja de clculos. +eleccione alguno de los siguientes y clic) ?ext3 -31-

Application Express User's Guide

Building an Application

a. Upload ile !comma&delimited ' tab&delimited". Especifique uno de los siguientes y clic) ?ext3 i. Mile .lic) en 5rowse para localizar el archi#o a ser importado. ii. /eparator Especificar el carcter separador de columna. 6tilizar Pt para separadores tab. iii. Bptionall( Enclosed B( Ingrese el carcter delimitador. +e puede usar este carcter delimitador para indicar el comienzoAfin de un dato. +i se especifica un carcter delimitador el wizard ignora los espacios en blancos que aparecen antes del carcter de inicio y los que aparecen despu-s del carcter de fin que delimitan el dato. +e puede tambi-n usar esta opci'n para datos que estn delimitados por un carcter espec(fico. iv. Mile C0aracter /et +eleccionar el conjunto de caracteres en el que est codificado el archi#o de te*to. b. Cop( and Paste !hasta >C )bytes". .opiar y pegar los datos de la hoja de clculo que se desea importar y hacer clic) en ?ext. D& Re#isar la #ista pre#ia para #er como ser displayada la tabla y hacer clic) en ?ext. Especificar el nombre de la tabla y sus columnas modificar los tipos de datos ' detallar que columnas incluir. M" Re#isar si se displayan nombres en singular y escr(balos en plural. $a interface por default de las columnas displaya los nombres por default de las etiquetas. J& !Opcional" 8ediante la interface por default edite las etiquetas a displayar y clic) ?ext. K& Para los totales por columnas seleccione las columnas para las cuales los datos deben ser sumarizados en el reporte y grficos y clic) en ?ext. V" Este wizard crea #arios totales por reports. +elecciones las columnas que se deben totalizar por report. a. A**re*ate b( Column U Elija uno ' ms columnas para las cuales se quiere sumarizar o promediar. b. A**re*ate Munction to use U +eleccionar las funciones de resumen !+um ' 0#erage". c. .lic) ?ext. <C" +eleccionar opciones a ni#el de aplicaci'n3 a. Application ?ame U Ingrese un nombre alfanum-rico para esta aplicaci'n. b. Especificar el modo de creaci'n3 i. 7ead and Vrite incluye operaciones insert y update en las pginas. ii. 7ead Bnl( no incluye insert y update. c. +eleccione el tipo de grfico. d. .lic) ?ext. 99& +eleccione un theme !conte*to" y clic) ?ext. !/hemes son colecciones de templetes que pueden ser utilizados para definir el estilo y layout de una aplicaci'n completa. %-ase3 Q"ana*in* T0emesQ. 9I& .onfirmar opciones. +i desea #er pginas pre#ias del wizard puede realizar clic) en Previous. Para aceptar todo y finalizar clic) Create. About Demonstration Applications !0plicaciones de demostraci'n". Oracle 0pplication E*press se instala con aplicaciones de demostraci'n. 6tilice estas aplicaciones para comprender las funcionalidades que se pueden incluir en las aplicaciones. %er tambi-n3 Q7unnin* a Demonstration ApplicationQ -32-

Application Express User's Guide

Building an Application

Acceso a las aplicaciones demo Para acceder a las aplicaciones demo3 9& 1esde la ;ome Page clic) en Aplication builder. I& .lic) en el bot'n Create. G& +eleccionar Demonstration Application. 0parece la pgina de aplicaciones demo displayando enlaces a las siguientes aplicaciones3 a. /ample Application ofrece una demostraci'n que resalta conceptos bsicos de diseRo. b. Collection /0o8case muestra los conceptos del carrito de compras. c. Veb /ervices sir#e como ejemplo de c'mo se puede utilizar ser#icios web. H& Instalar una aplicaci'n demo bajar hasta la aplicaci'n que se desea instalar clic) ,nstall. 0parecer el estado ,nstalled. D& Editar la aplicaci'n instalada haciendo clic) en Edit. F& Ejecutarla con clic) 7un J& Para re&instalarla !a la aplic. 1emo" clic) en 7eL,nstall. Deletin* an Application !Eliminaci'n de una aplicaci'n". +e puede eliminar una aplicaci'n desde adentro del 0pplication 5uilder o mientras se estn editando sus atributos. +i se deletea una aplicaci'n se borran con ella todos los componentes definidos !reports grficos ' formularios" controles de pginas !botones items lista de #alores" y tambi-n los componentes compartidos !breadcrumbs listas y tabs". 7o se eliminan los default para las interfases. /emas3

1eleting an 0pplication from 0pplication 5uilder 1eleting an 0pplication from Edit 0pplication 0ttributes

Deletin* an Application rom Application Builder Para borrar una aplicaci'n desde 0pplication 5uilder3 9& 1esde la ;ome Page clic) en el icono Application Builder. =" +eleccionar una aplicaci'n. >" .uando se muestre el 0p. 5uilder #erificar el I1 de aplicaci'n y el nombre en la parte superior de la pgina. H& +obre la lista de tareas clic) en Delete t0is Application. L" +eguir las instrucciones que se dan en pantalla. Deletin* an Application rom Edit Application Attributes. 1eletear una aplicaci'n desde la edici'n de los atributos de aplicaci'n3 <" 1esde la ;ome Page 0pp. 5uilder =" +eleccionar la aplicaci'n. >" .lic) en editar atributos. H& .lic) en Edit /tandard Attributes. L" %erificar el I1 de la aplicaci'n y su nombre. F& .lic) en Delete al tope de la pgina. %-ase 3 Con i*urin* /tandard Application AttributesQ

-33-

Application Express User's Guide

Building an Application

Addin* Pa*es to an Application. +e puede agregar una nue#a pgina ' componente a una pgina e*istente ejecutando el Create Pa*e Vi+ard. Para acceder al mismo3 / .lic) en Create Pa*e en la home&page de la aplicaci'n. / .lic) en Create en la pagina de definici'n. / +eleccionar sobre la barra de desarrollo el Create #inS. 7ota3 +e puede agregar tambi-n un componente a una pgina e*istente !tal como un report un grfico un formulario un wizard un calendario ' un tree" utilizando el Eizard Create Pa*e. El wizard responde solicitando el I1 de una pgina e*istente. /emas.

.reating a Page from 0pplication ;ome Page .reating a Page from the Page 1efinition .reating a Page from the 1e#eloper /oolbar Running a Page or 0pplication 9rouping Pages $oc)ing and 6nloc)ing a Page 1eleting a Page

%-ase tambi-n3 Creatin* 7eportsQ. QCreatin* C0artsQ. QCreatin* MormsQ. QCreatin* CalendarsQ. and QCreatin* TreesQ Creatin* a Pa*e rom Application !ome Pa*e Para crear una nue#a pgina desde el 0pplication home page3 <" 1esde el 1atabase ;ome Page clic) en 0pplication 5uilder =" +eleccionar una aplicaci'n. 0parecer la 0pplication home Page de la misma. G& .lic) Create Pa*e ?" +eleccionar el tipo de pgina que se desea crear3 a. Pgina en 5lanco. b. 8Bltiples pginas en blanco. c. Reporte. d. 9rfico. e. Qormulario. f. Eizard. g. .alendario. h. /ree. i. Pgina de login. L" +eguir las instrucciones dadas en pantalla. Createin* a Pa*e rom t0e Pa*e De inition Para crear una nue#a pgina mientras se est #iendo una Page definition3 <" 7a#egar a la correspondiente Page 1efinition. a. 7a#egar a la 1atabase ;ome Page. b. .lic) en el (cono Application Builder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parece la definici'n de la pgina. -34-

Application Express User's Guide

Building an Application

I& 1esde la barra de na#egaci'n !al tope de la pgina" clic) en el bot'n Create. >" +eleccionar el tipo de pgina que se desea crear3 a. 7ew page. b. Region sobre esta pgina. c. .ontrol de pgina sobre si misma. d. .ontrol compartido. !+hared control" Table: Create Pa*e Bptions 1escribe las opciones disponibles correspondientes al tipo de pgina seleccionado. Create Pa*e Bptions 7ew Page
a. 0. c. . '. 1. #. (. !.

Available /elections 0#ailable page types3 5lan) age 8ultiple blan) pages Report .hart Qorm Eizard .alendar /ree $ogin Page

Regions function as containers for content. 0#ailable region types3 Region on this page
2. 3. &. 4. ". /. 5. 6. 7. s. $.

;/8$ Report Qorm .hart 5readcrumb P$A+4$ 1ynamic .ontent /ree 6R$ .alendar 8ultiple ;/8$ ;elp /e*t -35-

Application Express User's Guide

Building an Application

Create Pa*e Bptions Page control on this page

Available /elections Page controls3


8. 9. :. ;. %. <.

Item 5utton 5ranch .omputation Process %alidation

+hared component options3 +hared control


aa. 00. cc. . ''. 11.

7a#igation 5ar icon Parent tab +tandard tab $ist of #alues $ist 5readcrumb

?" .ontinuar con las instrucciones de pantalla. %-ase tambi-n3 Editin* a Pa*e De inition Creatin* a Pa*e rom t0e Developer Toolbar $os usuarios que estn logueados a la 1atabase ;ome Page utilizando una cuenta de usuario tienen acceso a la barra de desarrollo. $a barra de desarrollo se displaya al final de cada pgina y ofrece una forma rpida de crear una nue#a pgina. Para crear una nue#a pgina desde la barra de desarrollo3 9& +obre la barra de desarrollo seleccionar Create. 0parecer el wizard del nue#o componente. =" +eleccione el tipo de componente que se desea crear y clic) 7e*t. $as opciones disponibles son3 a. 7ew Page b. Regi'n sobre esta Page. c. Page .ontrol sobre esta Page. d. +hared control. Table: Create Pa*e Bptions 1escribe las opciones disponible correspondientes al tipo de pgina seleccionado. >" .ontinuar con las instrucciones dadas sobre la pantalla. %-ase tambi-n3 QUsin* t0e Developer ToolbarQ 7unnin* a Pa*e or Application. -36-

Application Express User's Guide

Building an Application

El motor del 0pplication E*press dinmicamente ejecuta y procesa pginas basadas sobre los datos alojados en las tablas de las bases de datos. Para #er un #ersi'n ejecutada de la aplicaci'n se ejecuta ' submite la misma al motor del 0pplication E*press. 0l crear nue#as pginas se pueden ejecutar indi#idualmente ' ejecutar la aplicaci'n completa. +e puede ejecutar una aplicaci'n con clic) en el icono 7un Application. /emas.

0bout the Run 0pplication Icon Running an 0pplication from the 0pplication 5uilder ;ome Page Running an 0pplication from the 0pplication ;ome Page Running a Page from the Pages $ist on the 0pplication ;ome Page Running a Page from the Page 1efinition

About t0e 7un Application ,con El icono de ejecuci'n de una aplicaci'n se asemeja a la luz del semforo. 6n gran icono colorido Run 0pplication aparece sobre la home page de las aplicaciones.

8uchas pginas dentro del 0pplication 5uilder tambi-n ofrecen una #ersi'n ms pequeRa de este icono. .lic) en este pequeRo icono se ejecuta la aplicaci'n completa ' de pginas indi#iduales dependiendo del conte*to en que se in#oca. Por ejemplo si es desde la home page ejecuta la aplicaci'n completa si es desde la Page 1efinition ejecuta solo la pgina en cuesti'n.

7unnin* an Application rom t0e Application Builder !ome Pa*e Para ejecutar una aplicaci'n completa desde la home page del 5uilder3 <" 1esde la home page de la base de datos clic) en 0pplication 5uilder. =" 1esde la lista de #istas !%iew" seleccionar 1etails y clic) en 9o. >" $ocalizar la aplicaci'n en la lista de aplicaciones. ?" .lic) en el icono Run que est en la columna ms a la derecha. 7unnin* an Application rom t0e Application !ome Pa*e Para ejecutar una aplicaci'n completa desde la home page de la aplicaci'n3 <" +obre la ;ome Page de la base de datos clic) en 0pplication 5uilder. 0parece la home page del builder. =" +eleccionar una aplicaci'n. >" .lic) en el icono Run. 7unnin* a Pa*e rom t0e Pa*es #ist on t0e Application !ome Pa*e Para ejecutar una pgina desde la lista de Pginas3 <" 1esde la ;ome Page clic) en el icono 0pplication 5uilder. =" +eleccionar una aplicaci'n. -37-

Application Express User's Guide

Building an Application

>" 1esde la lista %iew seleccionar 1etails y clic) en 9o. ?" 1esde la lista Pages localizar la pgina que se desea ejecutar y clic) en Run de la columna que est ms a la derecha. 7unnin* a Pa*e rom t0e Pa*e De inition Para ejecutar una pgina espec(fica de la Page 1efinition3 <" 1esde la 1atabase ;ome Page clic en 0pplication 5uilder. =" +eleccionar la aplicaci'n. >" +eleccionar la pgina. 0parece directamente la page definition. ?" .lic en Run Page en el e*tremo superior derecho de la pgina. Groupin* Pa*es 6tilice grupo de pginas y gestione las pginas dentro de una aplicaci'n. Para utilizar grupo de pginas se debe crear un grupo y luego asignar las pginas al grupo. $os grupos de pgina no tienen otra funci'n especial que no sea organizar las pginas de una aplicaci'n. +e puede organizar fcilmente las pginas por grupos dentro de la aplicaci'n. /emas3

%iewing the Page 9roup Report .reating a Page 9roup 0ssigning Pages to a Page 9roup

4ie8in* Pa*e Groups rom t0e Application !ome Pa*e Para #er el grupo de pginas desde la home page de la aplicaci'n3 <" 1esde la 1atabase ;ome Page clic en 0pplication 5uilder. =" +eleccionar la aplicaci'n. >" 1esde la lista de tareas del lado derecho de la pgina clic en 8anage Page 9roups ?" 1esde la lista de tareas clic en Report Page 9roups. 4ie8in* Pa*e Groups rom t0e Pa*e De inition Para #er un grupo de pginas desde la Page 1efinition. <" 1esde la 1atabase home page clic en el icono 0pplication 5uilder. =" +eleccionar una aplicaci'n. >" +eleccionar una pgina. 0parece la definici'n de la pgina. ?" 1esde la %iew list seleccionar 9roups. Creatin* a Pa*e Group Para crear un grupo de pginas3 <" 1esde la 1atabase ;ome Page clic) en 0pplication 5uilder. =" +eleccionar una aplicaci'n. >" 1esde la lista de tareas sobre el lado derecho de la pgina clic) en 8anage Page 9roups. ?" 1esde la page group clic) en .reate. L" Ingresar el nombre una descripci'n y clic) en .reate. Assi*nin* Pa*es to a Pa*e Group Para asignar una pgina a un grupo3 <" 1esde la 1atabase ;ome Page clic) en 0pplication 5uilder. =" +eleccionar una aplicaci'n. >" 1esde la lista de tareas sobre el lado derecho de la pgina clic) en 8anage Page 9roups. -38-

Application Express User's Guide

Building an Application

?" +obre la lista de tareas clic) en Report 6nassigned Pages. 0parecern las pginas no asignadas a grupos. L" 1esde Page 9roup seleccionar el grupo al cual se quiere asignar las pginas. M" +eleccionar las pginas que deben ser asignadas. N" .lic) en 0ssigned .hec)ed. +i se selecciona el id de pgina se enlaza a la pgina de atributos. +i se selecciona el nombre de la pgina enlaza a la definici'n de pgina. #ocSin* and UndlocSin* a Pa*e +e pueden pre#enir conflictos durante el desarrollo de la aplicaci'n impidiendo el acceso a pginas de la aplicaci'n. 8ediante el looc)ing de una pgina se pre#iene que otros desarrolladores puedan editarla. /emas.

1etermining If a Page Is $oc)ed $oc)ing a Page 6nloc)ing Pages 0ccessing 0lternati#e $oc)ed Pages %iews

Determinin* i a pa*e est locSed. +e indica que la pgina !actual" est loc)eada mediante un icono. +i la pgina esta desloc)eada el icono aparece abierto sino aparece cerrado. El icono de estado del loc)eo aparece en las siguientes pginas3 / 0pplication home page. +eleccione 1etails desde la lista 1isplay. 0parece una lista de pginas. El icono de loc) aparece debajo de la columna $oc). / Page 1efinition. El icono loc) aparece en el e*tremo derecho del menB de la pgina. #ocSin* a Pa*e +e puede loc)ear una pgina de la aplicaci'n3 <" 1esde la 1atabase ;ome Page clic) en 0pplication 5uilder. =" +eleccionar una aplicaci'n. >" +obre la lista de tareas a la derecha de la pgina clic) en 8anage Page $oc)s. ?" +eleccione la pgina apropiada y clic) en $oc) .hec)ed. L" Ingrese un comentario en el campo de comentarios. M" .lic) en $oc) Page. #ocSin* a Pa*e rom t0e Pa*es #ist Para loc)ear una pgina desde la $ista de Pginas3 <" 1esde la 1atabase ;ome Page clic) sobre 0pp.5uilder. =" +eleccionar una aplicaci'n.. >" 1esde la lista %iew seleccionar 1etails y clic) en 9o. ?" En la lista de pginas localizar la pgina deseada y clic) en el icono $oc). L" Ingresar un comentario. M" .lic) en $oc) Pages. #ocSin* a Pa*e rom t0e Pa*e De inition. Para loc)ear una pgina desde la pgina de definici'n de la aplicaci'n3 <" 7a#egar a la pgina de definici'n de la aplicaci'n. =" .lic) en el icono $oc) en la esquina superior derecha encima de +hared .omponents. >" +eleccionar las pginas deseadas y clic) en $oc) .hec)ed. -39-

Application Express User's Guide

Building an Application

?" Ingresar un comentario. L" .lic) en $oc) Pages. UnlocSin* Pa*es +olo el desarrollador que loc)eo una pgina puede desloc)earla. +in embargo un desarrollador con pri#ilegios administrati#os puede desloc)ear pginas loc)eadas por otros desarrolladores. $os pasos para desloc)ear pginas es similar que para el loc)eo descrito ms arriba. Accessin* Alternative #ocSed Pa*es 4ie8s. +e puede acceder un cierto nBmero de diferentes #istas de pginas loc)eadas. Para ello3 <" 1esde la 1atabase ;ome Page clic) en app.builder. =" +eleccionar una aplicaci'n. >" 1esde la lista de tareas a la derecha de la pg. clic) en 8anage Page $oc)s. ?" 1esde la lista de tareas clic) en uno de los siguientes3 a. +how $oc)ed Pages3 $o cual displaya solo pginas loc)eadas dentro de la actual aplicaci'n. b. +how all pages.3 1isplaya todas las pginas de la aplicaci'n. c. +how 6nloc)ed Pages3 1isplaya solo las pginas desloqueadas de la actual aplicaci'n. d. 0dminister $oc)s3 Permite a un administrador deslo)ear cualquier pgina loc)eada por un desarrollador. Deletin* a Pa*e +e puede deletear una pgina desde la Page 1efinition ' mientras se estn editando los atributos de la pginas. Deletin* a Pa*e rom t0e Pa*e De inition. Para deletear una pgina desde la Page 1efinition hacerlo desde la barra de na#egaci'n al tope de dicha pgina con un clic) en 1elete. Deletin* a Pa*e 80ile editin* pa*e attributes. Para deletear una pgina mientras se editan los atributos de pginas en la page definition clic) en Edit 0ttributes .lic) en edit +tandard 0ttributes y clic) en 1elete.

-40-

Application Express User's Guide

Building an Application

Creatin* 7eports En Oracle 0pplication E*press un reporte es el resultado de una consulta +ql query formateada. +e pueden generar reportes mediante la selecci'n y ejecuci'n del constructor de consultas ' mediante la definici'n de una regi'n en el reporte basada en una consulta sql. /emas.

.reating a Report 6sing a Eizard Editing Report 0ttributes .ontrolling Report Pagination Enabling .olumn +orting 0dding a .+% $in) to a Report E*porting a Report as an 28$ Qile or a .+% Qile .reating a .olumn $in) 1efining an 6pdatable .olumn 1efining a .olumn as a $ist of %alues .ontrolling Ehen .olumns 1isplay .ontrolling .olumn 5rea)s

Creatin* a 7eport Usin* a Vi+ard 0pplication 5uilder incluye un cierto nBmero de wizards para construir reportes. Para crear un reporte utilizando un wizard3 <" 1esde la 1atabase ;ome Page clic) en 0pp. 5uilder. =" +eleccionar la aplicaci'n. >" .lic) en .reate Page. ?" +eleccionar 7eport L" +eleccionar uno de los siguientes tipos de report3 a. Vi+ard 7eport 3 7o requiere conocimientos sobre +4$. +elecciona el esquema tabla columna y resultados a mostrar. b. /2# 7eport : .rea un reporte basado sobre una sentencia +ql +elect ' una funci'n PlAsql que retorna una sentencia sql select. M" .ontinuar con las instrucciones de pantalla. Editin* 7eport Attributes +e pueden utilizar los atributos del report y de las columnas de las pginas para controlar precisamente la definici'n de la pgina del report. Por ejemplo se pueden usar estos atributos para alterar los encabezamientos de columna la posici'n si es oculta ' bien para crear una columna que es una suma ' para seleccionar la secuencia de ordenamiento. 1esde la Page 1efinition se puede acceder a los atributos de la pgina report con un clic) en Report ' RP/ adyacente a la region report que tu quieres editar. Report indica al reporte que es un report regular y RP/ indica que es generado por wizard. +e puede na#egar tambi-n a los atributos del report !a la pgina de atributos" haciendo clic) en el nombre de la regi'n y luego seleccionando el tab Report 0ttributes. -41-

Application Express User's Guide

Building an Application

Para acceder a la pgina de atributos del report3 <" 1esde la 1atabase ;ome Page clic) en 0pplication 5uilder. =" +eleccionar la aplicaci'n. >" +eleccionar la pgina. 0parece la pgina de definici'n. ?" 1ebajo de la Regions hacer clic) en Report cerca del nombre de la regi'n que se desea editar. .on lo cual aparece la pagina de 0tributos del Report.

El tipo de encabezamiento identifica como fue generado el encabezamiento del report. 6tilice la secci'n de atributos de columna para controlar la apariencia y funcionalidad de cada columna. El linS de cada columna indica si una columna tiene actualmente definido un enlace. El Edit de cada columna indica si es o no updateable una columna. /able3 .ommon Report .olumn Edits 1escribe las ediciones ms comunes para las columnas de los reportes. Descripci%n 8odificar la secuencia de ordenaci'n de una columna 8odificar alineaci'n del encabezamiento 8odificar el encabezamiento de la columna .ontrol sobre las columnas a displayar. ;abilitar una Bnica secuencia de ordenaci'n. ;abilitar una columna de totales Acci%n a desarrollar. .lic) sobre las flechas arriba A abajo. 6nder .olumn 0lignment seleccionar una nue#a alineaci'n de columna. 6nder ;eading ingrese el nue#o te*to que corresponde a la columna. .lic) en /0o8 para indicar que una columna debe ser displayada. .lic) en +ort y seleccionar un numero de secuencia desde +ort +equence. +e debe elegir al menos una columna de ordenaci'n !pueden ser #arias". .lic) en +um para habilitar la suma de la columna.

+e puede adems refinar los atributos espec(ficos de una columna. L" Para acceder a los atributos de la columna clic) en el icono Edit adyacente al alias de la columna. %er tambi-n la ayuda on line para ms informaci'n sobre un atributo espec(fico de la columna. -42-

Application Express User's Guide

Building an Application

Controllin* 7eport Pa*ination +e puede controlar la paginaci'n del reporte mediante3 / Inclusi'n del string de sustituci'n de paginaci'n en el template del report. / ;acer la selecci'n del atributo $ayout y Paginaci'n desde los atributos del report. +e puede controlar como mostrar la paginaci'n seleccionando desde el atributo $ayout y Paginaci'n. Para acceder a esta secci'n3 <" .rear un reporte. =" 1ebajo de la Regions clic) sobre el enlace de atributo ! 7eport % 7PT". .on lo cual aparecer la pgina de atributos del report. >" 5ajar con scroll down hasta $ayout y Paginaci'n. +e usan los atributos de $ayout y Paginaci'n para seleccionar el estilo de paginaci'n determinar donde se displaya la paginaci'n y especifica el nBmero de filas que displayar sobre cada pgina. $a tabla siguiente describe los atributos ms comunes utilizados en /able3 $ayout and Pagination 0ttributes Atributo Report /empleate Pagination +cheme 1isplay Possition 7umber of Rows +trip ;/8$ Descripci%n Especifica el template que se aplicar a este report. $os template !de reportes" pro#een control sobre la salida de los resultados de una consulta sql. +e pueden seleccionar desde algunos template por default ' seleccionar un templete customizado. Especifica el esquema de paginaci'n para este reporte. Pro#ee al usuario informaci'n sobre el nBmero de filas y posici'n dentro del conjunto resultante. /ambi-n define el estilo de los enlaces ' botones usados para na#egar a la pgina siguiente y pre#ia. 1efine donde se displaya la paginaci'n. +i se elige displayar la paginaci'n sobre el reporte se requiere que el template del reporte soporte el tipo de display. 1efine el nBmero m*imo de filas a displayar por cada pgina. Especifica si se remue#e ' no los tags ;/8$ desde las columnas que tengan e*presiones ;/8$ y columnas con lin)s. +i se seleccionan datos de la base de datos que contienen tags ;/8$ pueden causar conflictos con el ;/8$ generado por los enlaces de columnas ' con las e*presiones ;/8$. .uando esta opci'n esta habilitada solo se utiliza la porci'n de datos de la columna como #alor ! no se utiliza el enlace ".

,ncludin* Pa*ination A ter t0e 7o8s in a 7eport Para incluir paginaci'n despu-s de las filas en un reporte. <" .rear un reporte. =" 7a#egar a la pgina de atributos del reporte. >" En $ayout and Pagination seleccionar lo siguiente3 a. Report /emplate U +elecciona un templete de reporte !opcional". b. Pagination +cheme U +elecciona un esquema de paginaci'n. c. 1isplay Position U +elecciona una posici'n. d. 7umber of Rows U +elecciona cuantas filas mostrar en cada pgina. e. .lic) en 0pply .hanges. ?" Editar el templete del reporte3 a. 7a#egar a la definici'n de pgina del reporte. b. En templates seleccionar el nombre del template. -43-

Application Express User's Guide

Building an Application

c. Incluir el string de sustituci'n )PAGINATION) en el atributo 0fter Rows. d. .lic) en 0pply .hanges. L" Ejecutar la pgina. ,ncludin* Pa*ination Be ore t0e 7o8s in a 7eport Para incluir paginaci'n antes de las filas en un reporte3 <" .rear un reporte. =" 7a#egar a la pgina de atributos del reporte. >" En $ayout and Pagination seleccionar lo siguiente3 a. Report /emplate U +elecciona un templete de reporte !opcional". b. Pagination +cheme U +elecciona un esquema de paginaci'n. c. 1isplay Position U +elecciona una posici'n que contiene el word top. d. 7umber of Rows U +elecciona cuantas filas mostrar en cada pgina. e. .lic) en 0pply .hanges. ?" Editar el templete del reporte3 f. 7a#egar a la definici'n de pgina del reporte. g. En templates seleccionar el nombre del template. (. Incluir el string de sustituci'n )TOP_PAGINATION) en el atributo 5efore Rows. i. .lic) en 0pply .hanges. L" Ejecutar la pgina. Enablin* Column /ortin* $ordenar por columna& Para habilitar la ordenaci'n por columna3 =) 7a#egar a la pgina de atributos del report. @Editing Report 0ttributes@. =" En los atributos de columna seleccionar el chec) bo* de +ort adyacente a cada columna por la cual se desea ordenar. >" 1esde +ort +equence !secuencia de ordenaci'n" seleccionar un nBmero de secuencia. +ort +equence es opcional. +in embargo si se ordena por una o ms columnas al menos una de las columnas necesita tener definido el +ort +equence. ?" ;ace scroll hacia abajo a +orting. L" Especificar si es orden ascendente ' descendente ' clic) en set defaults. Addin* a C/4 #inS to a 7eport ! 0gregar enlace para e*portar el reporte " +e puede crear un enlace dentro del reporte que permita al usuario final e*portar el reporte generado a un archi#o con formato delimitado por comas !.cs#". Para agregar dicho tipo de enlace es necesario habilitar la opci'n de salida .+% !.+% output option". .uando se usa la opci'n de salida .+% el template del reporte no tiene trascendencia !ya que no sir#e para formatear un archi#o delimitado por comas". +e puede incluir un enlace .+% con cualquier template de report que tenga definido el string de sustituci'n .+% e*port. %-ase tambi-n3 @0utomatic .+% Encoding@ Enablin* t0e C/4 Butput Bption ! ;abilitar la opci'n de salida .+% " Para habilitar la opci'n de salida .+%3 <" 7a#egar a los atributos de la pgina del reporte. =" 5ajar con scroll hasta Report E*port. >" En Enable .+% output seleccionar Ges. ?" !Opcionalmente" En el separador de campos !+eparator and Enclosed 5y fields" definir el separador y delimitador. Por default los delimitadores de string son los !HI" y los campos por comas ' punto y coma dependiendo de la configuraci'n 7$+. L" En el campo etiqueta del lin) !$in) $abel" se debe ingresar un te*to. Este te*to se mostrar en el reporte y permitir al usuario in#ocar un download. -44-

Application Express User's Guide

Building an Application

M" !Opcionalmente" Para especificar un nombre por default para el archi#o e*portado ingresar un nombre de archi#o en campo Qilename. Por default el motor del 0pplication E*press crea un nombre para el archi#o e*portado tomando el nombre de la regi'n y dndole e*tensi'n !.cs# ' .*ml ". N" .lic) en 0pply .hanges. Exportin* a 7eport as an O"# Mile or a C/4 Mile +e puede e*portar un reporte como un archi#o 28$ indicndolo en el template del report. Para e*portar un reporte como un archi#o3 =) 7a#egar a la pgina de atributos del reporte. @Editing Report 0ttributes@. =" 5ajar hasta el atributo $ayout and Pagination. >" En la lista de Report /emplate seleccionar export: O"# ' export: C/4. +eleccionando e*port3 *ml le indica al motor del application e*press que no construya la pgina del reporte y que #uelque el contenido a un archi#o 28$. ?" .lic) en 0pply .hanges. Creatin* a Column #inS ! .rear una columna de enlace " 6tilice el atributo .olumn $in) para crear un enlace desde un reporte a otra pgina dentro de la aplicaci'n ' bien a una 6R$. Para crear una columna de enlace a otra pgina3 =) 7a#egar a la pgina de atributos del report. @Editing Report 0ttributes@. =" En el atributo Report .olumn localizar la columna que tendr el enlace. >" .lic) en el icono Edit adyacente al nombre de la columna. 0parecer la pgina de atributos de la columna. ?" +eleccionar .olumn $in) L" Para crear un enlace a otra pgina3 a. En /arget seleccionar Pa*e in t0is Application. 0. !Opcionalmente" En los atributos del lin) especificar atributos adicionales en el lin) que sern incluidos en el tag >a (7'1? @ !por ejemplo un lin) clase ' estilo". c. En $in) /e*t ingresar el te*to ' imagen que se desea mostrar como lin) !se puede seleccionar alguna de las imgenes por default". d. En Page especificar el I1 de la pgina destino. Para resetear la paginaci'n de esta pgina seleccionar Reset Pagination. e. En Request se especifica la solicitud que se utilizar. f. En .lear .ache se especifica las pginas !es decir los I1 de pginas" sobre las cuales se limpia la cache. +e puede especificar #arias pginas listando los I1 separados por comas. g. En 7ame y %alue especificar el #alor de un item espec(fico. M" .lic) en 0pply .hanges. Para crear una columna con enlace a una 6R$3 =) 7a#egar a la pgina de atributos del report. @Editing Report 0ttributes@. =" 0cceder al atributos de una columna con clic) en Edit !junto a la columna". 0parecer la pgina de atributos de la columna seleccionada. >" 5ajar a .olumn $in). ?" En .olumn $in) ejecutar la siguiente selecci'n3 a. En /arget /ype seleccionar U7# b. En $in) /e*t ingresar el te*to a mostrar como enlace y seleccionar un string de sustituci'n. -45-

Application Express User's Guide

Building an Application

c. !Opcional". En $in) 0ttributes especificar los atributos adicionales del lin) que sern incluidos en el tag >a (7'1? @ !por ejemplo un lin) clase ' estilo". d. En 6R$ ingrese la direcci'n 6R$ a la cual se desea na#egar. L" .lic) en 0pply .hanges. De inin* an Updatable Column +e puede hacer que una columna sea de actualizaci'n editando los atributos /abular Qorm Element ' bien editando la pgina de los atributos de una columna del report. /enga en cuenta que el motor del 0pplication E*press solo puede ejecutar los update sobre la tabla si3 / +e define un update de mBltiples filas. / +e implementa un plAsql que ejecuta la actualizaci'n de los datos. / .uando usa la built&in del item que se muestra se debe definir que el report utilice el tipo /2# 2uer( $updatetable report&. Para definir columnas actualizables3 =) 7a#egar a la pgina de atributos del report. @Editing Report 0ttributes@. =" 0cceder a la pgina de atributos de la columna con un clic) en el icono Edit adyacente a la columna en cuesti'n. +e muestra la pgina de atributos de la columna seleccionada. >" 5ajar a /abular Qorm Element. ?" En /abular Qorm Element hacer la siguiente selecci'n. a. 1isplay 0s U +eleccionar un tipo de columna actualizable. 6tilice esta opci'n para que una columna sea actualizable. $a actualizaci'n solo podr ser ejecutada si se define un multirow update ' si se implementa un proceso plAsql que actualice los datos. b. 1ate Pic)er Qormat 8as) U +eleccionar una mscara si en la opci'n anterior !1isplay 0s" se eligi' Date PicSer. c. Element Eidth U Especificar el ancho del item. d. 7umber of Rows U Especificar la altura del item del formulario !solo es aplicable en reas de te*to". e. Element 0ttributes U Especificar si es un item radio group o un chec) bo*. f. Element Option 0ttributes U 1efine un estilo ' atributo !de elemento de form" standard g. Primary Tey +ource /ype U Identifica el tipo por default. h. Primary Tey +ource U Identifica el fuente por default. i. +i la columna es parte de la primary )ey definida en un proceso 8R6 !multi row update" solo aparece la Primary Tey +ource /ype y la Primary Tey +ource. ii. En otros casos aparece 1efault y 1efault /ype. 6tilice 1efault y 1efault /ype para establecer una relaci'n entre dos registros masters en un formulario master detail ' seleccione los #alores por default para las nue#as filas. i. Reference /able Owner U Identifica al propietario de las tablas referenciadas. 6se este atributo para construir la interface por default para el usuario del report. j. Reference /able 7ame U Identifica la tabla ' #ista que contiene la columna del reporte. ). Reference .olumn 7ame U Identifica el nombre de la columna a la que se hace referencia . L" .lic) en 0pply .hanges. -46-

Application Express User's Guide

Building an Application

De inin* a Column as a #ist o 4alues !.olumna tipo lista de #alores" $as columnas de los reportes pueden ser mostradas como listas de #alores. Por ejemplo una columna puede ser mostrada como una lista de selecci'n ' una lista popup de #alores. O bien una columna puede ser mostrada como un te*to read&only basado en una lista de #alores. Esta Bltima metodolog(a es una estrategia efecti#a cuando se muestra una loo)up y es particularmente Btil en reportes no&actualizables comunes. Esta metodolog(a permite displayar los #alores de una columna sin tener que escribir la sentencia sql join. Para mostrar una columna de reporte como lista de #alores3 <" 7a#egar a la pgina de atributos del reporte. =" 0cceder a la pgina de atributos de la columna con un clic en el Edit adyacente a la columna seleccionada. 0parece la pgina de los atributos de la columna. >" 5ajar hasta $ist of %alues. ?" En 7amed $O% hacer una selecci'n desde el repositorio de lista de #alores. L" Para incluir un #alor nulo en una lista de #alores. a. En 1isplay 7ull seleccionar yes. b. En 7ull /e*t especificar el #alor a displayar. 6na columna puede tambi-n tener un #alor que no se muestra en la lista de #alores. M" Para definir un #alor que no se muestra en la lista de #alores3 a. En 1isplay E*tra %alue seleccionar Ges. El #alor e*tra se usa si la columna actual no es parte de la $O%. En esta situaci'n el #alor actual es mostrado. +ino se displayan #alores e*tras podr(a quedar con un #alor err'neo y producir una actualizaci'n b. En 7ull %alue especificar el #alor a displayar. c. +i no se ha seleccionado un 7amed $O% ingrese la consulta sql necesaria para displayar la lista en el campo de la $O% 4uery. N" +i no se ha seleccionado un 7amed $O% ingrese la consulta sql necesaria para displayar la lista en el campo de la $O% 4uery. O" .lic en 0pply .hanges. %-ase tambi-n3 .reating $ists of %alues@ Controllin* V0en Columns Displa( +e pueden utilizar los atributos de columna 0uthorization y .ondition para controlar cuando se muestra una columna. 0uthorization permite controlar el acceso a la columna del reporte basado en una condici'n predefinida. $a condici'n se e#alua a #erdadero ' falso segBn la e*presi'n ingresada en E*pressions. Para especificar los atributos 0uthorization y .ondition3 =) 7a#egar a la pgina de atributos del reporte. @Editing Report 0ttributes@. =" 0cceder a la pgina de atributos de la columna con clic en el icono Edit adyacente a la columna seleccionada. >" En 0uthorization seleccionar desde la lista de 0uthorization +cheme. ?" En .onditions seleccionar desde la lista de .ondition /ype y dependiendo de la selecci'n realizada ingresar la e*presi'n correspondiente en el campo E*pression. +i la autorizaci'n es e*itosa y la condici'n es #erdadera se muestra la columna. %-ase tambi-n3

@Pro#iding +ecurity /hrough 0uthorization@ -47-

Application Express User's Guide

Building an Application

@6nderstanding .onditional Rendering and Processing@ 0#ailable .onditions

Controllin* Column BreaSs $ Cortes de Control & +e puede controlar la impresi'n en los cortes de control por columna utilizando el atributo 5rea) Qormatting. Por ejemplo sup'ngase que el reporte muestra informaci'n del nBmero de empleados por departamento. +i #arios empleados son miembros de un departamento se puede mejorar la presentaci'n especificando un corte de control por departamento a fin de que aparezca impreso solo una #ez el nBmero de departamento. Para crear este tipo de corte de control3 <" 7a#egar a la pgina de atributos del report. =" 5ajar a 5rea) Qormatting. >" +eleccionar los cortes desde la lista 5rea)s.

-48-

Application Express User's Guide

Building an Application

Creatin* Morms +e pueden incluir #arios tipos de forms en las aplicaciones. +e pueden incluir forms que permitan al usuario actualizar una sola fila de una tabla ' #arias filas de una tabla. 0pplication 5uilder incluye un wizard que permite crear formularios automticamente ' bien se pueden crear formularios manualmente. /emas3

.reating a Qorm 6sing a Eizard .reating a /abular Qorm 5uilding a 8aster 1etail Qorm .reating a Qorm 8anually %alidating 6ser Input in Qorms

Creatin* a Morm Usin* a Vi+ard $a forma ms fcil de crear un formulario es usando el wizard. Por ejemplo el wizard crea un formulario con un item por columna de la tabla ' #ista. /ambi-n incluye la creaci'n de los botones necesarios y los proceso requeridos para insertar actualizar y deletear filas desde la tabla utilizando la cla#e primaria de la misma. .ada regi'n tiene definido un nombre y una posici'n todos los otros atributos son items botones procesos y bifurcaciones. Para crear un form utilizando el wizard3 <" 1esde la 1atabase ;ome Page clic en el icono del 0pplication 5uilder. =" +eleccionar una aplicaci'n. >" .lic en .reate Page. ?" +eleccionar Morm. L" En Qorms seleccionar un tipo de form de los descriptos en3 /able3 Qorms Page /ypes.
Qorm Page /ype Qorm on a Procedure 1escription .rea un form basado sobre los argumentos de un procedimiento almacenado. 6tilizar este m-todo cuando se tiene implementada la l'gica ' la manipulaci'n de datos !data manipulation language" en un procedimientos almacenados ' paquetes. Qorm on a +4$ 4uery .rea un form basado sobre las columnas retornadas por una consulta +ql tal como un E46I,OI7. Qorm on a /able or %iew .rea un form que permite al usuario actualizar una sola fila en una tabla de la base de datos. Qorm on a /able with .rea dos pginas. 6na pgina muestra un report. .ada fila pro#ee un Report enlace a la segunda pgina que permite al usuario actualizar cada registro. 7ota3 Este wizard soporta hasta <=N columnas. Qorm on Eeb +er#ice .rea una pgina con items basado sobre la definici'n de un Eeb ser#ice. Este wizard crea un formulario de input del usuario un proceso que llama al ser#icio Eeb y un bot'n que submite. %er tambi-n @.reating a Qorm

on a Eeb +er#ice@
Qorm and Report Eeb +er#ice on .rea una pgina con items basados sobre la definici'n de un ser#icio Eeb. Este wizard crea un formulario de input de usuario un proceso que llama al ser#icio Eeb un bot'n que submite y displaya el resultado obtenido en un reporte. %er tambi-n3@.reating an Input Qorm and

Report on a Eeb +er#ice@


8aster 1etalil Qorm .rea un form que displaya una relaci'n master&detail dentro de un solo

-49-

Application Express User's Guide

Building an Application

+ummary Page /abular Qorm

formulario ;/8$. .on este form los usuario s pueden consultar insertar actualizar y deletear #alores de dos tablas ' #istas relacionadas como master&detail. %er tambi-n3 @5uilding a 8aster 1etail Qorm@ .rea una #ersi'n read&only de un formulario. +e usa generalmente para pro#eer una pgina de confirmaci'n al final del wizard. .rea un formulario en el cual los usuarios pueden actualizar mBltiples filas en una tabla. %er tambi-n3@.reating a /abular Qorm@

M" .ontinuar con las instrucciones dadas en pantalla. Creatin* a Tabular Morm 6n formulario tabular permite a los usuarios actualizar #arias filas de una tabla. El wizard crea un form para ejecutar operaciones de insert update ' delete sobre #arias filas de una tabla de la base de datos. Para crear un form tabular3 <" 1esde la 1atabase ;ome Page clic) en 0pplication 5uilder. =" +eleccionar una aplicaci'n. >" .lic) en .reate Page ?" +eleccionar Morm L" +eleccionar Tabular Morm . 0parecer la pgina del wizard correspondiente. M" En Identify /ableA%iew Owner3 / Especificar el esquema de la tabla o #ista sobre la cual se basa el form. / +eleccionar las operaciones que se desea ejecutar sobre la tabla !por ejemplo3 Update. ,nsert ( Delete". N" En Identify /ableA%iew 7ame seleccionar una tabla. O" En Identify .olumns to 1isplay3 / Especificar si utiliza la interfase de usuario por default. +eleccionar @es ' ?o. ;abilitar la interfase de usuario por default permite asignar las propiedades por default a una tabla columna ' #ista en un esquema espec(fico. / +eleccionar las columnas !actualizables y no actualizables" que incluye el form. +e puede modificar el orden de las columnas ' la consulta +4$ despu-s de crear la pgina del formulario. V" En Identify Primary )ey seleccionar la columna PT y una columna PT secundaria !si corresponde". <C"En 1efaults for Primary and Qoreign Teys seleccionar el tipo de origen de la columna de la primary )ey. $as or(genes posibles para generar las primary )ey son3 / Existin* tri**er U +eleccionar esta opci'n si hay un trigger definido en la tabla. +e puede tambi-n seleccionar esta opci'n si se tiene pensado en especificar la fuente de la columna primary )ey mas tarde despu-s de crear el formulario. / Custom P#=/2# unction U +eleccionar esta opci'n si se desea pro#eer una funci'n plsAsql que retorne el #alor de la primary )ey. / Existin* se>uence U +eleccionar esta opci'n si se desea seleccionar una secuencia desde la lista de secuencias disponibles en el esquema. <<"En 6pdatable .olumns seleccionar que columnas deber(an ser de actualizaci'n. <="En Identify Page and Region 0ttributes. / Especificar la informaci'n de pagina y de regi'n. / +eleccionar un template para la regi'n. / +eleccionar un template para el report. <>"En Identify /ab especificar un tab de implementaci'n para esta pgina. <?"En button $abels ingresar el te*to a mostrar en cada bot'n. -50-

Application Express User's Guide

Building an Application

<L"En Identify 5ranching especificar las pginas a bifurcar despu-s de hacer clic) en los botones +ubmit y .ancel. <M".lic) en Qinish. 7ota3 7o modificar la lista de campos de la select despu-s de que se ha generado el form tabular. ;aciendo esto se puede causar un error de chec)sum cuando se alteran los datos en el formulario. %er tambi-n3@8anaging 6ser Interface 1efaults@ Buildin* a "aster Detail Morm 6n formulario master detail refleja una relaci'n uno a muchos entre dos tablas del esquema de la base de datos. /(picamente un form master detail muestra una fila de la tabla master y mBltiples filas de la tabla detail dentro de un Bnico form ;/8$. .on este form los usuarios pueden insertar actualizar y deletear registros desde dos tablas ' #istas. Para crear un form master detail3 <. 1esde la 1atabase ;ome Page clic) en 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. .lic) en .reate Page. ?. +eleccionar Morm L. +eleccionar "aster Detail Morm. 0parecer el wizard correspondiente. M. En 1efine 8aster /able3 a. +eleccionar el esquema de la tabla ' #ista. b. +eleccionar el nombre de la tabla ' #ista. c. +eleccionar las columnas a mostrar. N. En 1efine 1etail /able3 a. Especificar mostrar solo tablas relacionadas. b. +eleccionar el esquema de la tabla ' #ista. c. +eleccionar el nombre de la tabla ' #ista. d. +eleccionar las columnas a mostrar. O. En 1efine Primary Tey seleccionar la columna de la primary )ey de la tabla master y luego seleccionar la columna de la primary )ey de la tabla detail. V. En 1efine 8aster and 1etail definir las relaciones entre las tablas master y detail. <C. Especificar el origen de las columnas primary )ey de la tabla master y de la tabla detail. <<. En 1efine 8aster Options especificar si se incluye master row na#igation. +i se incluye master row na#igation hay que definir el orden de las columnas. +ino se define na#igation order column el form de actualizaci'n master na#ega por la columna de la primary )ey. <=. En .hoose $ayout especificar el layout de la pgina master detail. +e puede incluir el master detail como un form tabular sobre la misma pgina ' desplegar el master detail como pginas separadas. <>. En Page 0ttributes re#isar y editar la informaci'n de la pgina master detail. <?. En Identify /abs especificar si se incluye opcionalmente un tab set. <L. .lic) en Create. Creatin* a Morm "anuall( +e puede tambi-n crear un form manualmente ejecutando los siguientes pasos. / .rear una regi'n ;/8$ !sir#e como contenedor de los items de pgina". / .rear los items a mostrar en la regi'n. -51-

Application Express User's Guide

Building an Application

/ .rear los proceso y bifurcaciones. Para crear un form manualmente mediante la creaci'n de una regi'n ;/8$3 <. 7a#egar a la correspondiente Page 1efinition3 7a#egar a la 1atabase ;ome Page. .lic) en 0pplication 5uilder. +eleccionar una aplicaci'n. +eleccionar una pgina. 0parecer la definici'n de pgina. =. .rear una regi'n ;/8$. En Regions clic) en el icono Create. +eleccionar el tipo de regi'n !T"#. +eguir las instrucciones del wizard. >. 0gregar items a la pgina3 En Items clic) en el icono Create. +eguir las instrucciones del wizard. Processin* a Morm 6na #ez creado el form el pr'*imo paso es procesar los datos de datos insertando ' actualizando las tablas ' #istas subyacentes en la base de datos. ;ay tres formas para procesar un form3

.reating an 0utomatic Row !18$" Processing Process .reating a Process that .ontains One or 8ore Insert +tatements 6sing a P$A+4$ 0PI to Process Qorm %alues

Creatin* an Automatic 7o8 $D"#& Processin* Process 6na forma comBn de implementar un form es creando manualmente un proceso Automatic 7o8 Processin* $D"#&. Este m-todo ofrece tres #entajas. Primero no requiere escribir c'digo +4$. +egundo Oracle 0pplication E*press ejecuta los procesos 18$ necesarios. /erceros estos procesos. /ercero estos procesos automticamente ejecuta la detecci'n de p-rdidas de actualizaci'n !lost update detection". $a detecci'n de p-rdidas de actualizaci'n asegura la integridad de datos de la aplicaci'n donde los datos pueden ser accedidos concurrentemente. Para implementar esta metodolog(a 3 / 0dd items define el tipo de fuente del item a partir como una columna de base de datos y especifica un nombre de columna case&sensiti#e. / +eleccionar la opci'n Al8a(s overrides t0e cac0e value. !Reescribir siempre el #alor cacheado". Para crear un proceso 0utomatic Row Processing !18$"3 <. 7a#egar a la correspondiente Page 1efinition3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en el (cono 0pplication 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parece la definici'n de la pgina. =. En Processes clic) en el icono Create. >. +eleccionar el proceso Data "anipulation. ?. +eleccionar la categor(a de procesos Automatic 7o8 Processin* $D"#&. L. Especificar los siguientes atributos del proceso3 a. En el campo ?ame ingresar el nombre para identificar el proceso. b. En el campo /e>uence especificar un nBmero de secuencia. -52-

Application Express User's Guide

Building an Application

c. En la lista Point seleccionar el punto de inicio del proceso. En la mayor(a de los casos corresponde seleccionar select Bnload Y A ter !eader. d. En la lista T(pe seleccionar Automatic 7o8 Processin* $D"#&. M. .ontinuar las instrucciones dadas por el wizard en pantalla. Creatin* a Process t0at contains Bne or "ore ,nsert /tatements En este m-todo de manejo del form se crea uno ' ms procesos para gestionar las acciones de insert update y delete. En #ez de dejar que motor del 0pplication E*press lo maneje en forma transparente el desarrollador asume el control completo. Por ejemplo sup'ngase que se tiene un form con tres items3 P<DI1 U 6n item oculto que guarda la primary )ey de la fila que se muestra actualmente de una tabla. P<DQIR+/D708E U 6n campo item de te*to para entrada de datos del usuario. P<D$0+/D708E U 6n campo item de te*to para entrada de datos del usuario. +upongamos tambi-n que hay tres botones etiquetados ,nsert. Update. ( Delete. /ambi-n asumimos que se cuenta con una tabla T que contiene las columnas id firstDname and lastDname. $a tabla tiene un trigger que automticamente completa la columna ,D cuando no se pro#ee un #alor para la misma. Para procesar el insert de una nue#a fila se crea un proceso condicional de tipo P$A+4$ que se ejecuta cuando el usuario hace clic) en el bot'n ,nsert. Por ejemplo3 BEGIN INSERT INTO T ( 1!7s$_"a4'A &as$_"a4' ) VALUES (:P=_FIRST_NAMEA :P=_LAST_NAME)B ENDB Para procesar el update de una fila se crea otro proceso condicional del tipo plAsql. Por ejemplo3 BEGIN UPDATE T SET 1!7s$_"a4' ? :P=_FIRST_NAMEA &as$_"a4' ? :P=_LAST_NAME WHERE ID ? :P=_IDB ENDB Para procesar el delete de una fila se crea otro proceso condicional que se ejecuta con el clic) del bot'n correspondiente. Por Ejemplo3 BEGIN DELETE FROM T WHERE ID ? :P=_IDB ENDB Usin* a P#=/2# AP, to Process Morm 4alues Para cierto tipo de aplicaciones es apropiado centralizar todos los accesos a las tablas en un solo !' en unos pocos" paquetes P$A+4$. +i se crea un paquete para manejar las operaciones 18$ se puede llamar a los procedimientos y funciones dentro de dicho paquete desde un proceso P$A+4$ 0fter +ubmit para procesar los insert update y delete. Populatin* Morms -53-

Application Express User's Guide

Building an Application

Oracle 0pplication E*press llena un form al cargarlo ' cuando el motor del 0pp.E*press le#anta la pgina. 6n form se puede llenar de las siguientes formas3 <. .reando un proceso y definirlo como 0utomated Row Qetch =. $lenar el form manualmente por referencia un item oculto de estado de sesi'n. Para crear un proceso 0utomated Row Qech3 <. 7a#egar a la correspondiente Page 1efinition3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en 0pplication 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parecer la definici'n de la pgina. =. En Processes clic) en Create. >. +eleccionar el tipo de proceso Data "anipulation. ?. +eleccionar la categor(a de proceso Automatic 7o8 Metc0. L. Especificar los siguientes atributos de proceso3 a. En el campo 7ame ingresar un nombre que identifique el proceso. b. En el campo +equence especificar un nBmero de secuencia. c. En la lista Point seleccionar el correspondiente punto de proceso. d. En la lista /ype seleccionar Automated 7o8 Metc0. M. +eguir las instrucciones del wizard. /ambi-n se puede llenar un form manualmente por referenciar un sesi%n state item oculto. Por ejemplo el siguiente c'digo en un proceso de tipo plAsql en Oracle 0pplication E*press deber(a setear los #alores de ename y sal. El ejemplo tambi-n demuestra como llenar manualmente un form referenciando un session state item denominado PI<,D FOR C= !" (SELECT '"a4'A sa& FROM '45 WHERE ID?:P._ID) LOOP :P._ENAME :? C=.'"a4'B :P._SAL :? C=.sa&B END LOOPB En este ejemplo3 C9 es un cursor impl(cito. El #alor de PI<,D ya hab(a sido seteado. El process point para este proceso deber(a ser seteado para ejecutar !o disparar" en Bnload Y Be ore 7e*ions. 4alidatin* User ,nput in Morms +e pueden utilizar #alidaciones para chequear los datos ingresados por los usuarios antes de procesarlos. 6na #ez que se crea una #alidaci'n y el mensaje de error asociado se puede asociar la #alidaci'n a un item espec(fico. +e puede seleccionar que la #alidaci'n muestre el mensaje de error asociado en l(nea !es decir en la misma pgina donde se ejecuta la #alidaci'n" o en una pgina de error separada. $a creaci'n de un mensaje de error en l(nea in#olucra los siguientes pasos3 .rear una nue#a #alidaci'n y un mensaje de error de te*to espec(fico. 0sociar la #alidaci'n con un item espec(fico. Creatin* a 4alidation Para crear una nue#a #alidaci'n3 -54-

Application Express User's Guide

Building an Application

<. 7a#egar a la correspondiente Page 1efinition3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en 0pplication 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parecer la definici'n de la pgina. =. En %alidations clic) en el icono Create. >. .uando aparece el wizard de .reate %alidations continuar con las instrucciones del mismo en pantalla. a. ,tem. Estas #alidaciones arrancan con el t-rmino Item y pro#ee los chequeos ms comunes que podr(as querer ejecutar sobre el item con el cual la #alidaci'n se asocia. b. Code. Estas #alidaciones requiere que se pro#ea c'digo plAsql ' una consulta +ql que defina la l'gica de la #alidaci'n. 6tilice este tipo de #alidaci'n para ejecutar #alidaciones espec(ficas !customizadas" que requieran #erificar #alores de ms de un item o acceder a tablas adicionales de la base de datos. ?. .ontinuar con las instrucciones del wizard. ?ota: $as #alidaciones no pueden contener ms de >.VLC caracteres. Associatin* a 4alidation 8it0 a /peci ic ,tem Para asociar un item con una #alidaci'n y su mensaje de error3 <. 7a#egar a la correspondiente Page 1efinition3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en 0pplication 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parecer la definici'n de la pgina. =. En %alidations seleccionar el item de #alidaci'n que se quiere asociar. 0parecer la pgina de atributos para la #alidaci'n. >. 5ajar al Error 8essage3 En Error messa*e displa( location #erificar la ubicaci'n donde se muestra. En Associated ,tem seleccionar el item que se quiere asociar con esta #alidaci'n. ?. .lic) en Appl( C0an*es. About Error "essa*e Error messa*e displa( location identifica donde se displaya el mensaje de error. Este puede ser mostrado en una pgina de error !una pgina aparte" ' en la misma pgina !Inline error messages". ,nline error messa*es puede mostrarlo en un rea de notificaci'n !definida como parte del page template" ' dentro del campo indiciado. 0l producir un error gra#e que detenga el proceso incluyendo cualquier #alidaci'n restante se debe mostrar el error sobre una pgina de error !error page".

-55-

Application Express User's Guide

Building an Application

Creatin* Calendars 0pplication 5uilder incluye un wizard para generar un calendario. 6na #ez que se especifica la tabla sobre la cual el calendario est basado se pueden crear enlaces drillLdo8n a la informaci'n que se guarda en columnas espec(ficas. /emas3

0bout .reating .alendars .reating a 7ew .alendar .on#erting an Easy .alendar to a +4$ .alendar Editing a .alendar /itle Editing .alendar 0ttributes

About Creatin* Calendars 0pplication 5uilder soporta dos tipos calendarios3 Eas( Calendar crea un calendario basado sobre un esquema tabla y columna espec(fico. El wizard solicita que se seleccione una columna tipo date y una columna de display. />l Calendar crea un calendario basado sobre una consulta sql !dada por el desarrollador". $a sentencia +4$ +E$E./ que se escriba debe incluir al menos dos columnas3 una columna tipo date y una columna de display. %er tambi-n3 @.alendar 1isplay@ /upported Calendar /ubstitution /trin*s 0pplication 5uilder soporta #arios string de sustituci'n de formato date. +e puede #er una lista completa de los strings de sustituci'n soportados sobre la pgina .alendar /emplates. Para #er una lista de los string de sustituci'n soportados para calendarios3 <. 7a#egar al template correspondiente del calendario. =. E*pandir la lista de +ubstitution +trings a la derecha de la pgina. %er tambi-n3 @%iewing /emplates@ Creatin* a ?e8 Calendar .uando tu creas un calendario depende de si se est agregando un calendario sobre una pgina e*istente ' si se est agregando a una nue#a pgina. .uando se crean calendarios recordar3 +e pueden solamente crear un calendario por pgina. $a date column determina que d(as sobre el calendario tendrn entradas. $a displa( column define una fila espec(fica que mostrar una fecha !calendario". %er tambi-n3 @Editing .alendar 0ttributes@ Addin* a Calendar to an Existin* Pa*e Para agregar un calendario a una pgina e*istente3 <. 7a#egar a la correspondiente Page 1efinition. a. 7a#egar a la 1atabase ;ome Page. -56-

Application Express User's Guide

Building an Application

=. G. ?.

L.

b. .lic) en el (cono Application Builder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parece la definici'n de la pgina. En Regions clic) en el icono .reate. 0parecer el wizard de .reate Region. +eleccionar Calendar. +eleccionar el tipo de calendario que se desea crear3 a. Eas( Calendar crea un calendario basado en una columna fecha y en una columna display especificada. b. /2# Calendar crea un calendario basado sobre una consulta +4$ que se debe especificar. .ontinuar con las instrucciones dadas en pantalla.

Addin* a Calendar to a ?e8 Pa*e Para crear un calendario sobre una nue#a pgina3 <. 7a#egar a la 1atabase ;ome Page. =. .lic) en el (cono 0pplication 5uilder. >. +eleccionar una aplicaci'n. H. .lic) en Create Pa*e. D. +eleccionar Calendar. M. +eleccionar el tipo de calendario que se desea crear3 a. Eas( Calendar crea un calendario basado en una columna fecha y una columna display especificada. b. /2# Calendar crea un calendario basado sobre una consulta +4$ dada. N. .ontinuar con las instrucciones dadas por el wizard en pantalla. Convertin* an Eas( Calendar to a /2# Calendar .rear un Eas( Calendar es la forma ms simple de crear un calendario. +in embargo si se resuel#e que el calendario resultante no es apropiado se puede rpidamente con#ertir este en un calendario +4$. Para con#ertir un Easy .alendar en un +4$ .alendar3 <. 7a#egar a la correspondiente Page 1efinition. a. 7a#egar a la 1atabase ;ome Page. b. .lic) en el (cono Application Builder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parece la definici'n de pgina. I. En Regions clic) CA# junto al nombre de la regi'n. 0parecer la pgina de atributos del calendario. G. En la lista /as)s clic) en Convert to /2# Based calendar . .on#irtiendo un Easy .alendar a un +4$ .alendar agrega una secci'n Region +ource a la Region 1efinition. $a Region +ource contiene la consulta +4$ original que crea el calendario. 0l tener acceso a la Region +ource se puede editar la consulta para cubrir las necesidades requeridas. Editin* a Calendar Title El t(tulo que aparece al tope del calendario corresponde a la re*ion title. Para modificar la region title3 <. 7a#egar a la Page 1efinition. -57-

Application Express User's Guide

Building an Application

=. En Regions seleccionar el nombre de la regi'n. 0parece la definici'n de la regi'n. >. En Region ingresar un nue#o titulo. ?. .lic) en 0pply .hanges. Editin* Calendar Attributes 6na #ez que se ha creado el calendario se puede modificar su apariencia editando sus atributos. /emas3

0ccessing the .alendar 0ttributes Page .alendar 1isplay .alendar Inter#al .olumn $in) 1ay $in)

Accessin* t0e Calendar Attributes Pa*e Para acceder a la pgina de atributos del calendario3 <. 7a#egar a la Page 1efinition correspondiente3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en 0pp. 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parece la definici'n de pgina. I. En Regions clic) en CA# a continuaci'n del nombre de la regi'n. 0parecer la pgina de atributos de calendario. $os temas que siguen se describen en las secciones espec(ficas de la pgina .alendar 0ttributes. Calendar Displa( 6tilice calendar display para especificar un template para las columnas y el formato general del calendario. Calendar Templeate determina que template se utilizar cuando el motor de 0pp. E*press le#ante un calendario. Date Column define la columna de la tabla ' consulta que contiene las fechas que sern ubicadas en el calendario. Displa( Column define una fila espec(fica que displaya sobre un calendario. Para seleccionar otra 1isplay .olumn3 <. 7a#egar a lo correspondiente pgina de atributos del calendario. =. $ocalizar la secci'n .alendar 1isplay. >. Para especificar otra display column seleccionar la columna que corresponda desde la lista de 1isplay .olumn. ?. .lic) en 0pply .hanges. Para especificar una 1isplay .olumn personalizada3 <. 7a#egar a la correspondiente pgina de atributos del calendario. =. $ocalizar la secci'n .alendar 1isplay. G. En 1isplay /ype seleccionar Custom. ?. En .olumn Qormat ingresar el formato de columna personalizado. +e puede usar una e*presi'n ;/8$ y los strings de sustituci'n soportados por la aplicaci'n. -58-

Application Express User's Guide

Building an Application

L. .lic) en 0pply .hanges. %er tambi-n3 Q/upported Calendar /ubstitution /trin*sQ Calendar ,nterval 6tilice .alendar Inter#al para definir las fechas que son incluidas en el calendario. Be*in At /tart B ,nterval determina el momento en que el calendario debe comenzar. +eleccionando esta opci'n crea un calendario que abarca un inter#alo completo !tal como un mes". Por ejemplo3 +i en Be*in at start o interval se selecciona la fecha <L de junio y el display es mensual el calendario resultante abarca desde el < al >C de junio. +i en Be*in at start o interval no se selecciona la fecha <L de junio y el display es mensual el calendario resultante abarca desde el <L al >C de junio. Date ,tem contiene la fecha sobre la cual se basa el calendario. $os dos atributos siguientes define que items contienen el start date y el end date del calendario. +e pueden usar estos atributos para crear calendarios que abarcan mBltiples meses. ,tem Containin* /tart Date apunta a un item que contiene la fecha de inicio del calendario. ,tem Containin* End Date apunta a un item que contiene la fecha de fin del calendario. 7otar que el formato de la fecha debe ser ((((mmdd. /tart o VeeS determina el d(a de la semana en el cual el calendario comienza. Column #inS +e utiliza para crear una columna de enlace en el calendario. Para crear una columna de enlace a otra pgina3 <. 7a#egar a la correspondiente pgina de atributos del calendario. =. 5ajar hasta .olumn $in). G. En /arget is a seleccionar Pa*e in t0is Application. H. En Page especificar el I1 de la pgina destino. Para resetear la paginaci'n de esta pgina seleccionar reset pa*ination or t0is pa*e. L. En Request especificar la respuesta que se utilizar. M. En .lear .ache especificar las pginas !es decir los I1 de las mismas" sobre las cuales se limpia la cache. Para especificar #arias pginas utilizar una lista de I1 separados por comas. +e puede setear el #alor en la sesi'n ! es decir dar una lista de #alores " utilizando los dos atributos siguientes3 el +et !grupo" de atributos y el Eith los #alores de estos atributos. N. Para establecer el estado de la sesi'n3 a. +et these items U Ingresar una lista delimitada por comas de los nombres de los items para los cuales se debe establecer el estado en la sesi'n. b. Eith these #alues U Ingresar una lista delimitada por comas de los #alores de los items especificados en a. +e puede especificar #alores estticos ' la sinta*is de sustituci'n !por ejemplo K0PPDI/E8D708E.". 7otar que el item del #alor pasado a 3p: en la 6R$ no puede contener ! : ". Por consiguiente los #alores de los items no pueden contener comas al menos que est-n entre barras inclinadas !bac)slashes" por ejemplo3 Z9IGH.DFZ ". O. .lic) en 0pply .hanges. %er tambien3 Q/upported Calendar /ubstitution /trin*sQ -59-

Application Express User's Guide

Building an Application

Para crear un enlace de columna a una 6R$3 <. 7a#egar a la correspondiente pgina de atributos de calendario. =. 5ajar a .olumn $in). G. En /arget is a seleccionar U7#. ?. En 6R$ ingrese la direcci'n que corresponda. L. .lic) en 0pply .hanges. Da( #inS 6tilice 1ay $in) para crear un lin) sobre un d(a del calendario. Este atributo crea un lin) sobre el d(a actual sobre el calendario. Para crear un day lin) a otra pgina3 <. 7a#egar a la correspondiente pgina de atributos del calendario. =. 5ajar a 1ay $in). G. En /arget is a seleccionar Pa*e in t0is Application. H. En Page especificar el I1 de la pgina destino. Para resetear la paginaci'n de dicha pgina seleccionar reset pa*ination or t0is pa*e. L. En Request especificar la respuesta que se usar. F. En .lear .ache especificar las pginas !es decir los I1" en las cuales limpiar la cache. !+e especifica como una lista de I1 separados por comas". +e puede establecer los #alores para la sesi'n utilizando los atributos /et t0ese items y Vit0 t0ese values. N. Para establecer los #alores de la sesi'n3 a. +et these items U Ingresar una lista de nombres de items separados por comas sobre los cuales establecer los #alores para la sesi'n. b. Eith these #alues U Ingresar una lista de #alores separados por comas para los items indicados en a. /ener en cuenta que los #alores no pueden comas al menos que est-n entre bac)slashes !por ejemplo3 P<=>? LMP. O. .lic) en 0pply .hanges. Para crear un day lin) a una url3 <. 7a#egar a la correspondiente pgina de atributos del calendario. =. 5ajar a 1ay $in). G. En /arget is a seleccionar url. ?. En url ingresar la direcci'n 6R$ que corresponda. L. .lic) en 0pply .hanges.

-60-

Application Express User's Guide

Building an Application

Creatin* C0arts $ Creaci%n de Gr icos &. El generador de aplicaciones 0pplication 5uilder incluye wizards para generar ;/8$ y grficos +%9 !+calable %ector 9raphics". Oracle 0pplication E*press soporta dos tipos de grficos3 !T"# /4G +%9 es un lenguaje basado en 28$ para grficos Eeb de la E>. !Eorld Eide Eeb .onsortium. $os grficos +%9 se definen utilizando etiquetas ;tml. .uando se e#alue si los grficos +%9 son apropiados para determinada aplicaci'n t-ngase en cuenta que3 0lgunos browser no soportan grficos +%9. $a mayor(a de los browser que soportan +%9 requieren realizar download del plug&in correspondiente. /emas3

0bout +%9 Plug&in +upport 0bout .reating .harts .reating a 7ew .hart Editing .hart 0ttributes 6nderstanding .hart .ascading +tyle +heet .lasses Referencing a .ustom .ascading +tyle +heet +pecifying .ustom .++ +tyles Inline Enabling 0synchronous 6pdates 1isplaying .harts in Other $anguages

About /4G Plu*Lin /upport El plug&in +%9 de 0dobe puede gestionar datos codificados en 6/Q&O 6/Q&<M I+O&OOLV&< y 6+&0+.II. $a codificaci'n de un grfico +%9 se determina por el 101 !database access descriptor" del conjunto de caracteres de la base de datos. +i el conjunto de caracteres del 101 no es 6/QO 0$>=6/QO 0$<M6/Q<M EEOI+OOOLVP< o 6+N0+.II los grficos +%9 no pueden ser interpretados por el plug&in de 0dobe +%9. About Creatin* C0arts En el 0pplication 5uilder un grfico se define mediante un wizard. En la mayor(a de los wizards grficos se selecciona un tipo de grfico y se pro#ee una consulta +4$ usando la sinta*is siguiente3 SELECT &!"3A &a0'&A 9a&8' FROM ... 1onde3 linS es una 6R$ label es el te*to que se displaya en la barra. -61-

Application Express User's Guide

Building an Application

4alue es la columna num-rica que define el tamaRo de la barra.

Por ejemplo3 SELECT "8&&A '"a4'A sa& FROM sc/$$.'45 WHERE '5$"/ ? :P=C=_DEPTNO Para crear un grfico dial !dial chart" seleccionar un tipo de grfico dial y escribir la consulta necesaria usando la siguiente sinta*is3 SELECT 9a&8' A 4a;!484_9a&8' D A&/:_9a&8' D A(!#(_9a&8'E E FROM ... 1onde3 4alue es el punto de comienzo del grfico dial. "aximum<value es el punto ms alto posible del grfico dial. #o8<value ( 0i*0<value son los #alores hist'ricos mas alto y bajo. Por ejemplo3
SELECT 04s_7a" /4.9a&8'(FCCA =.CC)A =GCCA FROM DUAL 04s_7a" /4.9a&8'(=CCA .CC)

Table: Available C0art T(pes Esta tabla describe los tipos de grficos disponibles en el generador de aplicaciones 0pplication 5uilder. Plu* Tipo de *r ico Lin 5ar !;/8$" ) ) ) Descripci%n

) ) )

9rfico de barras que muestra una serie de datos representando cada punto con una barra. 5ar ;orizontal 9rfico de barras simple basado en series orientado horizontalmente con cada punto de la serie representado por una barra. 5ar %ertical 9rfico de barras simple basado en series orientado #erticalmente con cada punto de la serie representado por una barra. .luster 5ar 9rfico de barra mBltiple basado en series orientado ;orizontal horizontalmente y di#idido por una #ariable comBn con cada punto de la serie representado por una barra. !Por ejemplo /otal de #entas por departamento di#idido por meses del aRo". .luster 5ar 9rfico de barra mBltiple basado en series orientado %ertical #erticalmente y di#idido por una #ariable comBn con cada punto de la serie representado por una barra. !Por ejemplo /otal de #entas por departamento di#idido por meses del aRo". 1ial U +weep /ambi-n conocido como indicador angular3 este grfico muestra el porcentaje del #alor m*imo yAo el #alor absoluto comparado al #alor m*imo representado como un rea s'lida. 1ial /ambi-n conocido como indicador angular3 este grfico muestra el porcentaje del #alor m*imo yAo el #alor absoluto comparado al #alor m*imo representado como una l(nea. $ine 9rfico de l(neas mBltiples basado en series con cada l(nea representando todos los puntos de la serie -62-

Application Express User's Guide

Building an Application

) ) )

Pie +tac)ed ;orizontal

+tac)ed %ertical ) +tac)ed Idem +tac)ed 5ar ;orizontal pero cada punto es un porcentaje Percentage 5ar del <CCW de la serie representada. ;orizontal ) +tac)ed Idem +tac)ed 5ar %ertical pero cada punto es un porcentaje del Percentage 5ar <CCW de la serie representada. %ertical X 5asado en +%9. !Requiere plug&in". 5asado en ;/8$ !7o requiere plug&in". ?ota: 7o cambie el tipo de grfico de un grfico e*istente. En #ez de ello borre el grfico e*istente y crear nue#amente con el tipo adecuado. Creatin* a ?e8 C0art $a creaci'n de grficos depende de si estamos agregando un grfico a una pgina e*istente ' si estamos agregando un grfico a una nue#a pgina. Addin* a C0art to an Existin* Pa*e Para agregar un grfico a una pgina e*istente3 <. 7a#egar a la Page 1efinition. I. En Regions clic) en el icono Create. 0parece el wizard de .reate Region. G. +eleccionar C0art H. +eleccionar el tipo de grfico. %er tabla3 Table: Available C0art T(pes. L. .ontinuar con las instrucciones dadas en pantalla. %er tambi-n3 QAbout Creatin* C0artsQ Addin* a C0art to a ?e8 Pa*e Para crear un grfico sobre una nue#a pgina3 <. En la 1atabase ;ome Page clic) en 0pp. 5uilder. =. +eleccionar una aplicaci'n. G. .lic) en Create Pa*e. H. +eleccionar C0art. D. +eleccionar el tipo de grfico. %-ase 3 Table: Available C0art T(pes. M. .ontinuar con las instrucciones de pantalla. %-ase tambi-n3 QAbout Creatin* C0artsQ Editin* C0art Attributes 6na #ez creado el grfico se puede modificar la forma de mostrarlo editando sus atributos en la pgina de atributos del grfico. Para acceder a la pgina de atributos del grfico3 <. 7a#egar a la Page 1efinition. a. 7a#egar a la 1atabase ;ome Page. b. .lic) en 0pp. 5uilder. c. +eleccionar una aplicaci'n. -63-

9rfico de torta simple basado en series con cada lonja representando un punto de la serie. 5ar 9rfico de barra mBltiple basado en series orientado horizontalmente donde cada punto en #alor absoluto representa un segmento de una sola barra. 5ar Idem +tac)ed 5ar ;orizontal pero en direcci'n #ertical

Application Express User's Guide

Building an Application

d. +eleccionar una pgina. 0parece la definici'n de la pgina. =. En Regions clic) en .hart luego del nombre de grfico que se quiere editar. 0parece la pgina de atributos grficos. 7ote que remo#iendo un titulo del grfico !es decir el atributo .hart /itle podr(a impactar negati#amente en la ubicaci'n y display de la forma en que se muestra el grfico. Understandin* C0art Cascadin* /t(le /0eet Classes .uando se crea un nue#o grfico Oracle 0pplication E*press lo interpreta basndose en la clase .ascading +tyle +heet !.++" asociada con el conte*to actual. .ascading +tyle +heet es una hoja ;/8$ con diferentes estilos que pueden ser cambiados entre si permitiendo mayor fle*ibilidad. +e puede cambiar la apariencia de un grfico si se referencia a otro .++ ' si se re&escribe una clase en la secci'n .++ de la pgina Edit 0ttributes. El siguiente ejemplo contiene las clases .++ para el grfico tipo dial en Sample Application Este ejemplo contiene todas las clases .++ disponibles. $os nombres de clases aparecen en negritas. (e2(H1/"$I1a4!&%:V'7 a"aA G'"'9aA A7!a&A H'&9'$!caA sa"sI s'7!1B1!&&:)CCCCCCBJ (&panH1/"$I1a4!&%:V'7 a"aA G'"'9aA A7!a&A H'&9'$!caA sa"sI s'7!1B1!&&:)CCCCCCBJ (e2(3(i(leH1/"$I:'!#($:0/& B1/"$Is!<':=KB1!&&:)CCCCCCBJ (e2(3m$4e'a(a6$Cn'H1/"$Is!<':=.BJ 4e5(3leAen'H1!&&:)EEEEEEBs$7/3':)CCCCCCBs$7/3'I:! $(:=BJ (e2(3leAen'H1/"$Is!<':=CBJ O%a5kA4$Cn'H1!&&:)FFFFFFBs$7/3':"/"'BJ 4e5(350a4(0$l'e4%a5kA4$Cn'H1!&&:)111111Bs$7/3':)CCCCCCBs$7/3'I :! $(:=BJ O(ime&(ampH$';$Ia"c(/7:s$a7$B1/"$Is!<':LBJ (e2(3(i5Hs$7/3':"/"'B1!&&:)CCCCCCB1/"$Is!<':=.J line3(i5Hs$7/3':)CCCCCCBs$7/3'I:! $(:=5;B1!&&:"/"'BJ O'ialHs$7/3':)GGMMLLBs$7/3'I:! $(:.5;B1!&&:)GGMMLLB1!&&I/5ac!$%:.FBJ O'ial3ale4(H1!&&:)FFCCCCB1!&&I/5ac!$%:.FBJ O'ial%a5kA4$Cn'Hs$7/3':)CCCCCCBs$7/3'I :! $(:"/"'B1!&&:"/"'B1!&$'7:87&()M%F!&$'7)BJ O'ial5en(e4Hs$7/3':"/"'B1!&&:)======B1!&$'7:87&()M%F!&$'7)BJ O'ial%a5kA4$Cn'P%$4'e4Hs$7/3':)DDDDDDBs$7/3'I :! $(:.5;B1!&&:"/"'B1!&$'7:87& ()M%F!&$'7)BJ)&/:Hs$7/3'I:! $(:GBs$7/3':)GGMMLLBJ O0iA0Hs$7/3'I:! $(:GBs$7/3':)FFCCCCBJ OMA2i&Ti(leH&'$$'7Is5ac!"#:.B3'7"!"#:a8$/B1/"$I s!<':=KB1!&&:)CCCCCCB$';$Ia"c(/7:4! &'BJ ONA2i&Ti(leH&'$$'7Is5ac!"#:.B3'7"!"#:a8$/B1/"$I s!<':=KB1!&&:)CCCCCCB$';$Ia"c(/7:4! &'B:7!$!"#I4/ ':$0BJ 3MA2i&,alCeH1/"$Is!<':NB1!&&:)CCCCCCBJ 3NA2i&,alCeH1/"$Is!<':NB1!&&:)CCCCCCB$';$Ia"c(/7:'" BJ 3n$'a(a6$Cn'Hs$7/3':)CCCCCCBs$7/3'I:! $(:=B1/"$Is!<':=.BJ 3A2i&LineHs$7/3':)CCCCCCBs$7/3'I:! $(:.B1!&&:)FFFFFFBJ .!4i'LineHs$7/3':)CCCCCCBs$7/3'I:! $(:C.GBs$7/3'I as(a77a%:.AKB1!&&:"/"'BJ A3'a(a0$l'e4 4e5(Hs$7/3':)CCCCCCBs$7/3'I:! $(:C.FBJ 3leAen'i(em 4e5(Hs$7/3':)CCCCCCBs$7/3'I:! $(:C.FBJ -64-

Application Express User's Guide

Building an Application

Table: Available C0art C// Classes Esta tabla describe todas las clases .++ soportadas. 7otar que ciertas clases solo se aplican a tipos de grficos espec(ficos.
Class $';$ $s5a" Description 1efines the appearance of te*t that displays in a chart. 1efines the appearance of te*t that displays in a chart. tspan should match the definition of te*t. O#errides the default chart te*t. 6se this class for title te*t.

$';$.$!$&'

$';$.4/7' a$a 1efines the appearance of more datafound te*t. 1/8" .reates the rectangular bo* that holds the chart legend. 7'c$.&'#'" /o a remo#e the legend border change rect.legend to the following3 rect.legendYfill3S....VVZstro)e3noneZ[

$';$.&'#'" )0ac3#7/8"

1efines the te*t that appears in the chart legend. .reates the entire bac)ground for the +%9 plug&in. Qor a solid white bac)ground with no border change Sbac)ground to the following3 Sbac)groundYfill3SQQQQQQZstro)e3SQQQQQQZstro)e&width3=Z[

7ot applicable to pie and dial charts. .reates the bac)ground of the rectangle that 7'c$.c(a7$(/& holds the chart data. '70ac3#7/8" Qor a clear bac)ground change rect.chartholderbac)ground to the following3 rect.chartholderbac)ground!display3noneZ" Only applicable if the 0synchronous 6pdate chart attribute is set to Ges. .ontrols the appearance of the update timestamp test. /o disable the display of the timestamp use defines Stimestamp as follows in the .ustom .++ Inline attribute. @StimestampYdisplay3noneZ[@ 4er tambi-n: @Enabling 0synchronous 6pdates@ $';$.$!c 1ial charts only. 1efines the numbers on a dial chart.

)$!4's$a45

-65-

Application Express User's Guide

Building an Application

Class &!"'.$!c

Description 1ial charts only. 1efines the graduation mar) that displays directly beneath the number on a dial chart. 1ial charts only. 1efines the #alue that displays on the dial chart. 1ial charts only. 1efines a #alue !called an alert #alue" that renders on in a dial chart using a different display.

) !a& ) !a&.a&'7$

) !a&0ac3#7/8 1ial charts only. .reates the bac)ground of a dial chart. " ) !a&c'"$'7 1ial charts only. .reates the center of the dial on a dial chart.

) !a&0ac3#7/8 1ial charts only. Eor)s in conjunction with Sdialbac)ground to create specific " I0/7 '7 graphic effect. )&/: 1ial charts only. 1efines a historical low watermar) of the data being displayed on a chart. 1ial charts only. 1efines historical high watermar) of the data being displayed on a chart. 1efines the title that appears on the *&a*is 1efines the title that appears on the y&a*is. 1efines the #alue that appears on the *&a*is. 1efines the #alue that appears on the y&a*is. +imilar to the a*is #alue. 1efines the te*t element that displays if no information is a#ailable. Indicates zero on charts that ha#e negati#e #alues. .reates the horizontal and #ertical lines on the chart. 0pplies a blan)et style to all data that displays in the chart.

)(!#(

)+A;!sT!$&' )-A;!sT!$&' .+A;!sVa&8' .-A;!sVa&8' .A;!sLa0'& ."/ a$a1/8" .A;!sL!"' .9rid$ine #. a$a(/& '7 7'c$ .&'#'" !$'4

0pplies a blan)et style to all rectangular items in the legend.

-66-

Application Express User's Guide

Building an Application

Class 7'c$

Description

7e erencin* a Custom Cascadin* /t(le /0eet +e puede referenciar un .ascading +tyle +heet castomizado para un grfico utilizando la secci'n .++ de la pgina .hart 0ttributes. .uando se referencia un .++ e*terno se lo referencia completamente ' simplemente se sobreescribe el estilo espec(fico. Para referenciar un grfico .++ castomizado3 9. +ubir la .++ al 0pplication 5uilder. %ease3 QUploadin* Cascadin* /t(le /0eetsQ. I. .rear un grfico. %-ase3 QCreatin* a ?e8 C0artQ. >. 7a#egar a la Page 1efinition3 H. En Regions clic) en C0art luego del nombre de la regi'n. 0parece la pgina de .hart 0ttributes. L. 5ajar hasta la secci'n .++. F. En 6se .ustom .++ seleccionar @es. N. Para referenciar un .++ e*terno e*clusi#amente3 a. E" C8s$/4 CSSA L!"3A !"#7'sa7 8" &!"3 a 8" CSS cas$/4!<a /. P/7 '2'45&/: )IMAGE_PREFI+)$('4'sO$('4'_KOs9#.css 0. Es5'c!1!ca7 68' '& CSS '0'7Pa s'7 8sa / ';c&8s!9a4'"$'. E" C8s$/4 CSSAI"&!"' !"#7'sa7 &/ s!#8!'"$': OQQO. O. Para referenciar un .++ castomizado y re&escribir un estilo espec(fico3 a. E" C8s$/4 CSSAL!"3A !"#7'sa7 8" &!"3 a 8"a (/2a ' 's$!&/ cas$/4!<a a. P/7 '2'45&/: )IMAGE_PREFI+)$('4'sO$('4'_KOs9#.css 0. E" C8s$/4 CSSAI"&!"'A !"#7'sa7 '& 's$!&/ CSS cas$/4!<a / 68' s' 's'a s/07'I'sc7!0!7.

/peci (in* Custom C// /t(les ,nline +e pueden sobre&escribir estilos espec(ficos dentro del .++ dado por default utilizando las .++ castomizadas atributo Inline sobre las pgina de atributos de grficos. Para sobre&escribir un estilo espec(fico dentro del default .++3 =. .rear un grafico. %ease3 @.reating a 7ew .hart@. =. 7a#egar a la Page 1efinition. >. En Regions clic) en C0art luego del nombre de la regi'n. 0parece la pgina de .hart 0ttributes. ?. 5ajar hasta .++. L. En 6se .ustom .++ seleccionar @es. M. En .ustom .++ Inline ingresar el estilo .++ que se desea sobre&escribir para castomizarlo. Enablin* As(nc0ronous Udates +e pueden crear grficos que monitorean informaci'n estableciendo el atributo 0synchronous 6pdate !de actualizaci'n asincr'nica" en la pgina de atributos del grfico -67-

Application Express User's Guide

Building an Application

!.hart attributes page". 0l establecer este atributo actualiza el grfico para reflejar los cambios dados en los datos subyacentes a inter#alos de tiempos predefinidos. Para habilitar la actualizaci'n asincr'nica3 =. .rear un grfico. +ee .reating a 7ew .hart. =. 7a#egar a la Page 1efinition. 0parece la Page 1efinition. >. En Regions clic) C0art luego del nombre de la regi'n. 0parece la pgina de atributos del grfico. ?. 5ajar a Refresh. L. En 0synchronous 6pdate seleccionar @es. M. En 6pdate Inter#al !+econds" ingresar el inter#alo e*presado en segundos entre actualizaci'n. Para una 'ptima performance seleccionar un inter#alo que sea mayor a los = segundos. .uando se habilita la actualizaci'n asincr'nica se displaya un timestamp sobre el grfico indicando la Bltima actualizaci'n. Para deshabilitar el timestamp que aparece cada #ez que se actualiza3 <. 7a#egar a la pgina .hart 0ttributes. =. $ocalizar la secci'n .++. >. En 6se .ustom .++ seleccionar @es ?. En .ustom .++ Inline editar Ntimestamp como sigue3 Ntimestamp$displa(:noneU& Displa(in* C0arts in Bt0er #an*ua*es Para mostrar un grfico en otro lenguaje editar las clases text y tspan para reflejar el lenguaje correcto. Para mostrar un grfico en otro lenguaje3 =. 7a#egar a la pgina .hart 0ttributes.%-ase3@Editing .hart 0ttributes@. =. 5ajar al .++. >. En 6se .ustom .++ seleccionar @es. ?. En .ustom .++ Inline editar las clases text y tspan para reflejar el correcto lenguaje. El siguiente ejemplo muestra como cambiar un grfico a lenguaje .oreano3 text[ ontL amil(:Batan*U ill:N;;;;;;U\ tspan[ ontL amil(:Batan*U ill:N;;;;;;U\

-68-

Application Express User's Guide

Building an Application

Creatin* Buttons 0l diseRar las aplicaciones se pueden usar 5uttons para que los usuarios na#eguen a una pgina espec(fica ' a determinada 6R$ ' al correo ' a procesar informaci'n !por ejemplo para crear botones .reate .ancel 7e*t Pre#ious ' 1elete". $os 5uttons pueden ejecutar dos tipos diferentes de acciones. 6n 5uttone puede submitir una pgina y luego na#egar a una 6R$. O bien un 5utton puede bifurcar a una 6R$ sin submitir la pgina. /emas3

.reating a 5utton 6sing a Eizard .reating 8ultiple 5uttons 6nderstanding the Relationship 5etween 5utton 7ames and RE46E+/ 0bout 5ranching with 5uttons 1isplaying 5uttons .onditionally

Creatin* a Button Usin* a Vi+ard +e puede crear un bot'n utilizando el Eizard .reate 5utton de la Page 1efinition. .ada 5utton reside en una regi'n. 6na regi'n es un rea sobre una pgina que sir#e de contenedor. Para crear un nue#o bot'n3 <. 7a#egar a la correspondiente Page 1efinition. 2. +i es necesario crear una regi'n ;/8$. %er3 @.ustomizing Regions@. >. En 5uttons clic) en el icono Create. 0parece el wizard .reate 5utton. ?. +eleccione la regi'n que contendr al bot'n. L. +elecciona una posici'n para el bot'n3 a. Crear un bot%n mostrandolo entre los items de la re*i%n. b. Crear un bot%n en una posici%n espec] ica de la re*i%n. +eleccione !a" para agregar un bot'n a una regi'n como si fuera un item !por ejemplo para agregar un bot'n directamente a la derecha de los campos". M. +i se selecciona !b. Crear un bot%n en una posici%n espec] ica de la re*i%n. " 3 a. Especificar la etiqueta y el nombre del bot'n. b. +eleccionar el tipo de bot'n3 HTML Button (Default), Image, or Template Driven. +eleccionar Button is 7eset para crear un bot'n Undo. .uando habilita este tipo de bot'n resetea la pginas a #alores nulos al estado que ellos estaban cuando la pgina fue inicialmente interpretada. c. +eleccionar una 0cci'n. 1. +eleccionar /ubmit pa*e and redirect to U7# lo cual submite la pgina actual al motor del 0pplication E*press cada #ez que el usuario hace clic) en el bot'n. =. +eleccionar 7edirect to U7# 8it0out submitin* pa*e e#ita submitir la pgina. Elija esta acci'n cuando no sea necesario submitir la pgina para procesarla !por ejemplo un bot'n .ancel". Esta acci'n e#ita procesamiento en la base de datos y reduce la carga. 7. +i se selecciona Create a button displayed among this region s items a. Especificar un nombre de bot'n y una secuencia. -69-

Application Express User's Guide

Building an Application

b. Especificar si el bot'n mostr'n se muestra al comienzo de una nue#a linea ' nue#o campo. c. Especificar una etiqueta. d. Ingresar el #alor de la petici'n !#alue of Request". e. +eleccionar el estilo del bot'n. O. .ontinuar con las instrucciones de la pantalla. %er tambi-n3@6nderstanding the Relationship 5etween 5utton 7ames and RE46E+/@ Creatin* an !T"# Button $os botones pueden ubicarse en una posici'n del template de la regi'n predefinida ' entre los items del form. Para crear un bot'n ;/8$ seleccione uno de los siguientes3 6nder /as) crea un bot'n en una posici'n de la regi'n. 6nder 5utton /ype selecciona un tipo de bot'n y luego crea un bot'n ;/8$ !es la opci'n por default". Creatin* "ultiple Buttons +e pueden crear botones mBltiples dentro de una misma region en un solo paso utilizando el wizard .reate 8ultiple 5uttones. Para crear #arios botones de una sola #ez3 7a#egar a la correspondiente Page 1efinition. +i es necesario crear la ;/8$ region. %er3 @.ustomizing Regions@. En 5uttons clic) en el (cono Create. 0parece el wizard .reate 5utton. +eleccionar Create "ultiple Buttons al final de la pgina. 0parece el wizard correspondiente. En Place 5uttons in Region seleccionar la regi'n que contendr los botones. En /emplate seleccionar uno. En ;/8$ 0ttributes especificar los atributos ;/8$ para estos botones. Estos te*tos sern agregados a la definici'n ;/8$. Por ejemplo se pude indicar que la clase de un te*t button como3 class:6m(class6 Para completar rapidamente el resto de los campos hacer una selecci'n desde la lista 4uic) 5utton a la derecha de la pgina. .lic) en Create Buttons. Understandin* t0e 7elations0ip Bet8een Button ?ames and 7E2UE/T El nombre que se da a un bot'n determina el #alor del atributo RE46E+/ del bot'n. +e puede referenciar el #alor de RE46E+/ desde un P$A+4$ usando la #ariable bind 3RE46E+/. 0l usar esta #ariable bind se puede condicionar procesos #alidar ' bifurcar basado sobre que bot'n el usuario hizo clic)s. +e pueden crear procesos que se ejecuten cuand el usuario hace clic) en un bot'n. +e puede tambi-n usar una condici'n mas compleja como se muestra en los siguientes ejemplos3 I1 :RE*UEST !" ('EDIT'A'DELETE') $('" ... I1 :RE*UEST R? 'DELETE' $('" ... Estos ejemplos asumen la e*istencia de los botones E1I/ y 1E$E/E. +e puede usar tambi-n esta sinta*is en condiciones plAsql. /ener cuidado con los nombres de los botones pues se preser#an las mayBsculas. +i un bot'n se denomina $O9I7 y luego un request buscan por $ogin no lo encontrar. Por Ejemplo3 Pinput t(pe:QBUTTB?Q value:QMinis0Q onClicS:Q'avascript:do/ubmit$'Minis0'&UQR -70-

Application Express User's Guide

Building an Application

7otar que en este ejemplo )inish es el nombre del RE46E+/ y este ejemplo es case& sensiti#e. About Branc0in* 8it0 Buttons .ada pgina puede incluir #arias bifurcaciones. 6na bifurcaci'n na#ega a otra pgina ' una 6R$. El motor del 0pplication E*press considera supone que bifurcara en algBn momento durante el proceso de la pgina. +e puede elegir bifurcar antes de procesar antes de calcular antes de #alidar y despBes de procesar. 0l igual que cualquier otro control en 0pplication 5uilder la bifurcaci'n puede ser condicional. Por ejemplo se puede bifurcar cuando un usuario hace clic) a un bot'n. .uando se crea una bifurcaci'n se puede asociar con un bot'n espec(fico. $a bifurcaci'n solo ser considerada si el usuario hace clic) en el bot'n. %er tambi-n3 @.ontrolling 7a#igation 6sing 5ranches@ Displa(in* Buttons Conditionall( +e puede elegir tener condicionado el display de un bot'n editando los atributos en la pgina Edit Pages 5utton. Para condicionar el display de un bot'n3 1. .rear el bot'n. @.reating a 5utton 6sing a Eizard@. =. 7a#egar a la correspondiente Page 1efinition. >. En 5uttons seleccionar el nombre del bot'n. 0parece la pgina de atributos del bot'n. ?. 5ajar hasta la opci'n .onditional 5utton 1isplay. L. +eleccionar en la lista .ondition /ype una condici'n. M. Ingresar una e*presi'n en los campos propuestos. N. .lic) en 0pply .hanges. %er3 @0bout 5ind %ariables@

-71-

Application Express User's Guide

Building an Application

Creatin* ,tems 6n item es una parte de un formulario ;/8$. 6n item puede ser un campo de te*to un rea de te*to una password una lista de selecci'n una che*) bo* etc-tera. $os atributos de los items afectan la forma en que se displaya el item sobre la pgina. Por ejemplo dichos atributos pueden impactar sobre como se mostrarn las etiquetas como de largo ser el item y si ellos sern mostrados a continuaci'n ' debajo del item pre#io. ;ay dos tipos de items3 page items y application items. $os page items son ubicados sobre la pgina y tienen asociados propiedades de la interfase de usuario tales como 1isplay 0s $abel y $abel /emplate. $os application items no estn asociados con una pgina y adems no tienen propiedades de lla interfase de usuario. +e puede utilizar un application items como una #ariable global. /emas3

.reating a Page&$e#el Item Referencing Item %alues Editing Page Item 0ttributes 1isplaying .onditional or Read&Only Page Items Eor)ing with a 8ultiple +elect $ist Item .reating an 0pplication&$e#el Item Populating an 0lternati#e 1ate Pic)er Qormat

%er3 @;ow Item 0ttributes 0ffect Page $ayout@ y @6sing +ubstitution +trings@ Creatin* a Pa*eL#evel ,tem +e puede crear un item a ni#el de pgina ejecutando el wizard .reate Item desde la Page 1efinition. Para crear un nue#o item a ni#el de pgina3 <. 7a#egar a la correspondiente Page 1efinition. .. +i es necesesario crear una regi'n ;/8$. %er3 @.ustomizing Regions@. >. En Items clic) en el (cono Create. K. +eleccionar un tipo de item. %er3@0bout Item /ypes@. L. +eguir las instrucciones del wizard. About ,tem ?amin* Conventions .uando se especif(ca un nombre de item recordar las siguientes reglas. $os items deben3 7o pueden tener comillas. .omenzar con una letra ' un nBmero y los caracteres siguientes pueden ser3 letras nBmeros y el carcter de subrayado. +on case&insensiti#e. 7o deben e*ceder los treinta caracteres. $as letras deben pertenecer al conjunto de caracteres 0+.II. About ,tem T(pes -72-

Application Express User's Guide

Building an Application

.uando se crea un item se especifica el tipo del item. 6na #ez que se crea un item aparece sobre la pgina Edit Page Item una lista 1isplay 0s. Para #er los tipos de items acceder a la tabla3 /able3 0#ailable Item /ypes Tipos de ,tems Disponibles Tipo ,tem Descripci%n .hec) 8uestra una lista de #alores para seleccionar. +e necesita una lista de #alores bo* para mostrar los chec) bo*es. El #alor correspondiente a un chec) bo* seleccionado es retornado en un solo string delimitado por dos puntos. El siguiente ejemplo muestra como crear un simple chec) bo* que retorna @E/. Este ejemplo muestra ambos un chec) bo* y una etiqueta de campo. /E#ECT ?U## displa(<text. C@E/A return<value M7B" DUA#U Este ejemplo incluye el te*to clic$ to select. /elect CclicS to selectA displa(<text. C@E/A return<value rom dualU 1ate Pic)er %er tambi-n3 @;/8$15D6/I$@ 8uestra un campo de te*to con un (cono de calendario. .uando se selecciona este icono displaya un pequeRo calendario desde el cual se puede seleccionar la fecha y opcionalmente la hora. +i el formato que necesita no est incluido en la lista H1isplay 0sI seleccionar Date PicSer !para seleccionar la mscara". .uando se utiliza un formato de mscara la aplicaci'n busca el formato en un item denominado PIC,_DATE_FORMAT_MAS,. N/$a7 68' 's "'c'sa7!/ c/45&'$a7 's$' !$'4 a"$'s ' 8sa7&/ a 's$' !$'4 5a7a $7a0a2a7. V'7: @Populating an 0lternati#e 1ate Pic)er Qormat@ 1isplay as /e*t incluye los siguientes subtipos3 Displa( as Text $based on #B4. does not save state&. 8uestra el #alor desde una $O% haciendo corresponder los #alores con el #alor retornado por la $O% pero no guarda el estado en la sesi'n. Displa( as Text $based on #B4 . saves state& . Idem pero tambi-n genera un item que se submite con la pgina para pasar el #alor retornado en el estado de sesi'n. Displa( as Text $based on P#=/2#. does not save state& . 8uestra la salida de un bloque P$A+4$ sin guardarlo en la sesi'n. Displa( as Text $does not save state& . 8uestra el #alor del item sobre la pgina sin crear in item en el formulario. Displa( as Text $escape special c0aracters. does not save state& . 8uestra el #alor del item con caracteres especiales ('>'A'@'A'&') Displa( as Text $saves state&. 8uestra los #ores de los items y crea un item en el formulario el cual se submite con la pgina para pasar el #alor al estado de sesi'n. 8uestra un campo de te*to con un bot'n 5rowse. Esto permite al usuario localizar un archi#o sobre el sistema local de archi#os y subirlo. Oracle 0pplication E*press pro#ee una tabla para estos archi#os que son subidos como as( tambi-n las 0PI para recuperar !abrir" los archi#os. %-ase3 @6nderstanding the +ecurity Ris)s of Qile 6pload /ables@ .rear un elemento de formulario !;/8$" oculto. +e le puede asignar un estado de sesi'n y ser referenciado como un campo de te*to. -73-

1isplay 0s /e*t

Qile 5rowse

;idden

Application Express User's Guide

Building an Application

$ist +e basa en una lista de #alores. Este item permite gestionar una lista de items 8anagers mediante selecci'n y adici'n a la lista. $a lista de #alores se muestra como una popup. 8ultiple +e crea un elemento multiselect ;/8$ en el form. .uando se submite los +elect #alores seleccionados son retornados en un string delimitado. +e puede procesar el string mediante la 0PI ;/8$15D6/I$ %er tambi-n3 @Eor)ing with a 8ultiple +elect $ist Item@ % @;/8$15D6/I$@ Password .rea un elemento ;/8$ password en el form. Popup .rea un campo de te*to con un (cono. .uando el usuario cliquea en el (cono $ist of aparece una #entana popup con una lista de #alores mostrando una serie de %alues lin)s. .uando el usuario hace una selecci'n desde la lista el #alor seleccionado ser ubicado en el campo de te*to. El control de la $O% popup se hace a tra#-s del template. +e puede solo especificar una $O% popup template por cada aplicaci'n. 6tilizando una $O% popup es una buena prctica para listas de #alores que son muy grandes para retornarlas sobre una sola pgina. ;ay dos tipos de $O% Popup3 6no que procesa un conjunto de filas cuando la #entana se abre y otro que no. $a $O% Popup debe estar basada sobre una consulta que selecciona dos columnas con diferentes alias. Por ejemplo3 SELECT '"a4' "a4'A '45"/ ! FROM '45 +i una de las columnas es una e*presi'n hay que utilizar un alias. Por ej3 SELECT '"a4'SS' 'SS2/0 !s5&a%_9a&8'A '45"/ FROM '45 Radio .rea un elemento radio group en el form basado en una lista de #alores. Elija 7adio*roup 8it0 /ubmit para que sea submitida la pgina cuando se seleccione una opci'n en el radio button. El siguiente ejemplo muestra los nombres de los empleados pero retorna el nro de empleado3 SELECT '"a4'A '45"/ FROM '45 +elect 8uestra una lista de #alores. +e requiere una lista de #alores para los items que $ist sean listas de selecci'n. $as listas de selecci'n son creadas usando elementos ;/8$ >s'&'c$@ en el form. $os #alores en una lista de selecci'n son determinados utilizando un nombre de $O% ' definiendo una $O% a ni#el de item. +e puede especificar el #alor 76$$ y que retorne el #alor 76$$. El siguiente ejemplo retorna los nombres de los empleados !ename" y los nBmeros de los empleados !empno" desde la tabla emp. 7otar que los alias de las columnas no son requeridos pero se incluyen para claridad. SELECT '"a4' !s5&a%_$';$A '45"/ 7'$87"_9a&8' FROM '45

Oracle 0pplication E*press pro#ee mejoras adicionales que en las listas de seleccion ;/8$ standard3 /elect #ist 8it0 /ubmit U +ubmite la pgina cuando el usuario cambia el #alor seleccionado en la lista. En submite el RE46E+/ ser el nombre del item que representar a la lista para permitir utilizarlos en los procesos !calculos condiciones #alidaciones y bifurcaciones". /elect #ist 8it0 7edirect U Redirige al usuario #ol#er a la misma pgina colocando O7$G al #alor seleccionado en la lista. /elect #ist 7eturnin* U7# 7edirect U +e basa en una lista de #alores -74-

Application Express User's Guide

Building an Application

con urls como #alores de retorno. 0l cambiar el #alor de la lista causa que el browser se dirija a la correspondiente 6R$ seleccionada. /elect #ist 8it0 Branc0 to Pa*e U +e basa en una lista de #alores con Ids de pginas. 0l seleccionar un #alor de la lista el motor del 0pplication E*press se dirige a la pgina seleccionada. 7ota3 +i la lista de selecci'n es muy larga puede causar un error. +i se espera una larga lista es preferible utilizar una Popup $ist de #alores ! en lugar de la select list". +top and +e fuerza el cierre de una tabla ;/8$ al utilizar el tag P=tableR y crea una nue#a +tart tabla ;/8$. +e puede usar este tipo de item para resetear el ancho de una /able columna en la mitad de una regi'n. 7otar que un item +top y +tart /able solo muestra su etiqueta. +e puede impedir que muestre la etiqueta si se setea la etiqueta a null. Eso se logra remo#iendo el label que propone el wizard. /e*t +e muestra como un campo de te*to ;/8$ que puede contener hasta >C.CCC bytes de te*t. +e puede controlar el ancho y alto editando los atributos ;eight y Eidth del item. $as opciones disponibles de items /e*t son3 Text Mield U +e muestra como un campo de te*to. Text Mield $Disabled. does not save state& U 8uestra una #ersi'n de solo lectura de una lista de #alores utilizando los #alores de la sesi'n para buscar el #alor asociado. El #alor mostrado en pantalla no es guardado al submitir la pgina. Text Mield $Disabled. saves state& U 8uestra una #ersi'n de solo lectura de una lista de #alores utilizando los #alores de la sesi'n para buscar el #alor asociado. Text Mield $al8a(s submits pa*e 80en Enter pressed& U 8uestra una #ersi'n de solo lecutra. 0l submitir sal#a el #alor mostrado en pantalla en el estado de sesion. Text Mield 8it0 Calculator Popup U +e muestra como un campo de te*to junto con un (cono. .uando cliquea el (cono muestra una pequeRa #entana mostrando una calculadora. $os clculos son dejados en el item. /e*t 0rea 8uestra un rea de te*to ;/8$. 7o hay longitud m*ima para un item mostrado en un /e*t 0rea. +e controla el ancho y el largo editando los atributos height y width. $a opci'n 1isplay 0s incluye3

Text Area $auto 0ei*0t& U 0justa el ancho de acuerdo a la cantidad de te*to. +e utiliza cuando se necesita una /e*t 0rea de grandes dimensiones pero no hay lugar en el form ' si no hay datos para mostrar. Text Area 8it0 Counter U 8uestra un contador que indica la cantidad de bytes ingresados al campo. Text Area 8it0 /pell C0ecSer U Pro#ee un popup corrector ortogrfico !idioma ingl-s". Text Area 8it0 !T"# Editor U Pro#ee controles de formato de te*to bsicos. 7otar que estos controles podrian no trabajar con todos los web browsers.

7e erencin* ,tem 4alues -75-

Application Express User's Guide

Building an Application

+e pueden referenciar #alores de items en una regi'n del estado de sesi'n clculos #alidaci'nes y bifurcaciones. +e puede consultar la sinta*is soportada para referenciar los #alores de los items en +ynta* for Referencing Item %alues %er3@8anaging +ession +tate %alues@ +ynta* for Referencing Item %alues T(pe +4$ Description +inta*is standard para #ariables internas !el nombre no debe :M-_ITEM pasar los >C bytes". +e utiliza en consultas +4$ y en c'digo P$A+4$. P$A+4$ +inta*is P$A+4$ para referenciar el #alor de un item utilizando V('M-_ITEM') la funci'n 4$ &. %er3@Oracle 0pplication E*press 0PIs@ NV('M-_ P$A+4$ +inta*is P$A+4$ para referenciar el #alor de un item num-rico utilizando la funci'n ?4$ &. NUMERIC_ITEM') %er3 @Oracle 0pplication E*press 0PIs@ &M-_ITEM +tatic /e*to esttico. /e*t +tatic /e*t !e*act" &M-_ITEM /e*to e*ttico. +ustituci'n e*acta. /(ntax

+e puede cambiar el #alor de un item utilizando cualquiera de los siguientes m-todos3 Para los items de la pgina utilice el atributo /ource para indicar el #alor de dicho item. En la Page 1efinition seleccionar el nombre del item para #er la pgina Edit Pa*e ,tem. 5ajar con el scroll hasta /ource y editar el campo. /amb(en se puede cambiar el #alor de un item en cualquier regi'n ' procedimiento P$A+4$ utilizando la siguiente sinta*is3 BE!IN MN_ITEM ) KneQ RalCeL/ END/ Pasar el #alor de una referencia 6R$ usando la sinta*is 3p. Por ejemplo3 1T5?=CC:=C=:=CMGMFKU.MNU.NGNCL=L::NO::M-_ITEM:ABC Establecer el #alor a tra#-s de un clculo. $os clculos estn destinados a cambiar el #alor de los items. Por ejemplo3 TO_CHAR(S-SDATEA'Da% DD M/"$(A ----')B +e puede usar las P$A+4$ 0PI para cambiar el #alor de un item dentro del c'digo P$A+4$3 HTMLDB_UTIL.SET_SESSION_STATE('M-_ITEM'AS-SDATE)B

V'7: @.learing +ession +tate@ @Oracle 0pplication E*press 0PIs@ y @0bout .ross&+ite +cripting Protection@ Editin* Pa*e ,tem Attributes 6na #ez que se crea un item se puede editar sus atributos en la pgina Edit Pa*e ,tem. -76-

Application Express User's Guide

Building an Application

<. 7a#egar a la correspondiente Page 1efinition a. 7a#egar a la 1atabase ;ome Page. b. .lic) en el (cono 0pplication 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. 0parece la Page 1efinition =. En Items seleccionar el nombre del (tem. 0parece la pgina de atributos de dicho item. >. Editar el item correspondiente. Para #er informaci'n acerca de un atributo espec(fico seleccionar el item ;elp. ?. .lic) en 0pply .hanges. %er3 @0bout .ross&+ite +cripting Protection@ Displa(in* Conditional or 7eadLBnl( Pa*e ,tems +e puede elegir que un item se displaye condicionalmente ' bien sea solo lectura editando sus atributos. <. .rear el item. =. 7a#egar a la correspondiente Page 1efinition. >. En Items seleccionar el item que interesa. 0parece la pgina de atributos del item. ?. Para displayar condicionalmente un item3 a. 5ajar con el scroll hasta .onditions. b. +eleccionar el tipo de condici'n desde la lista .ondition /ype. c. Ingresar las e*presiones que correspondan para condicionar. L. Para hacer un item de solo lectura3 a. 5ajar con el scroll hasta Read Only 1isplay +ettings b. +eleccionar desde la lista Read Only .ondition /ype. c. Ingresar las e*presiones que correspondan para condicionar. M. .lic) en 0plicar .ambios. VorSin* 8it0 a "ultiple /elect #ist ,tem 6n item multiple select se muestra como una lista de multiples elementos select. .uando se submite los #alores seleccionados son retornados en un solo string separados por dos puntos. +e pueden manejar los #alores dados en este formato de dos formas3 6sando la funci'n ,?/T7 6sando la funci'n !T"#DB<UT,#./T7,?G<TB<TAB#E Usin* !T"#DB<UT,#./T7,?G<TB<TAB#E to Convert /electd 4alues +upongase que se tiene un reporte sobre las tablas emp y dept que estn acotadas a los departamentos seleccionados desde un lista de departamentos !multiple select" a tal fin se crea el item !multiple select" P<D1EP/7O utilizando la siguiente consulta3 /E#ECT dname. deptno M7B" dept En segundo lugar se retornan solo aquellos empleados que pertenecen a los departamentos seleccionados asi3 SELECT ename" #$%" &al" 5$mm" 'name FROM emp e" 'ep( ' WHERE '3'ep(n$ ) e3'ep(n$ AND in&(4*' '|| P._DEPTNO||' '"' '||e3'ep(n$||' '+ I ; -77-

Application Express User's Guide

Building an Application

$uego se desea pasar los #alores seleccionados en el item !multiple select" a una tabla P<D1EP/7O. Para lograr esto se debe con#ertir la cadena de strings delimitados por dos puntos en una matriz P$A+4$ utilizando la funci'n HTMLDB_UTIL.STRING_TO_TABLE. El siguiente ejemplo muestra como insertar los departamentos seleccionados en una tabla de auditoria conteniendo la fecha de la consulta.
DECLARE l_&ele5(e' HTMLDB_APPLICATION_!LOBAL3,C_ARR</ BE!IN PP PP C$nRie4(e Cna 5a'ena 'e &(4inA&"'elimi(a'$& p$4 '$& pCn($&" en Cna PP ma(4iS PL1SJL l_&ele5(e' ) HTMLDB_-TIL3STRIN!_TO_TABLE* P._DEPTNO+/

PP PP L$$p &$%4e la ma(4iS pa4a in&e4(a4 l$& nTme4$& 'e 'epa4(amen($& PP D la 6e50a 'el &i&(ema *&D&'a(e+3 PP FOR i IN .33l_&ele5(e'35$Cn( LOOP INSERT INTO 4ep$4(_aC'i(_(a%le *4ep$4(_'a(e" &ele5(e'_'epa4(men(+ ,AL-ES *&D&'a(e" l_&ele5(e'*i++/ END LOOP/ END/

%er3 @+/RI79D/OD/05$E Qunction@ Creatin* an ApplicationL#evel ,tem $os items a ni#el de aplicaci'n no se displayan pero son usados como #ariables globales de la aplicaci'n. Para crear un nue#o item a ni#el de aplicaci'n3 <. 7a#egar a la 1atabase ;ome Page. =. .lic) en el (cono 0pplication 5uilder. >. +eleccionar una aplicaci'n. ?. .uando aparece 0pplication 5uilder clic) en /0ared Components. L. En #o*ic seleccionar ,tems. 0parece la pgina de 0pplication Items. M. Para crear un nue#o item clic) en Create. N. .ontinuar con las indicaciones de pantalla. About t0e Application ,tems Pa*e 6na #ez que se tiene creado un item a ni#el de aplicaci'n este aparecer en la pgina de items a ni#el de aplicaci'n. +e puede controlar como se muestra la pgina de items !a ni#el de aplicaci'n" seleccionando una opci'n desde la lista 4ie8. $as opciones disponibles son3 ,cons !el default" muestra cada item de aplicaci'n como un gran (cono. Para editar un item basta con cliquear el (cono correspondiente. Details muestra cada item de aplicaci'n como un linea en un reporte. Para editar el item basta con cliquear sobre el nombre del mismo !en la linea". -78-

Application Express User's Guide

Building an Application

Accessin* Application ,tem !istor( +e puede #er la historia de los cambios de los items a ni#el de aplicaci'n con un clic) en !istor( al tope de la pgina de items a ni#el de aplicaci'n. Populatin* an Alternative Date PicSer Mormat +i se necesita crear un item Date PicSer pero el formato que necesitas no aparece en la lista Displa( As. seleccionar Date PicSer $use application ormat masS&. .uando la aplicaci'n usa este tipo de fecha !1ate Pic)er" el motor del 0pplication E*press deri#a el formato de la fecha desde un item denominado PIC,_DATE_FORMAT_MAS,. +e puede definir !cambiar el #alor" este item de dos formas3 0l definir un string de sustituci'n llamado3 PIC,_DATE_FORMAT_MAS, 0l crear un item a ni#el de aplicaci'n llamado3 PIC,_DATE_FORMAT_MAS, De inin* P,CW<DATE<MB7"AT<"A/W as an Application /ubstitution /trin* 6n m-todo para definir el PIC,_DATE_FORMAT_MAS, es crear un string de sustituci'n. $os strings de sustituci'n a ni#el de aplicaci'n se definen en la pgina de Edit Application Attribuites. /ener en cuenta que un string de sustituci'n a ni#el de aplicaci'n es un #alor esttico y no puede ser alterado en tiempo de ejecuci'n. Para definir un string de sustituci'n !a ni#el de aplicaci'n" PIC,_DATE_FORMAT_MAS, 3 <. En la pgina 1atabase ;ome Page clic) en 0pplication 5uilder. =. +eleccionar una aplicaci'n. 0parece el 0pplication 5uilder. >. .lic) en el (cono Edit 0ttributes. ?. .lic) en Edit /tandard Attributes. L. 5ajar con scroll hasta +tatic +ubstitution +trings. M. .rear un nue#o string de sustituci'n esttico PIC,_DATE_FORMAT_MAS, 3 a. En +ubstitution +tring ingresar HPIC,_DATE_FORMAT_MAS,I. 0. En +ubstitution %alue ingresar un #alor !ej. M/"$( DDA ----". De inin* an ApplicationL#evel ,tem ?amed P,CW<DATE<MB7"AT<"A/W Otro m-todo para indicar el #alor de PIC,_DATE_FORMAT_MAS, es crear un item a ni#el de aplicaci'n denominado PIC,_DATE_FORMAT_MAS,. Esto forma permite tener el control del formato de fecha de la aplicaci'n en tiempo de ejecuci'n de cualquier item mostrado como PIC,_DATE_FORMAT_MAS, al setear simplemente el #alor de la mscara. 0dems se puede setear el #alor de PIC,_DATE_FORMAT_MAS, a tra#-s de clculos en cualquier lugar dentro de la aplicaci'n. +i se desea pro#er al usuario una lista de formatos de fechas como preferencias de la aplicaci'n se necesitar crear un item a ni#el de aplicaci'n denominado PIC,_DATE_FORMAT_MAS, y luego utilizar programaci'n para setear el #alor de este item basado en la selecci'n del usuario. %er3 @.reating an 0pplication&$e#el Item@

-79-

Application Express User's Guide

Building an Application

Creatin* #ists o 4alues 6na lista de #alores !$O%" es conjunto de #alores estticos ' dinmicos utilizados para mostrar un item de pgina espec(fico tal como una lista popup de #alores una select list una chec) bo* un radio group ' lista multiple select. /emas3

.reating 7amed $O%s at the 0pplication $e#el 0bout +tatic $O%s Editing an E*isting $O% Referencing +ession +tate Eithin a $O% Referencing a 7ull %alue in an Item 5ased on a $O% 0ccessing $O% Reports

%er tambi-n3 @.reating Items@ Creatin* ?amed #B4s at t0e Application #evel +e definen $O%s a ni#el de aplicaci'n mediante la ejecuci'n del wizard Create #B4 y agregandolas a la lista de #alores del repositorio. /odas las $O%s pueden ser definidas como estticas ' dinmicas. $as listas estticas estn basadas sobre pares predefinidos de #alores a mostrar y retornar. $as listas dinmicas estn basadas sobre consultas +4$ sobre una tabla. Para crear una $O%3 <. En la 1atabase ;ome Page clic) en 0pplication 5uilder. =. +eleccionar una aplicaci'n. 0parece la home page de la aplicaci'n. >. .lic) en el (cono /0ared Components. ?. En 6ser Interface seleccionar #ists o 4alues. L. Para crear una nue#a $O% clic) en .reate. M. +eguir las instrucciones de la pantalla. $as nue#as $O%s son agregadas al repositorio de $ist of %alues. About t0e #ist o 4alues Pa*e 6na #ez que se creo la $O% aparece sobre la pgina de $ist of %alues. +e controla la forma en que se muestra la pgina mediante una selecci'n desde la lista %iew. $as opciones disponibles son3 ,cons !el default" muestra cada $O% como un gran (cono. Para editar la $O% clic) sobre el (cono correspondiente. Details muestra cada $O% como una l(nea de reporte. Para editar un $O% clic) sobre el nombre de la misma. About /tatic #B4s $as $O%s estticas se basan sobre una lista esttica de #alores a mostrar y retornar que se especifican cuando se crea la misma con el wizard. Para crear una $O% esttica se ejecuta el wizard .reate $O% y se selecciona /tatic en $O% type. Oracle 0pplication E*press -80-

Application Express User's Guide

Building an Application

guarda los #alores a mostrar los #alores a retornar y la secuencia de ordenaci'n que se especifica en el repositorio de listas de #alores. 6na #ez que se agreg' la $O% esttica al repositorio se puede crear un item y displayar esta $O% como un chec) bo* un radio group una select list ' una popup list. Editin* an Existin* #B4 Para editar una $O% e*istente seleccionar la $O% en la pgina de $ist of %alues. <. En la 1atabase ;ome Page clic) en el (cono 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. .lic) en /0ared Componentes. ?. En 6ser Interface seleccionar #ists o 4alues L. +eleccionar una $O%. 0parece la pgina de edici'n de la $O%. M. Editar los atributos apropiados y clic) en 0pply .hanges. BulS Edit o /tatic #B4s +e pueden editar los #alores a mostrar de todas las $O%s estticas al cliquear en el bot'n 9rid Edit sobre la pgina Edit $ist of %alues. Para ejecutar una edici'n de todas las $O%s estticas3 <. En la 1atabase ;ome Page clic) en 0pp.5uilder. =. +eleccionar una aplicaci'n. >. .lic) en /0ared Components. ?. En 6ser Interface seleccionar #ists o 4alues. Por default las $O%s se muestran como (conos. L. .ambiar el display por default. +eleccionar Details desde la lista %iew y clic) en Go. M. Elegir +tatic $O% y seleccionar el nombre de la $O%. N. .lic) en el bot'n Grid Edit ubicado debajo de +ubscription. O. Editar los correspondientes #alores a displayar y clic) en 0pply .hanges. 7e erencin* /ession /tate Vit0in a #B4 +e puede referenciar el estado de sesi'n al utilizar #ariables bind. En el siguiente ejemplo la $O% solo trabaja si el item my%deptno contiene un nBmero de departamento #ldio3 SELECT '"a4'A '45"/ FROM '45 WHERE '5$"/ ? :4%_ '5$"/

7e erencin* a ?ull 4alue in an ,tem Based on a #B4 $as $O%s tienen la opci'n de mostral el #alor null y la opci'n de retornar el #alor null. El #alor null a mostrar es el #alor que el usuario #- en la lista y le indica que no ha seleccionado un #alor apropiado !non&null" desde la lista. .uando un usuario selecciona un #alor null ' empty !#ac(o" el #alor que se transmite no es un string #acio ' un Oracle null sino un literal %nCll%. $a aplicaci'n debe estar preparada para procesar este literal y tratar esta selecci'n como #alor null. ;ay que tener en cuenta este comportamiento cuando se escribe el c'digo para procesar los #alores submitidos. Por ejemplo sea una e#aluaci'n al submitir el item P9<O y se necesita usar la e*presi'n P$A+4$ 4epla5e* P._M"'%'||'nCll%'"nCll+para preparar el item para guardar permanentemente en estado de sesi'n o para pasar a una 18$ ' a otra 0PIs.

-81-

Application Express User's Guide

Building an Application

Para e#itar problemas tener en cuenta la forma apropiada de codificar V"8&&V en e*presiones que ocurren en los clculos procesos y #alidaciones en la pgina. +e debe separar el string %nCll% asi la aplicaci'n no replaza por un #alor null en la pgina cuando este es sal#ado. .onsidere el siguiente ejemplo3 '%'||'nCll%' Accessin* #B4 7eports El 0pplication 5uilder incluye #arios reportes ya diseRados para ayudar manejar mejor las $O%s. Para acceder a los $O% reports3 <. En la 1atabase ;ome Page clic) en el (cono Application Builder. =. +eleccionar una aplicaci'n. >. .uando aparece 0pp.5uilder clic) en /0ared Components. ?. En 6ser Interface seleccionar #ists o 4alues. L. +eleccionar una de los siguientes tabs al tope de la pgina3 /earc0 /ubscription Utili+ation !istor( M. .ontinuar con las instrucciones dadas en pantalla. /earc0 .lic) /earc0 para mostrar la pgina de +earch 1ynamic $ists of %alues. 6tilizar esta pgina para buscar las consultas que soportan a las $O%s dinmicas. Ingrese una consulta en el campo uery .ontains y clic) en Go. /ubscription .lic) en /ubscription para mostrar la pgina de $ist of %alues +ubscription. Esta pgina muestra todas las $O%s de la aplicaci'n. Utili+ation .lic) en Utili+ation para mostar la pgina $ist of %alues 6tilization. Esta pgina muestra las $O%s utilizadas en la actual aplicaci'n. Para editar una $O% clic) sobre el nombre de la misma. !istor( .lic) en !istor( para mostrar la pgina $ist of %alues ;istory. Esta pgina muestra la history reciente de los cambios de la $O%s por fecha.

-82-

Application Express User's Guide

Building an Application

Usin* /0ortcuts 6tilizando shortcuts se puede e#itar repetir c'dificar funciones ;/8$ ' P$A+4$. +e pueden usar shortcut para definir una pgina de control un bot'n un te*to ;/8$ un procedimiento P$A+4$ ' ;/8$. 6na #ez definido se puede in#ocar un shortcut usando la sinta*is espec(fica para localizarlo. +hortcuts pueden ser referenciados muchas #eces adems reducen redundancia de c'digo. /emas3

0bout +hortcut /ypes 1efining +hortcuts 0ccessing +hortcut Reports

About /0ortcut T(pes 0ttp:==9IJ.;.;.9:K;K;=i=doc=bldapp<cut<about.0tmNCEGBDBAE .uando se crea un nue#o shortcut se debe especificar el tipo de shortcut que se desea crear. Oracle 0pplication E*press soporta los siguientes tipos de shortcut3

P$A+4$ Qunction 5ody ;/8$ /e*t ;/8$ /e*t with Escaped +pecial .haracters Image /e*t with ,a#a+cript Escaped +ingle 4uotes 8essage 8essage with ,a#a+cript Escaped +pecial 4uotes

Text 8it0 Xava/cript Escaped /in*le 2uotes 6se este tipo de shortcut para referenciar un shortcut dentro de un string literal de ,a#a+critp. Este shortcut define un string de te*to. .uando el shortcut es referenciado este e#ita las comillas simples requereidas para ,a#a+cript. "essa*e 6se este tipo de shortcut para referenciar un mensaje traducible en tiempo de ejecuci'n. 7otese entonces que este shortcut no tiene body por lo que el nombre del mismo debe coincidir con el nombre del correspondiente mensaje. En tiempo de ejecuci'n el nombre del shortcut se e*pande al te*to del mensaje traducido al lenguaje actual. "essa*e 8it0 Xava/cript Escaped /in*le 2uotes 6se este tipo de shortcut para referenciar un shortcut dentro de un string literal de ,a#a+cript y referenciar un mensaje traducible en tiempo de ejecuci'n. %er3 @0bout /ranslating an 0pplication and 9lobalization +upport@ De inin* /0ortcuts -83-

Application Express User's Guide

Building an Application

0ntes que se pueda incorporar un shortcut en la aplicaci'n se debe definirlo y agregarlo al repositorio de +hortcuts. $os nue#os shortcuts se referencian utilizando la siguiente sinta*is3 HMN_SHORTC-TH 7ote que el nombre del shortcut debe ser capitalizado y encerrado entre comillas. Para definir un nue#o shortcut3 <. En la 1atabase ;ome Page clic) en 0pp.5uilder. =. +eleccionar una aplicaci'n. >. .uando aparece el 0pplication 5uilder clic) en +hared .omponents. ?. En 6ser Interface seleccionar +hortcuts. L. .lic) en .reate. M. +eleccionar uno de los siguientes m-todos de creaci'n3 a. Mrom /cratc0 b. As a Cop( o an Existin* /0ortcut N. .ontinuar con las instrucciones de pantalla. $os nue#os shortcuts son agregados al repositorio y estn disponibles para usarlos en3 El atributo Region +ource de regiones definidas como ;/8$ /e*t !con shortcuts". %er3 @.ustomizing Regions@. En los te*tos de los atributos ;eader y Qooter de una Regi'n. %er3 @+pecifying a Region ;eader and Qooter@.. En los atributos $abel y 1efault %alue de un item. %er3 @Items@. En el atributo /emplates de una Regi'n. %er3 @Editing /emplates@.. About t0e /0ortcuts Pa*e 6na #ez que se creo un shortcut este aparecer en la pgina de +hortcuts. +e controla la #ista de la pgina haciendo clic) en la lista %iew. $as opciones disponibles son3 Icons !el default" muestra cada shortcut como un gran (cono. 1etails muestra cada uno como una linea de reporte. Accessin* /0ortcut 7eports El 0pplication 5uilder incluye #arios reportes diseRados para ayudar a una mejor gesti'n de las $O%s. Para acceder a los +hortcut Reports3 <. En la 1atabase ;ome Page clic) en el (cono 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. .uando aparezca 0pplication 5uilder clic) en /0ared Componentes. ?. En 6ser Interface seleccionar /0ortcuts. L. .lic) en uno de los siguientes botones3 a. /ubscription b. !istor( 7ota3 $os botones +ubscription y ;istory solo aparecen despu-s de que se crea el shortcut. /ubscribed /0ortcuts .lic) en +ubscription para mostrar la pgina de +ubscribed +hortcuts. Esta pgina muestra todos los shortcuts !subscirbed" de la aplicaci'n. /0ortcut !istor( -84-

Application Express User's Guide

Building an Application

.lic) en ;istory para mostrar la pgina de +hortcut ;istory. Esta pgina muestra la historia reciente de los cambios de shortcuts por fecha.

-85-

Application Express User's Guide

Building an Application

,ncorporatin* Xava/cript into an Application 6na buena forma de agregar caracter(sticas que imitan los atributos de las aplicaciones clientAser#er es incorporando ,a#a+cript a las aplicaciones Eeb sin sacrificar los beneficios de los desarrollos Eeb. Oracle 0pplication E*press incorpora mBltiples interfaces integradas y especialmente diseRadas para incorporar ,a#a+cript. /ener en cuenta que ,a#a+cript no es apropiado para #alidaciones intensi#as de datos. Por ejemplo para #erificar que el nombre est contenido dentro de una tabla grande de base de datos ya que se deber(a crear un enorme documento ;/8$ con los registros de los clientes. En general las operaciones complejas de #alidaci'n se ubican mejor del lado de las #alidaciones del ser#idor 0pplication E*press en #ez de hacerlo con ,a#a+cript. /emas3

Referencing Items 6sing ,a#a+cript Incorporating ,a#a+cript Qunctions .alling ,a#a+cript from a 5utton

%er3 @6nderstanding %alidations@ 7e erencin* ,tems Usin* Xava/cript .uando se referencia un item la mejor forma es hacerlo por el ,D. +i se obser#a el fuente ;/8$ de una pgina del Oracle 0pplication E*press en un Eeb browser se notar que todos los items tienen un atributo id. Este id corresponde al nombre del item no a la etiqueta del item. Por ejemplo si se crea un item con el nombre P=_FIRST_NAME y una etiqueta F!7s$ Na4' el id ser P<DQIR+/D708E. .onocer el I1 del item permite al desarrollador utilizar el m-todo #'$E&'4'"$B%I () para obtener y para setear los #alores y atributos del item. El siguiente ejemplo muestra como referenciar un item mediante su I1 y mostrar su #alor en un mensaje de alerta !alert bo*". Pscript lan*ua*e:QXava/cript9.9Q t(pe:Qtext='avascriptQR unction irst?ame$&[ alert$'Mirst ?ame is ' ^ document.*etElementB(,d$'P9<M,7/T<?A"E'&.value &U \ == or a more *eneric version 8ould be unction displa(4alue$id&[ alert$'T0e 4alue is ' ^ document.*etElementB(,d$id&.value &U \ P=scriptR == T0en add t0e ollo8in* to t0e QMorm Element AttributesQ Attribute o t0e item: onc0an*e:Qdispla(4alue$'P9<M,7/T<?A"E'&UQ ,ncorporatin* Xava/cript Munctions ;ay dos lugares para incluir funciones ,a#a+cript3 En el atributo ;eader de la pgina ;/8$. En un archi#o .'s en el template de la pgina. -86-

Application Express User's Guide

Building an Application

%er para mayor informaci'n acerca de c'mo referenciar un shortcut dentro de un string literal de ,a#a+cript en @/e*t with ,a#a+cript Escaped +ingle 4uotes@ ,ncorporatin* Xava/cript in t0e !T"# !eader Attribute 6na forma de incluir ,a#a+cript dentro de la aplicaci'n es agregandolo en el atributo ;eader de la pgina ;/8$. Esta es una buena forma para funciones que son muy espec(ficas de una pgina asi como tambi-n una con#eniente forma de testear una funci'n antes de incluirla en un archi#o .'s. +e puede agregar funciones ,a#a+cript a una pgina simplemente mediante el ingreso de c'digo en el atributo ;/8$ ;eader de la Page 0ttributes de la pgina en cuesti'n. Por ejemplo agregar la funci'n test para que est- accesible desde cualquier lugar de la pgina. Para agregar c'digo ,a#a+cript en el atributo ;/8$ ;eader3 <. En la 1atabase ;ome Page clic) en el (cono 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. +eleccionar una pgina. ?. .lic) en Edit Attributes L. 5ajar hasta el atributo ;/8$ ;eader. M. Ingresar el c'digo y clic) en 0pply .hanges. Por ejemplo agregando lo que sigue testea que una funci'n este accesible desde cualquier lugar de la actual pgina. G&54ip( (Dpe)H(e2(1#aRa&54ip(HI 6Cn5(i$n (e&(*+U Qin'$Q3ale4(*'T0i& i& a (e&(3'+/ V G1&54ip(I %er tambi-n3 @;/8$ ;eader@ ,ncludin* Xava/cript in a .'s Mile 7e erenced b( t0e Pa*e Template. En Oracle 0pplication E*press se puede referenciar a un archi#o .'s en el template de la pgina. 1e esta forma todo el c'digo ,a#a+cript del .'s queda accesible a la aplicaci'n. Esta no es la forma ms eficiente dado que un .'s se carga en la primer pgina que se #- de la aplicaci'n y luego queda cacheado por el browser. El siguiente c'digo muestra como incluir un .'s en la secci'n del header del page template. 7otar la linea &54ip( &45) que aparece en negrita.
\]1O./GPE ;/8$ P65$I. @&AAE>.AA1/1 ;/8$ ?.C< /ransitionalAAE7@^ \;/8$^ \head^ \title^S/I/$ES\Atitle^ S;E01S Pscript src:Q0ttp:==m(server.m(port=m(<ima*es=custom.'sQ t(pe:Qtext='avascriptQRP=scriptR \Ahead^ \body SO7$O01S^SQOR8DOPE7S

%er tambien3 @Page /emplates@ -87-

Application Express User's Guide

Building an Application

Callin* Xava/cript rom a Button $lamar a un ,a#a+cript desde un bot'n es una buena forma de confirmar una pantalla. Oracle 0pplication E*press usa esta t-cnica para la operaci'n de delete de la mayor parte de los objetos. Por ejemplo cuando se deletea un bot'n un mensaje ,a#a+cript aparece consultando al operador para que confirme la acci'n. .onsiderese el siguiente ejemplo3 >sc7!5$ $%5'?W$';$O2a9asc7!5$W@ 18"c$!/" '&'$'C/"1!74(4s#) H 9a7 c/"1D'& ? 4s#B !1(c/"1D'& ??"8&&) c/"1D'&? c/"1!74(WW/8& %/8 &!3' $/ 5'71/74 $(!s '&s' c/"1D'&? c/"1!74(4s#)B !1 (c/"1D'&?? $78') /S804!$('D'&'$'')B J >Osc7!5$@ Este ejemplo crea una funci'n para confirmar una acci'n de borrar y luego in#oca a la funci'n desde un bot'n. 7ote que la funci'n opcionalmente submite la pgina y setea el #alor de la #ariable interna :7E2UE/T a Delete adems ejecuta el delete usando un proceso que condiciona la ejecuci'n #asado en el #alor de la respuesta. 7'tese que cuando se crea un bot'n se necesita seleccionar Action 7edirect to U7# 8it0out submittin* pa*e. $uego se especifica una 6R$ destino tal como la siguiente3 c/"1!74D'&'$'('W/8& %/8 &!3' $/ 5'71/74 $(!s '&'$' ac$!/"T')B

'&'$' ac$!/"TW)B

%er tambi-n3 @.reating a 5utton 6sing a Eizard@ Creatin* Dependent /elect #ists +e puede usar una Hselect listI !lista de selecci'n" para determinar el rango de #alores de otra Hselect listI de la misma pgina. +e puede lograr esta funcionalidad por medio de una Hselect listI que controle los #alores submitidos a la siguiente Hselect listI. +e incorporan estos #alores en la siguiente Hselect listI como una #ariable bind en la clausula E;ERE de la consulta. +e tiene una $O% que controla a otra $O%3 .rear un form bsico. 1efinir dos listas de #alores. 7otar que la $O% controladora debe submitir la pgina despu-s de que se elige un #alor. 1efinir un bifurcaci'n que retorne a la pgina actual .onsid-rese el siguiente ejemplo. $a primera $O% permite al usuario elegir una pais !' estado nacional" SELECT s$a$'_"a4' FROM s$a$'s A s$a$'_! 9 -88-

Application Express User's Guide

Building an Application

$a segunda $O% selecciona el nombre de una pro#incia y el I1 !de la pro#incia" desde una lista condicionada por el id del pais seleccionado en la primera $O%. SELECT c/8"$%_"a4' A c/8"$%_! FROM c/8"$!'s WHERE s$a$'_! ? :P;_STATE_ID %er tambi-n3

@.reating Qorms@ @.reating $ists of %alues@ @.ontrolling 7a#igation 6sing 5ranches@

Creatin* a !elp Pa*e El generador de aplicaciones incluye atributos predefinidos para crear el H0yudaI de la aplicaci'n. .rear la H0yudaI de la aplicaci'n consiste sencillamente en los siguientes pasos3 .rear una pgina de ayuda espec(fica y una reg(on de ayuda. 1efinir el te*to de la pgina de ayuda. 1efinir el te*to del item de ayuda. .rear un (cono en la barra de na#egaci'n para enlazarlo con la pgina de ayuda. $as ayudas creadas en 0pplication 5uilder se muestran sobre una pgina de ayuda espec(fica. Para acceder a la ayuda los usuarios hacen clic) en un enlace que los conduce a la pgina de ayuda espec(fica. Esta pgina de ayuda muestra una pgina e items de ayuda con t'picos espec(focos de la pgina que se est #iendo. /emas3

.reating a ;elp Page and Region !.rear una regi'n y pgina de ayuda" 1efining ;elp /e*t !1efinir el te*to de la ayuda" .reating a ;elp 7a#igation 5ar Entry !.rear un (cono de ayuda en la barra "

Creatin* a !elp Pa*e and 7e*ion El primer paso en la creaci'n de la ayuda de una aplicaci'n es crear una pgina especial y una regi'n de te*to de ayuda. Para crear una nue#a regi'n de te*to de ayuda3 =. .rear una nue#a pgina para la ayuda. %er @0dding Pages to an 0pplication@. .. 7a#egar a la Page 1efinition de la pgina creada. %er @0ccessing a Page 1efinition@. >. 5ajar a Regions seleccionar el (cono Create ?. .uando aparezca para seleccionar el tipo de regi'n seleccionar !elp Text L. +eguir las instrucciones de la pantalla. De inin* !elp Text http3AA<=N.C.C.<3OCOCAiAdocAbldappDhlpDte*t.htm +e define el te*to de ayuda para la pgina ' un solo item mediante la edici'n de sus atributos. Idealmente se deber(a definir estos atributos cuando se crea la aplicaci'n. +in -89-

Application Express User's Guide

Building an Application

embargo por simplicidad el siguiente procedimiento describe como definir este te*to despues de que se ha creado la aplicaci'n. Para definir una pgina de ayuda3 <. 7a#egar a la Page 1efinition de la pgina a la que se le desea agregar una pagina de ayuda. =. .lic en Edit Attributes para #er la pgina de atributos e*istentes. >. 5ajar hasta Pa*e !elp Text. ?. Ingresar el te*to de ayuda en el campo que se muestra. L. .lic en Appl( C0an*es. Repetir el procedimiento pre#io para cada pgina que se requiere te*to de ayuda. Para definir el te*to de ayuda de un item de una pgina3 <. 7a#egar a la Page 1efinition de la pgina a la cual se desea agregar ayuda a un item. =. En ,tems clic) en el nombre del item que se desea editar. >. 5ajar hasta !elp Text. ?. Ingresar el te*to de ayuda en el campo pro#isto. L. .lic) en Appl( C0an*e. Repetir este proceso para cada item que requiere te*to de ayuda. Editin* "_ltiple ,tem !elp Topics at Bnce +i se trata de incluir te*to de ayuda a los items de la aplicaci'n se pueden editar mBltiples te*tos de ayuda de items a la #ez usando el reporte BulS Edit ,tem !elp. Accessin* t0e BulS Edit ,tem !elp 7eport Para #er el reporte 5ul) Edit Item ;elp3 <. En la 1atabase ;ome Page clic) en el (cono Application Builder =. +eleccionar una aplicaci'n. >. +obre la lista de tareas !/as)s list" clic) en 4ie8 Application 7eports. ?. .lic) en Pa*e Componentes. L. +eleccionar ,tem !elp Text. +e displaya un reporte en la parte inferior de la pgina. M. En el reporte 5ul) Item ;elp se puede3 a. 0ctualizar el te*to de una ayuda e*istente !update e*isting help topics". +e edita el te*to que se est mostrando y se hace clic) en Appl( C0an*es. b. .onectar a la Page 1efinition que contiente el item mediante un clic) en el I1 de la pgina. c. .onectar a la Page Item mediante un clic) en el nombre del item. /eedin* ,tem !elp Topics +i la aplicaci'n toda#(a no tiene te*to de ayuda se puede ejecutar una actulizaci'n masi#a del te*to de ayuda por default. Para setear los temas de ayuda de los items3 <. 0cceder al reporte 5ul) Edit Item ;elp. =. .lic) en /eed ,tem !elp Text >. En De ault !elp Text ingresar el te*to de ayuda por omisi'n que aparecer en todos los casos. ?. .lic) en Appl( C0an*es. /earc0in* or Existin* ,tem !elp Topics. +e puede buscar ayuda por te*to o por la etiqueta del item. -90-

Application Express User's Guide

Building an Application

Para buscar ayuda por te*to3 <. En !elp contains ingrese las palabras cla#es. =. .lic) en Go. /earc0in* or an ,tem #abel Para buscar por la etiqueta de un item3 <. En !elp contains ingresar las palabras cla#es !la etiqueta". =. .lic) Go. %er tambi-n3 @%iewing 0pplication Reports@ Creatin* a !elp ?avi*ation Bar Entr( 6na #ez que se ha creado la ayuda el paso siguiente es crear una entrada en la barra de na#egaci'n de forma tal que los usuarios puedan accederla. Para crear una entrada en la barra de na#egaci'n3 <. 7a#egar a la Page 1efinition3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en el (cono Application Builder. c. +eleccionar una aplicaci'n. d. +elecci'n una pgina. 0parece la definici'n de la pgina. =. En ?avi*ation Bar clic) en el (cono Create. >. Especificar las entradas que correspondan a los atributos de la barra. a. +-quense b. 0lt /ag /e*t c. Icon Image 7ame d. Image ;eight and Image Eidth e. /e*t ?. Especificar la ubicaci'n destino para ello3 a. En Tar*et t(pe seleccionar Pa*e in t0is application. b. En Pa*e especificar el id de la pgina. c. En 7e>uest. escribir3 &&''%'&(E%I) 0l especificar el string de sustituci'n K0PPDP09EDI1 como 7e>uest !petici'n" se instruye al motor del 0pplication E*press a mostrar el te*to de ayuda la pgina actual cuando el usuario hace clic) en este (cono.

-91-

Application Express User's Guide

Building an Application

Controllin* Pa*e #a(out and User ,nter ace Esta secci'n describe diferentes formas que se pueden usar para refinar las interfaces con los usuarios de las aplicaciones ya sean regiones edici'n de items templates de personalizaci'n e incorporar imgenes y cascading style sheets. /emas3

6nderstanding Page $ayout 1isplaying .omponents on E#ery Page of an 0pplication .ustomizing Regions ;ow Item 0ttributes 0ffect Page $ayout Incorporating .ontent from Other Eeb+ites 8anaging /hemes .ustomizing /emplates Optimizing a Page for Printing 6sing .ustom .ascading +tyle +heets 8anaging Images 8anaging +tatic Qiles .reating a 8ultiple .olumn $ayout Rendering ;/8$ 6sing .ustom P$A+4$

%er tambi-n3 @0dding 7a#igation@ para mayor informaci'n sobre creaci'n de bars tabs breadcrumbs lists y trees. 6nderstanding Page $ayout El motor del 0pplication E*press genera pginas por la combinaci'n de templates con componentes definidos por el desarrollador y datos de la base. $a estructura de la pgina es deterimnada por el template de la pgina. Por ejemplo el template de la pgina controla si una pgina utiliza tabs y una barra de na#egaci'n. /ambi-n puede definir si la pgina incluye una barra del lado izquierdo que sir#e como un contenedor de enlaces de na#egaci'n a pginas secundarias. Qinalmente el template puede incluir definiciones de las posiciones de regiones las cuales permite un control preciso sobre la ubicaci'n de regiones que usan tablas ;/8$ ' style sheet. El template de pgina esta compuesto de una combinaci'n de ;/8$ con strings de sustituci'n los cuales se sustituirn con el componente apropiado en tiempo de ejecuci'n. .omo desarrollador se agrega contenido sobre una pgina mediante la creaci'n de regiones. 6na regi'n es un rea de una pgina que sir#e como un contenedor. .ada regi'n contiene un tipo diferente de contenido tal como ;/8$ report form chart list breadcum plAsql un arbol una url ' un calendario. +e posiciona la regi'n en forma relati#a a otras -92-

Application Express User's Guide

Building an Application

regiones !es decir basado sobre una secuencia de nBmeros y columnas" ' usando la posici'n definida en el page template. El estilo de la regi'n es tambi-n controlado por el region template. 0l igual que el page template el region template define la estructura del area que la regi'n toma como una pgina. Esto define si el t(tulo de la regi'n es mostrado y donde este es displayado relati#o al contenido principal ' al cuerpo de la pgina. 6na regi'n puede tambi-n definir posiciones absolutas para los botones. %er tambi-n3 @.reating a Region@ 1isplaying .omponents on E#ery Page of an 0pplication $a pgina cero de la aplicaci'n funciona como la pgina principal ' maestra. El motor del 0pplication E*press genera todos los componentes que se agregan a la pgina cero sobre cada pgina dentro de la aplicaci'n. +e puede adems controlar si el motor del 0pplication E*press genera un componente ' ejecuta un clculo #alidaci'n ' procesos mediante la definici'n de condiciones. Para crear una pgina cero3 <. .rear una nue#a pgina. =. Especificar el I1 de la pgina en cero. %er tambi-n3@0dding Pages to an 0pplication@ @6nderstanding .onditional Rendering and Processing@ and @0#ailable .onditions@ .ustomizing Regions 6na regi'n es una rea de una pgina que sir#e para contener algBn componente. .ada pgina puede tener cualqui-r cantidad de regiones. +e puede controlar la apariencia de una regi'n a tra#-s de especificaciones en el template de la region. El template de la regi'n controla el aspecto el tamaRo los bordes color de fondo y que tipo de letra utiliza. El templeate de la regi'n tambi-n determina la ubicaci'n estandard para cualquier bot'n que se coloque en la regi'n. +e pueden usar regiones para agrupar controles de pginas !tales como items ' botones". +e puede crear una regi'n simple que no genera c'digo ;/8$ adicional o crear regiones elaboradas que enmarcan el contenido de tablas ;/8$ ' imgenes. $as regiones se muestran en secuencia dentro de las columnas de una tabla ;/8$. +e puede especificar tambi-n ubicaciones espec(ficas para una regi'n en posiciones definidas en el template de la pgina. /ambi-n se puede condicionar el display de una regi'n. /emas. .reating a Region +e puede crear una nue#a regi'n ejecutando el .reate Region Eizard. <. 7a#egar a la correspondiente Page 1efinition3 a. 7a#egar a la 1atabase ;ome Page. b. .lic) en el (cono 0pplication 5uilder. c. +eleccionar una aplicaci'n. d. +eleccionar una pgina. .on lo cual aparece la definici'n de la pgina. =. En Regions clic) en el (cono .reate. 0parece el wizard que crea una regi'n. >. +eleccionar un tipo de regi'n y continuar con las instrucciones de pantalla.

-93-

Application Express User's Guide

Building an Application

.uando se crea una regi'n se selecciona de que tipo es. El motor del 0pplication E*press interpreta la regi'n basndose en el tipo que fue definida. $a tabla de tipos de regiones est disponible a continuaci'n. 7e*ion T(pe ;/8$ Description .uando se selecciona ;/8$ el wizard solicita se seleccione uno de los siguientes3

!T"# U Qunciona como un contenedor de items y contiene el ;/8$ que se le pro#ee. 0dmite strings de sustituci'n en el c'digo ;/8$ que se le escriba. !T"# Text $escape special c0aracters& U Es igual al anterior pero el motor con#ierte los caracteres especiales antes que ellos sean generados. !T"# Text $8it0 s0ortcuts& U +oporta shortcuts.

4er tambi-n: @6sing +hortcuts@ Report $as regiones reports se pueden definir mediante una consulta sql ' mediante la utilizaci'n de un wizard que guie la escritura de la consulta sql. %er tambi-n3 @.reating Reports@ +on utilizadas para contener formularios. Qorm %er tambi-n3 @.reating Qorms@ .hart 6na regi'n grfica contine graficos de lineas barras ' torta basados en consultas sql. %er tambi-n3 @.reating .harts@ 6na regi'n del tipo $ist contiene una colecci'n de lin)s denominada lista. $ist %er tambi-n3 @.reating $ists@ .ontiene una lista jerrquica de lin)s denominada breadcrumb. 5readcrumb %er tambi-n3 @.reating 5readcrumbs@ P$A+4$ 1ynamic .ontent /ree Este tipo permite generar cualquier ;/8$ o te*to usando el P$A+4$ Eeb /ool)it. $os rboles son controles de na#egaci'n jerrquicos basados en consultas sql en tiempo de ejecuci'n. Permite al usuario e*pandir A colapsar nodos. 4er tambi-n: @.reating /rees@ 6R$ Este tipo de regiones obtiene su contenido mediante un llamado a un ser#idor web usando una 6R$ predefinida. 4er tambi-n: @Incorporating .ontent from Other Eeb+ites@ -94-

Application Express User's Guide

Building an Application

7e*ion T(pe .alendar

Description +e utilizan para contener un calendario mensual. %er tambi-n3 @.reating .alendars@

8ultiple ;/8$

+e utiliza esta opci'n para crear mBltiples regiones ;/8$ de una sola #ez. En los campos pro#istos se especifica la secuencia el titulo punto de display template del report y la columna de cada regi'n. $as regiones ;elp /e*t permite crear ayudas a ni#el de pgina.

;elp /e*t 4er tambi-n: @.reating a ;elp Page@ %er tambi-n3


%racle &atabase Application &e'eloper's Guide ( )undamentals para ms informaci'n sobre desarrollo de aplicaciones web con plAsql. %racle &atabase *+,S-+ *ac.ages and /ypes 0e1erence para ms informaci'n sobre paquetes htp. @;ow Region 0ttributes 0ffect Page $ayout@

;ow Region 0ttributes 0ffect Page $ayout +e puede alterar la apariencia de una pgina cambiando los atributos de la regi'n. Para editar los atributos de la regi'n. <. 7a#egar a la correspondiente Page 1efinition. =. En Regions seleccionar un nombre de regi'n con lo cual aparece la definici'n de la regi'n. $a siguiente tabla describe los atributos que afectan el layout de una pgina. /able3 Region 0ttributes 0ffecting Page $ayout Attribute .onditions Description 1efine condiciones que determinan si la regi'n se muestra. $as condiciones pueden hacer referencia al estado de la sesi'n al usuario actualmente loggeado ' a las preferencias de entorno tales como si la pgina est en modo Print %iew. 4er Tambi-n: @6nderstanding .onditional Rendering and Processing@ y @Optimizing a Page for Printing@ ;eader and Qooter Especifica el te*to ;/8$ que se mostrar en la regi'n de tope de pgina !justo antes del contenido de S5O1GS". ;abilita al usuario final a utilizar las preferencias. Para ello se debe incluir el string de sustituci'n )CUSTOMIXE) en la secci'n del ;eader 5ody ' Qooter del template de la pgina.

.ustomization

-95-

Application Express User's Guide

Building an Application

Attribute

Description 4er Tambi-n: @Enabling 6sers to .ustomize a Page@

6ser Interface .olumn

1etermina la columna en la cual se muestra la regi'n. +i dos regiones son mostradas en el mismo punto se puede ubicar una al lado de la otra indicando en la segunda regi'n que se displaye en la columna =. 8uchas regiones se pueden displayar en cada columna y el orden de display de la regi'n es controlado por el region display sequence number. 1etermina como se muestra la regi'n. +eleccionar desde los templates definidos en la aplicaci'n. Para #er los atributos de template clic) en el nombre del template sobre la Page 1efinition. 4er Tambi-n: @.ustomizing /emplates@ y @Region /emplates@

6ser Interface /emplate

6ser Interface +equence 6ser Interface 1isplay Point

Especifica el orden de display de la regi'n dentro de la pgina. Identifica en que lugar dentro de la pgina se muestra la regi'n. $as regiones son generadas en el orden del nBmero de secuencia en un 1isplay Point. .lic) en el (cono %iew para #er el layout de la pgina y seleccionar una posici'n. $os posibles 1isplay Point para una regi'n quedan determinados por el atributo page&le#el del template !el cual es un atributo de la pgina". +i no hay un template page&le#el seleccionado se utiliza el default definido en la 0pplication 1efinition.

6ser Interface Region ;/8$ table cell attributes

1efine atributos adicionales a ser usados en las celdas de las tablas ;/8$ cuando la regi'n se displaya en mBltiples columnas. $os atributos controlan las celdas en las tablas que se usan para el lay out de una regi'n en mBltiples columnas.

Controllin* 7e*ion Positionin* .uando se crea una regi'n se debe especificar su posici'n !' 1isplay Point" en la pgina. +e puede elegir entre la posici'n por default !tal como Page /emplate 5ody" ' una posici'n definida por el usuario en el template !tal como Page /emplate Region Position <". 0dems del 1isplay Point se puede especificar la columna en la cual la regi'n ser ubicada. .uando se ubican regiones en mBltiples columnas Oracle 0pplication E*press automticamente genera el ;/8$ necesario para producir un layout con mBltiples columnas. /peci (in* a 7e*ion !eader and Mooter 0dems del contenido en el cuerpo de la regi'n !el cual puede ser un reporte grfico ' ;/8$ con elementos de formulario" se puede especificar c'digo ;/8$ adicional arriba ' abajo de la regi'n ' en su encabezado y pi-. El pie de una regi'n soporta los siguientes strings de sustituci'n3

-96-

Application Express User's Guide

Building an Application

)TIMING) muestra el tiempo transcurrido en segundos desde que se gener' la regi'n. +e puede utilizar para prop'sitos de depuraci'n. )ROWS_FETCHED) 8uestra la cantidad de filas traidas por el motor del reporte del Oracle 0pplication E*press !es el page size". +e puede usar este string de sustituci'n para mostrar mensajes ms apropiados a los usuarios. Por ejemplo3 +e trajeron SROE+DQE/.;E1S filas en S/I8I79S segundos.

)TOTAL_ROWS) 8uestra el nBmero total de filas que cumplen con el where de la consulta del reporte. )FIRST_ROW_FETCHED) y )LAST_ROW_FETCHED) 8uestra el rango de filas displayadas !del total" por ejemplo3 displays the range of rows displayed. Qor e*ample3 +e muestran SROE+DQE/.;E1S filas desde la SQIR+/DROEDQE/.;E1S a la fila S$0+/DROEDQE/.;E1S

Enablin* Users to Customi+e a Pa*e +e puede usar el atributo .ustomization para permitir que los usuarios cambiar las regiones cuando se ejecuta la aplicaci'n. Para ello3 <. 7a#egar a la correspondiente definici'n de pgina !Page 1efinition". =. En Regions hacer clic) en el nombre de la regi'n. 0parece la definici'n de la regi'n. >. 5ajar hasta .ustomization y seleccionar uno de los siguientes3 a. .ustomizable y no se muestra el default. b. .ustomizable y se muestra el default. ?. En .ustomized Option 7ame ingresar la etiqueta que representa esta regi'n en la pgina del usuari. L. Incluir el string de sustituci'n ScustomizeS en la secci'n correspondiente ! ;eader 5ody ' Qooter " del template de la pgina. Para utilizar esta opci'n se debe incluir el string de sustituci'n S.6+/O8I_ES en la secci'n correspondiente ! ;eader body ' Qooter" del template de la pgina. +i al menos una regi'n soporta customization por el usuario aparece un lin) denominado .ustomize donde se incluya el string de sustituci'n S.6+/O8I_ES en el page template. .uando el usuario hace clic) en este lin) se muestra una #entana al usuario permiti-ndole habilitarAdeshabilitar regiones de la pgina. %er tambi-n3 @.ustomizing /emplates@ ;ow Item 0ttributes 0ffect Page $ayout 6n item es parte de un formulario ;/8$ y puede ser un campo de te*to un rea de te*to una password una lista de selecci'n un chec) bo* etc. +e puede la apariencia de una pgina cambiando los atributos de los items. Por ejemplo estos atributos pueden afectar en que lugar se displaya que tamaRo tendr si el item se displayar a la derecha ' debajo del item pre#io. %er tambi-n3 @.reating Items@ Para editar los atributos de un item3 <. 7a#egar a la definici'n de la pgina. =. En Items seleccionar el item deseado con lo cual aparece la definici'n del item. /able3 Item 0ttributes Effecting Page $ayout describe como afecta al layout cada atributo de un item. -97-

Application Express User's Guide

Building an Application

!eadin* 1isplayed

Atributo +equence

Descripci%n 1etermina el orden en el cual los items sern generados dentro de la regi'n. 1efine la regi'n en la cual se mostrar el item. /odos los items estn en una regi'n.

1isplayed

Region

1isplayed

5egin On 7ew $ine 1etermina si este item se muestra sobre la misma linea del item pre#io ' si se muestra sobre la siguiente. 5egin On 7ew Qield .ol+pan 1etermina si este item se muestra en la pr'*ima columna ' en la misma columna del item pre#io. $os items son colcados en tablas html. 1efine el #alor a ser usado por el atributo .O$+P07 de la celda que contendr al item. $os items son colocados en tablas html. 1efine el #alor a ser usado por el atributo ROE+P07 de la celda que contendr al item. Registra la etiqueta para este item. +e pueden incluir html ,a#a+cript y shortcuts. +e puede tambi-n usar el string de sustituci'n )CURRENT_ITEM_NAME) para obtener el nombre del item asociado con esta etiqueta. .ontrola la alineaci'n horizontal y #ertical de la etiqueta. $as etiquetas pueden ser mostradas arriba abajo ' a la izquierda del item. Especifica el template de la etiqueta. +e utiliza cuando se quiere dar una apariencia consistente a las etiquetas de toda la aplicaci'n. 1efine atributos adicionales para la celda que contiene a la etiqueta de este item !por ejemplo "/:7a5 ? W"/:7a5W".

1isplayed

1isplayed

1isplayed

Row+pan

$abel

$abel

$abel

;orizontalA%ertical 0lignment

$abel

/emplate

$abel

;/8$ /able .ell 0ttributes

$abel

Especifica atributos adicionales para la tabla de celdas Post Element /e*ts ;/8$ usada para mostrar cada opci'n indi#idual en un item radio group ' en un conjunto de chec) bo*es. +e puede incluir html ,a#a+cript y shortcuts. +e pueden referenciar los siguientes strings de sustituci'n3

)CURRENT_FORM_ELEMENT) obtiene el nombre del -98-

Application Express User's Guide

Building an Application

!eadin*

Atributo

Descripci%n elemento del formulario ;/8$ con el cual se asocia este post element te*t.

)CURRENT_ITEM_NAME) obtiene el nombre del item con el cual este post element te*t se asocia.

$ist of %alues

.olumns

+e aplica a radio groups y a chec) bo*es. 1efine el nBmero de columnas que se usan para mostrar los #alores definidos en la lista de #alores. Por default todos los #alores se muestran en una columna.

.onditions

1efine la e*presi'n condicional que determina si un item se .ondition /ype and muestra. E*pressions 4er tambi-n: @6nderstanding .onditional Rendering and Processing@ Read Only .ondition /ype 1efine la e*presi'n condicional que determina si el item se mostrar como solo lectura. +e usa este atributo para mostrar determinados items a un conjunto de usuarios como actualizables mientras a otros se los muestra de solo lectura. Reduce la necesidad de codificar interfaces duplicadas para diferentes usuarios.

Read Only 1isplay +ettings

Incorporating .ontent from Other Eeb+ites 9eneralmente las pginas en una aplicaci'n estn basadas en datos alojados en una base de datos Oracle. Para incorporar contenido desde otros ser#idores se puede crear una regi'n basada en una 6R$ para mostrar su contenido. Por ejemplo supongase que se desea referenciar los precios actuales de los productos Oracle3 ($$5:OO68/$'.%a(//.c/4O6T ?0&s?ORCL $uego se podr(a crear un item denominado +/O.TD+G85O$ y basar la regi'n en un precio ingresado por el usuario. Por ejemplo3 ($$5:OO68/$'.%a(//.c/4O6T ?0&s?&STOC,_S-MBOL. 0 #eces !como es el caso del ejemplo pre#io" el ;/8$ retornado a la regi'n es ms del que se necesita. Para restringir el ;/8$ mostrado se pueden usar los siguientes atributos de regi'n3

6R$ !descarta hasta pero no incluye el te*to" 6R$ !descarta despues de pero incluye el te*to"

7otar que el ejemplo anterior podr(a requerir que se establezca el atributo Pro*y +er#er de la aplicaci'n. +i no se setea el atributo Pro*y +er#er de la aplicaci'n se de#uel#e un mensaje de error. Oracle 0pplication E*press utiliza la funci'n 8$&_($$5.7'68's$_5!'c'sA de Oracle para obtener el ;/8$ generado desde una 6R$ dada. -99-

Application Express User's Guide

Building an Application

%er tambi-n3 @.onfiguring +tandard 0pplication 0ttributes@ para #er ms informaci'n acerca del seteo del atributo Pro*y +er#er de una aplicaci'n. 8anaging /hemes /hemes !conte*tos" son colecciones de templates que pueden ser usados para definir el layout y estilo de una aplicaci'n completa. $a idea de usar theme !conte*to" es pro#eer un conjunto completo de templates que acomode cada patr'n de interfase de usuario que se necesite en una aplicaci'n. $os templates estn organizados primero por tipo !button calendar label list breadcrumb page popup $O% region y report" y luego por clases de template especializando el prop'sito del template dentro del tipo. .ada tipo de template pro#ee un grupo de clases standard y ocho clases especializadadas. Estas clasificaciones permiten a OR0.$E 0PP$I.0/IO7 E2PRE++ mapear templates con los themes !conte*tos" haciendo sencillo cambiar rpidamente el loo) and feel de una aplicaci'n completa. Temas:

0ccessing the /hemes Page .hanging 1efault /emplates in a /heme .reating a 7ew /heme +witching an 0cti#e /heme .opying a /heme 1eleting a /heme 0bout E*porting and Importing /hemes .hanging a /heme Identification 7umber %iewing /heme Reports

%er tambi-n3 .ustomizing /emplates 0ccessing the /hemes Page +e gestinan los themes sobre la /hemes page. Para acceder a la /hemes page desde +hared .omponents3 <. En la 1atabase ;ome Page hacer clic) en el (cono de 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. .lic) en +hared .omponents. ?. 5ajar hasta 6ser Interface y seleccionar /hemes. .on ello aparece la /hemes page. L. Para acceder a la #ista de detalle !1etails #iew" seleccionar 1etails desde la lista %iew. El conte*to actual seleccionado displaya una marca !chec) mar)" en la columna actual. Para acceder a la /hemes page desde la Page 1efinition3 <. En la 1atabase ;ome Page clic) en el (cono del 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. +eleccionar una pgina. .on lo cual aparece la Page 1efinition. -100-

Application Express User's Guide

Building an Application

?. +eleccionar el nombre del conte*to !theme". About t0e T0emes Pa*e 6na #ez que se crea un conte*to este aparece sobre la /hemes page. +e controla como se displaya la pgina mediante la selecci'n de las siguientes opciones desde la lista %iew3 ,cons !el default" displaya cada conte*to como un (cono grande. Para editar uno basta con hacer clic) en el (cono correspondiente. Details displaya cada conte*to como una linea de reporte. Para cambiar el conte*to ' el template por default clic) en el theme name. En la #ista 1etails se puede seleccionar las siguientes opciones desde la lista 1isplay3 / /ummar( 4ie8 displaya los Id del conte*to el nombre y el estado actual. / Detailed 4ie8 displaya el Id del conte*to el nombre el estado actual y el nBmero de templates en cada tipo de template. .hanging 1efault /emplates in a /heme El theme standard contiene templates para cada tipo de regiones y componentes. +e puede cambiar el templates seleccionado por default de un theme !conte*to" en la pgina de definici'n del /heme. +e pueden sustituir esos defaults por otros seleccionando otro template cuando ya se hallan creado nue#os componentes o regiones o mediante el cambio del template en la pgina de atributos de los componentes o regiones. Entonces para re#isar ' cambiar el template por default en un theme !conte*to"3 <. 7a#egar a la /hemes page3 a. En la 1atabase ;ome Page clic) en el (cono 05 . b. +eleccionar una aplicaci'n. c. .lic) +hared .omponents. d. En 6ser Inerface seleccionar /hemes. =. 0cceder al la #ista 1etails. Para ello en %iew seleccionar 1etails. >. +eleccionar el theme !por el nombre" que se desea. .on ello aparce la pgina que .reaAEdita el /heme. 0l tope de la pgina se displaya el Id asociado a la aplicaci'n y el nBmero de identificaci'n del /heme. ?. Para cambiar el nombre del /heme ingresar un nue#o nombre en el campo 7ame. L. Para cambiar un template por default se debe hacer una nue#a selecci'n desde la lista correspondiente. /able3 1efault /emplates by .omponent describe el template por default disponible en la secci'n 1efault /emplates by .omponent. Attribute Page Description Identifica el template por default para mostrar pginas. +i el desarrollador no elige e*pl(citamente un template el motor del 0E utiliza el template especificado aqu(. 6na #ez definido este template aparecer sobre la pgina Edit 0pplication 0ttributes debajo del encabezamiento del 0pplication /emplate 1efaults. 4er tambi-n: @1isplay 0ttributes@ para mayor informaci'n acerca de sustituir el page template en la pgina Page 0ttributes. Error Page Opcional. Especifica un page template para usar en errores que se muestran en una pgina separada a diferencia de aquellos que se displayan en linea. -101-

Application Express User's Guide

Building an Application

Attribute

Description 1ejar este atributo en blanco si no se desea utilizar un template destinado a mostrar errores. 6na #ez definido este template aparecer sobre la pgina de edici'n de atributos de la aplicaci'n !Edit 0pplication 0ttributes" debajo del 0pplication /emplate 1efaults.

Identifica el template que se usar cuando el motor del 0E est en modo printer friendly. .uando se in#oca al 0E para armar una pgina se tiene la Printer Qriendly Page opci'n de identificar el #alor del atributo printer friendly en GE+ ' 7O. +i se selecciona GE+ luego la pgina se mostrar usando un template printer friendly. El motor del 0E muestra todos los te*tos de los campos html del formulario como te*to. El template printer friendly no necesita tener el tags )FORM_OPEN) ' )FORM_CLOSE). El objeti#o es tener la posibilidad de mostrar informaci'n con unas pocas tablas y en un formato adecuado para imprimir. 6na #ez definido este template por default aparecer en la pagina Edit 0pplication 0ttributes debajo del encabezamiento 0pplication /emplate 1efaults. 4er tambi-n: @Optimizing a Page for Printing@ 5readcrumb Identifica el template por default para los breadcrumb que se utilizar en la creaci'n de nue#os breadcrumbs. Identifica el template por default utilizado en la creaci'n de botones. Especifica el calendar template por default utilizado para crear calendarios. Identifica el template por default para crear nue#as etiquetas. Especifica el template por default para crear nue#as listas. Especifica el template por default para crear nue#as regiones. Identifica el template por default para crear nue#os reports.

5utton .alendar $abel $ist Region Report

/able3 Region /emplates by Region /ype describe el template por default disponible en la secci'n 1efault /emplates by Region /ype. Attribute 5readcrumbs .harts Description /emplate de regi'n por default para crear un breadcrumb. /emplate de grfico por default para crear grficos. -102-

Application Express User's Guide

Building an Application

Attribute Qorms $ists Reports

Description /emplate de formulario por default para crear formularios. /emplate de regi'n por default para crear una lista. /emplate de regi'n por default para crear un reporte.

/abular Qorms /emplate de regi'n por default para crear un formulario tabular. !un browse" Eizards /emplate de regi'n por default para crear un nue#o wizard.

.reating a 7ew /heme +e puede crear un nue#o conte*to !theme" a partir de uno en blanco ' seleccionando uno e*istente desde el repositorio. Para crear un nue#o conte*to3 <. 7a#egar a la /hemes page3 a. En la 1atabase ;ome Page clic) en el (cono de 05 . b. +eleccionar una aplicaci'n. c. .lic) en +hared .omponents. d. 1ebajo de 6ser Interface seleccionar /hemes. =. .lic) en .reate. >. Especificar si se selecciona un conte*to !theme" desde el repositorio ' se crea uno nue#o en blanco. ?. +i se selecciona Qrom Repository3 a. +eleccionar un /heme desde el repositorio. b. .lic) .reate. L. +i se selecciona Qrom +cratch3 a. Especificar un nue#o nombre. b. .lic) en .reate. 0parece la pgina de /hemes. c. 1efinir los templates por default para el nue#o /heme3 i. .lic) en el (cono Edit !junto al nombre del nue#o /heme". ii. .ambiar el nombre del theme ingresar un nue#o nombre en el campo 7ame. iii. .uando aparece la pgina 1efine /heme seleccionar los templates por default para el nue#o theme. +witching an 0cti#e /heme .uando se cambia a un nue#o theme todos los componentes que estn asignados a un template son asignados al template correspondiente en el nue#o theme. 05 logra mapear el template a tra#-s de la asignaci'n del identificador de clase del template. ?ota: +e puede solo cambiar a un otro theme si ya e*iste pre#iamente. Para aplicar un theme a una aplicaci'n3 <. 7a#egar a la /hemes page. =. .lic) en el (cono +witch /heme. .on lo cual aparece la pgina de +witch /heme. >. En la lista de theme de +witch seleccionar un theme y clic) en 7e*t. -103-

Application Express User's Guide

Building an Application

?. Re#isar el estado de la columna que identifica mapeos problemticos3 a. C0ecS indica que el mapeo fue e*itoso. b. Varnin* indica que hay ms de un template en el theme con el mismo identificador de clase. El mensaje de ad#ertencia pro#ee una lista para seleccionar cual es el template apropiado. c. Error indica que 05 no pudo mapear la clase con los themes. 0segurese que una sola clase est identificando a los templates en ambos themes. L. .lic) en 7e*t para continuar. M. .lic) en +witch /heme. %er tambien3 @.reating a 7ew /heme@ .opying a /heme .ada theme es identificado por un I1. .uando se copia un theme se especifica un nue#o I1. .opiar un theme es util si se quiere e*perimentar con la edici'n de un theme e*istente ' bien si se desea e*portarlo con un I1 diferente. Para copiar un theme3 <. 7a#egar a la /hemes page3 a. En la 1atabase ;ome Page clic) en el (cono de 05 . b. +eleccionar una aplicaci'n. c. .lic) en +hared .omponents. d. En 6ser Interface seleccionar /hemes. =. En la lista /as)s !a la derecha de la pantalla" clic) en .opy /heme !es la primera opci'n". >. En la pgina de .opy /heme3 a. .opy from /heme3 Es una lista donde se selecciona el theme origen !desde el cual se copia". Por ejemplo3 M. +outhwest. b. .opy to this /heme Identification 7umber3 Es un nBmero I1 que identifica uni#ocamente a los objetos del generador de aplicaciones. 1el < al <CC estn reser#ados para Oracle. Elegir por ejemplo <CCM. c. .lic) en 7e*t. d. 0parece la pantalla para confirmar la copia del theme. e. .lic) en el bot'n .opy /heme. 7otar que el /heme generado tiene el mismo nombre que el original !cambia el I1". +e puede cambiar el nombre para ello #-ase3 .reating a 7ew /heme 1eleting a /heme +olo se pueden eliminar themes que no est-n referenciados !inacti#os". .uando se deletea un theme 05 solo remue#e los templates inacti#os. Para eliminar un theme3 <. 7a#egar a la pginas de /hemes. =. En la lista de tareas que est a la derecha clic) en 1elete /heme. >. +eleccionar el /heme que se desea eliminar en la lista que se muestra. ?. .lic) en el bot'n Remo#e /heme. 0bout E*porting and Importing /hemes +e e*porta un theme de la misma forma que se e*porta cualquier archi#o relacionado con la aplicaci'n. E*portar un theme desde una instancia de desarrollo a otra in#olucra los siguientes pasos3 <. E*portar el theme usando el E*port /heme 6tility. -104-

Application Express User's Guide

Building an Application

=. Importar el archi#o e*portado en la instancia destino del O0E . >. Instalar el archi#o e*portado desde el repositorio E*port. %er tambi-n3 @E*porting /hemes@ y @Importing E*port Qiles@ .hanging a /heme Identification 7umber .ada theme tiene asociado un I1. +e puede usar el utilitario .hange /heme I1 para cambiar el nBmero que identifica a un theme. Esto puede ser util cuando se desea e*portar un theme con un nBmero diferente para lograr una importaci'n e*itosa en la instancia destino. Para cambiar el I1 de un theme3 <. 7a#egar a la /hemes page. =. En la lista de tareas que esta a la derecha clic) en .hange Identification 7umber. >. 0parece la pgina .hange /heme I1 y alli se debe3 a. +eleccionar un theme. b. Especificar un nue#o nBmero identificatiorio. c. .lic) en 7e*t. d. 0parece la pantalla de confirmaci'n. .lic) en .hange /heme I1. %iewing /heme Reports 0pplication 5uilder incluye un conjunto de reportes diseRados para colaborar en la gesti'n de themes y templates. Temas: %iewing 0ll /emplates in a /heme %iewing /heme /emplate .ounts %iewing Qile References %iewing .lass References %iewing /emplate +ubstitution +trings %iewing 0ll /emplates in a /heme Para #er todos los templates que componen un theme3 <. 7a#egar a la /hemes page. =. .lic) en Reports !est arriba a la izquierda". >. En la pgina de /heme Reports3 a. En Report seleccionar 0pplication /emplates. b. En /heme seleccionar un theme. c. .lic) en 9o. .on ello aparece un listado de templates catalogado por tipo nombre theme asociado y clase !de template". ?. Para editar un template seleccionar el nombre del template. %iewing /heme /emplate .ounts El reporte /heme /emplate .ount lista que clases !template classes" tienen actualmente templates creados con ellas. <. 7a#egar a la /hemes page. =. .lic) en Reports. >. En la pgina de /heme Reports3 a. En Report seleccionar el /heme /emplate .ounts. b. En /heme seleccionar el theme. c. .lic) en 9o. ?. +i se est usando clasificaci'n personalizada !custom" tildar +how .ustom y clic) en 9o. -105-

Application Express User's Guide

Building an Application

%iewing Qile References Este reporte muestra un listado de todos los archi#os asociados con templates componentes compartidos ' componentes de pgina en la actual aplicaci'n. Para #er este reporte3 <. 7a#egar a la /hemes page. =. .lic) en Reports. >. En la pgina de /heme Reports3 a. En Report seleccionar el Qile References. b. En /heme seleccionar el theme. c. .lic) en 9o. ?. En la pgina de Qile References3 a. En +how seleccionar el tipo de componente a incluir en el reporte. +i no se selecciona alguno no se mostrar nada. b. En +how Qiles seleccionar uno de los siguientes3 i. Vit0 context muestra el componente el I1 del theme el nombre del componente la imagen !si corresponde" y el I1 de la pgina. +eleccionar el page I1 para enlazar a una Page 1efinition. ii. Vit0out context muestra solo el nombre de archi#o y la imagen !si es aplicable". c. En Qile E*tensions seleccionar el tipo de e*tensiones para las cuales se busca. d. .lic) en 9o. L. Para bajarlo !download" como un archi#o delimitado por comas !.cs#" a este reporte hacer clic) en el bot'n Do8nload C/4 que est en la pgina. %iewing .lass References Este reporte muestra un listado de clases asociadas con templates componentes compartidos ' componentes de pginas de la aplicaci'n actual. Para #er este reporte3 <. 7a#egar a la /hemes page. =. .lic) en Reports. >. En la pgina de /heme Reports. a. En Report seleccionar .lass References. b. En /heme seleccionar un theme. c. .lic) en 9o. ?. 8uestra la pgina de .lass References y alli3 a. En +how se seleccionan los componentes a chequear si referencias clases. +ino se selecciona nada nada se muestra. b. En +how .lass 7ames selecione uno de los siguientes3 i. Vit0 context muestra el componente el I1 del theme el nombre del componente la imagen y el I1 de la pgina. ii. Vit0out context muestra solo las clases referenciadas. c. .lic) en 9o. L. Para bajar como archi#o delimitado por comas !.cs#" a este reporte se debe seleccionar el bot'n Do8nload C/4. %iewing /emplate +ubstitution +trings Este reporte muestra el template de los strings de sustituci'n para #er todos los strings de sustituci'n soportados por los componentes. Para #er este reporte3 <. 7a#egar a la /hemes page. =. .lic) en Reports. >. En la pgina de /heme Reports3 -106-

Application Express User's Guide

Building an Application

a. En la opci'n Report list seleccionar Template /ubstitution /trin*s. b. En la opci'n /heme list seleccionar que theme se debe incluir en el reporte. c. .lic) en el bot'n 9o. ?. Para enlazar a la definici'n del template seleccionar un nombre de componente. %er tambi-n3 @6sing +ubstitution +trings@ .ustomizing /emplates El motor del 0E crea la interface de usuario de una aplicaci'n basandose en una colecci'n de templates denominada theme. $os templates controla el loo) and feel !la apariencia" de los componentes en la aplicaci'n. +i se necesita crear un nue#o template personalizado es generalmente ms simple arrancar con un template e*istente y luego modificarlo como se desea. 6na #ez que se ha creado uno o ms templates se pueden modificar para ajustarlos a las necesidades espec(ficas. /emas3

.ascading +tyle +heets +electing a 1efault Page /emplate %iewing /emplates .reating a 7ew /emplate %iewing /emplate Reports Editing /emplates 5readcrumb /emplates 5utton /emplates .alendar /emplates $abel /emplates $ist /emplates Page /emplates Popup $O% /emplates Region /emplates Report /emplates

%er tambi-n3 8anaging /hemes .ascading +tyle +heets 6na cascading style sheet !.++&hoja con diferentes estilos" pro#ee una forma de controlar el estilo de una pgina web sin cambiar su estructura. .uando se usa adecuadamente una -107-

Application Express User's Guide

Building an Application

.++ separa los atributos #isuales tales como colores margenes y fonts de la estructura del documento. O0E incluye themes !conj.de templates" que contiene templates que referencias sus propias .++. $as reglas de estilo definida en cada .++ para un theme particular tambi-n determinan la forma en que se displayan las regiones y los reportes. %er tambi-n3 @6sing .ustom .ascading +tyle +heets@ +electing a 1efault Page /emplate +e puede especificar un template por default de dos formas. +eleccionando uno dentro del theme espec(fico. +eleccionando uno en la pagina base. Por default el motor del 0E utiliza el template de pgina especificado en el /hemes. Para seleccionar un Pa*eLlevel Template dentro del T0eme <. En la 1atabase ;ome Page clic) en el (cono 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. .lic) en +hared .omponents. ?. En user interface seleccionar /hemes. 0parece la pgina de /hemes. L. En 4ie8 seleccionar Details. M. +eleccionar de la lista el theme correspondiente. N. En 1efault /emplates by .omponent seleccionar lo deseado desde la Page list. %er tambi-n3 @.hanging 1efault /emplates in a /heme@ /eleccionar un Pa*eL#evel Template para una p*ina espec] ica. <. En la 1atabase ;ome Page clic) en el (cono 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. +eleccionar una pgina. ?. .lic) en Edit 0ttributes. L. $ocalizar la secci'n Primary 1isplay 0ttributes. M. +eleccionar lo deseado desde las listas en este Page /emplate. %iewing /emplates +e pueden #er todos los templates disponibles en la pgina Templates. Otra alternati#a es #er el template que se utiliza para una pgina espec(fica en la Page 1efinition. %er tambi-n3 @%iewing 0ll /emplates in a /heme@ Para ver la p*ina de los Templates: <. En la 1atabase ;ome Page clic) en el (cono del 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. .lic) en +hared .omponents. ?. En 6ser Interface seleccionar Templates. .on ello aparece la pgina de los templates. L. +e puede ajustar el display haciendo una selecci'n desde las opciones siguientes y luego clic) en 9o. a. T0eme U Para #er solo templates de un theme espec(fico. b. /0o8 U Para un tipo espec(fico de template. c. 4ie8 & Para #er todos los templates ya sean o no referenciados. M. Para #er la definici'n de cualquiera de ellos hacer clic) en el nombre. -108-

Application Express User's Guide

Building an Application

N. Para #er un pre#iew de un template clic) en el (cono 7un en la columna Pre#iew. !7o todos los tipos de template tienen la capacidad de la #ista pre#ia". Para ver los templates desde la Pa*e De inition <. En la 1atabase ;ome Page clic) en el (cono 0pplication 5uilder. =. +eleccionar una aplicaci'n. >. +eleccionar una pgina. 0parece la Page definition de la misma. $os templates asociados con la esta se encuentran Templates en la columna que est ms a la derecha. ?. Para #er atributos de un template e*istente basta con un clic) en el nombre. .reating a 7ew /emplate +i es el caso en que se necesita crear un template personalizado generalmente es ms simple arrancar desde un template e*istente y luego modificar este segBn se desee. Para crear un template personalizado3 <. +eleccionar la aplicaci'n. =. +eleccionar componentes compartidos. >. +eleccionar templates. ?. .lic) en .reate. L. +eleccionar el tipo de template que se desea crear. M. +eleccionar el m-todo de creaci'n. a. Qrom +cratch !crear uno nue#o desde cero". b. 0s a .opy of an E*isting /emplate !crear a partir de uno e*istente" N. +eguir las instrucciones de pantalla. +er cuidadoso al asociar el template con el correspondiente theme !layout ' modelo grafico". %iewing /emplate Reports El 05 incluye reportes que describen donde se utilizan los templates y su historia. Para #er los reportes sobre template de la aplicaci'n actual3 <. +eleccionar una aplicaci'n. =. +eleccionar componentes compartidos. >. +eleccionar templates. ?. +e puede ajustar el display seleccionando desde las siguientes listas y haciendo clic) en 9o. a. /heme U 8uestra solo templates de un theme espec(fico. b. +how U 8uestra un tipo espec(fico de template. c. %iew U 8uestra todos los templates aquellos que estn actualmente referenciados ' aquellos que no estn referenciados. L. Para #er los reportes de template clic) en los siguientes botones3 a. 6tilization3 8uestra la utilizaci'n en la actual aplicaci'n de todos los tipos de templates !page report region label y list". b. +ubscription3 8uestra los templates suscriptos por la aplicaci'n. c. ;istory3 1etalla los cambios recientes al template por el desarrollador y la Bltima fecha de actualizaci'n. Editing /emplates 6na #ez que se cre' un template !personalizado" se puede rapidamente editarlo desde la pgina de templates ' desde la Page 1efinition. Para editar un template e*istente desde la pgina de /emplates se debe3 <. +eleccionar una aplicaci'n. =. +eleccionar componentes compartidos. >. +eleccionar /emplates. -109-

Application Express User's Guide

Building an Application

?. +e puede limitar el display seleccionando !filtrando" desde las siguientes listas y luego haciendo clic) en 9o. a. /heme U 8uestra solo los templates de un /heme espec(fico. b. +how U 8uestra un tipo espec(fico de template. c. %iew U 8uestra todos los templates los que actualmente estn referenciados y aquellos que no estn referenciados. L. $ocalizar el template que se desea editar y hacer clic) en el nombre del template. M. +eguir con las instrucciones dadas en pantalla. 0l editar templates se puede estar editando el template en una pgina y ejecutarlo en otra. Para ello se debe seleccionar el chec) bo* 7eturn to Pa*e el cual guarda la pgina que se est editando despu-s que se haga clic) en Appl( C0an*es. 5readcrumb /emplates 6n template de breadcrumb controla las entradas que se muestran. +e selecciona un template breadcrumb cuando se crea una region.

About Breadcrumb /t(le ?avi*ation $os breadcrumbs indican donde la pgina actual est en relaci'n a las otras pginas por las cuales ya se na#eg'. $os usuarios pueden hacer clic) en una pgina espec(fica para #erla inmediatamente. $a interface de usuarios de 1atabase ;ome Page incluye breadcrumb debajo de la linea estandar de tabs que se encuentra al tope de cada pgina por la cual se na#ega. Por Ejemplo3 %er tambi-n3 0yuda en linea para ms informaci'n acerca de como editar la pgina de los template de 5readcrumb. @.reating 5readcrumbs@ Breadcrumb Template Attributes Esta secci'n describe aspectos espec(ficos de la pgina de template de 5readcrumb. ,denti ication ?ame identifica el nombre del template. 6tilizar el chec) bo) Translatable para indiciar que el template contiene te*to !strings" que requieren ser traducidos. T0eme indica el theme del cual el template es miembro. Template Class identifica una utilizaci'n espec(fica para el template. .uando se cambia a un nue#o theme todos los templates miembros son mapeados al nue#o theme. 0pplication 5uilder logra este mapeo a tra#-s de la asignaci'n de una clase template. Breadcrumb Template /ubscription Para aplicar un template a la aplicaci'n actual se utiliza /emplate +ubscription. .uando se selecciona un template e*istente la aplicaci'n pasa a ser miembro del template. Para cargar una nue#a copia del template clic) en Refresh. Breadcrumb Template /t(les +eleccione uno de los siguientes estilos de template3 C0ild Breadcrumb Entries muestra todas las entradas que son hijos del breadcrumb padre de la pgina actual es decir los pares del breadcrumb actual. -110-

Application Express User's Guide

Building an Application

Current Breadcrumb muestra todas las entradas en secuencia de na#egaci'n con un padre comBn. Parent Breadcrumb Entries muestra todas las entradas que son padre de la entrada actual !es decir un ni#el arriba de la entrada actual". Parent to #ea $breadcrumb st(le& muestra la entrada de la pgina actual su padre a la izquierda y as( sucesi#amente hasta alcanzar el nodo raiz.

Breadcrumb Entr( Control Attributes 1escribe los atributos disponibles para las entradas breadcrumb. Atributo 5efore Qirst .urrent Page 5readcrumb Option Descripci%n 1efine el te*to que se muestra antes de aparecer la primer entrada. 1efine como se #e la entrada que corresponde a la pgina actual. Este atributo soporta los siguientes strings de sustituci'n3

)NAME) especifica el nombre corto. )LIN,) especifica un enlace para esta entrada. )LONG_NAME) especifica el nombre largo.

7on .urrent Page 5readcrumb Option

1efine como se #en las entradas que no corresponden a la pgina actual. Este atributo soporta los siguientes atributos de sustituci'n3 )NAME) especifica el nombre corto. )LIN,) especifica un enlace para esta entrada. )LONG_NAME) especifica el nombre largo.

0fter $ast

1efine el te*to a mostrar a continuaci'n de la Bltima entrada.

Template Attributes Para especificar un enlace a hyperte*t !para una entrada breadcrumb" utilizar Breadcrumb #inS Attributes. Para especificar el te*to a mostrar entre cada entrada utilizar Bet8een #evels. Por ejemplo3 4a!" X ca7s X 5/7sc(' X L== El atributo "ax #evels especifica la cantidad de ni#eles !de entradas" de los breadcrumb mostrados. Comments 6sar este atributo para registrar comentarios del desarrollador. 5utton /emplates $os templates de botones permiten a los desarrolladores castomizar como se #en los botones. Para crear un bot'n se pueden utilizar diferentes imgenes ' tambi-n tags ;/8$. El uso de templates para botones es opcional. Button Template Attributes 0qui se describe cada item de la 5utton /emplate page en forma detallada. -111-

Application Express User's Guide

Building an Application

Button Template Template ?ame identifica el nombre del template. 6sar el chec) bo* Translatable para indicar el template contiene te*to el cual requiere traducci'n. T0eme indica el tema del cual el template es un miembro. Template Class identifica un uso espec(fico para el template. .uando se cambia a un nue#o tema todos los templates de un tema son mapeados a los templates correspondientes del nue#o tema. 0pplication 5uilder logra este mapeo de template a tra#-s de la asignaci'n de una clase al template. Template /ubscription 6tilizar /emplate +ubscription para aplicar un template e*istente a la actual aplicaci'n. .uando se selecciona un template e*istente la aplicaci'n ser suscripta al template. Para cargar una nue#a copia del master template hacer clic) en Refresh. Template Text 1efine el te*to que muestra el bot'n. +e puede optar por incluir sustituciones en la forma estandar. Por ejemplo KI/E8D708E puede ser sustituido en tiempo de interpretaci'n. $os templates de botones soportan los siguientes strings de sustituci'n3 S$05E$S 's 7''45&a<a / c/" 8"a '$!68'$a ' 0/$Y". S$I7TS 's 7''45&a<a / c/" 8"a URL. La URL &8'#/ !"9/ca 8" )DOsUBMIT) Y &/ 7'4!$' a 8" Za9aS7!5$A '& c8a& s804!$' &a 5[#!"a ('s 'c!7A s'$'a '& 9a&/7 ' 7'$/7"/)A Y s!45&'4'"$' 7' !7'cc!/"a a& &a URL 57/9!s$a). Comments 6tilizar este atributo para registra los comentarios del desarrollador. .alendar /emplates $os templates de calendario controlan la apariencia y la ubicaci'n de un calendario. $os template de calendario frecuentemente utilizan tablas ;/8$ para disponer las fechas. +e setean atributos de calendario usando strings de sustituci'n tales como )DD) y )MONTH). 6na lista de los strings de sustituci'n soportados aparece sobre el lado derecho de la pgina de atributos. 7ote que los string de sustituci'n utilizados en el template deben ser con letra mayBscula y comenzar y terminar con un signo numeral !S". . %er tambi-n3 @.reating .alendars@ Calendar Template Attributes En esta secci'n se describen los detalles de la pgina del template de calendario. Calendar Template ,denti ication ?ame identifica el nombre del template. T0eme indica el tema del cual el template es miembro. Template Class identifica un uso espec(fico para el template. .uando se cambia a un nue#o tema todos los templates miembros del tema son mapeados a los templates correspondientes del nue#o tema. El 0pplication 5uilder logra esto mapeando los templates a tra#-s de la asignaci'n de clase a cada template. Template /ubscription ******** $abel /emplates

-112-

Application Express User's Guide

Building an Application

$ist /emplates Page /emplates Popup $O% /emplates Region /emplates Report /emplates Optimizing a Page for Printing 6sing .ustom .ascading +tyle +heets 8anaging Images 8anaging +tatic Qiles .reating a 8ultiple .olumn $ayout Rendering ;/8$ 6sing .ustom P$A+4$

-113-

You might also like