You are on page 1of 109

Application Express User's Guide Building an Application

Application Express User's Guide


Notas de la traducción: 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 títulos
con el fin de relacionar los párrafos con el texto original más rápidamente.Los hipervínculos de este documento
apuntan todos a un servidor Oracle xe que se supone corriendo en el equipo que se está consultado este documento.
Julio Valle

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 cálculo, crear modelos de páginas (plantillas), crear reportes, formularios, gráficos, calendarios,
navegar a una url, bloquear páginas que se están modificando (desarrollo en equipo), utilizar listas de valores
(LOV como las de form), implementar cortes de control, crear los formularios y reportes manualmente (además
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 servicio web. Por supuesto se pueden
validar y chequear los datos ingresados por el usuario en forma interactiva, mostrar mensajes de error, crear
páginas de ayuda para los items, crear gráficos de control de procesos que monitorean un sistema a intervalos
específicos en forma automática, crear botones de navegación, listas de selección, check box, popup,
calendarios, areas de texto, file browse (mostrar archivos ó documentos que están en disco), ocultar
elementos de la página, radio group, etc. Se puede incorporar JavaScript a las aplicaciones web, a través de
varias interfaces, sin sacrificar la comodidad de desarrollo. Crear LOV dependiente de los seleccionado en otra
LOV. Se puede enviar e-mail desde una aplicación. También se puede correr la aplicación en modo debug, es
decir viendo los valores que toman las variables en tiempo de ejecución.

Esta ayuda del sistema describe como usar el cliente Oracle Application Express conectado
a una base de datos Oracle Express Edition (Oracle Database XE).

Temas:

• Documentation Topics
• Audience
• Documentation Accessibility
• Related Documents
• Conventions

Documentation Topics

Los temas que se incluyen en esta ayuda son los siguientes:

Title Description
Quick Start Ofrece una rápida introducción al uso del cliente Oracle Application
Express con Oracle Database XE.
Running a Describe como ejecutar y modificar una aplicación de demostración
Demonstration con Application Builder.
Application
Application Builder Provee los conceptos básicos sobre Application Builder.
Concepts Utilice Application Builder para ensamblar interfaces HTML (ó
aplicaciones) a partir de los objetos de la base de datos tales
como tablas y procedimientos. (*)
Using Application Provee importante información sobre el uso de Application Builder
Builder para construir aplicaciones.
-1-
Application Express User's Guide Building an Application

Title Description
Building an Describe como utilizar Application Builder para construir una
Application aplicación y sus componentes. (*)
Controlling Page Describe diferentes métodos para refinar las interfaces de las
Layout and User aplicaciones de usuarios y el layout de las páginas incluyendo el
Interface refinamiento de las regiones, editando los atributos de los items,
refinando templates e incorporando CSS (cascading style sheets)
e imágenes. (*)
Adding Navigation Describe como implementar navegación a una aplicación utilizando
diferentes tipos de controles de navegación, incluyendo entradas en
las barras de navegación, tales como tabs, breadcrumbs, lists y trees.
Understanding Explica como gestionar el entorno de desarrollo de aplicaciones
Application incluyendo servicios, estados de cesión, preferencias de usuarios,
Administration archivos de log, modelos de aplicaciones, usuarios finales de
Application Express, actividad de desarrollo de las aplicaciones, y
explica como enviar email desde una aplicación.
Managing User Describe como usar la interface de usuario que viene por default para
Interface Defaults asignar propiedades a tablas columnas ó vistas.
Debugging an Describe la metodología para depurar las aplicaciones con Application
Application Builder, incluye modo Debug, modo SQL trace, visualizar páginas de
reportes y como remover manualmente un control ó un componente
para aislar el problema.
Deploying an Explica como implementar (instalar) una aplicación construida con
Application Application Builder.
Managing Describe como proveer seguridad a las aplicaciones desarrolladas con
Application Security Application Builder utilizando encriptación, protección del estado de la
sesión, autenticación y control de autorización.
Advanced Provee información acerca de técnicas avanzadas de programación
Programming tales como enlace de base de datos, utilización de tipos de datos
Techniques collections, ejecución de SQL en background, utilización de servicios
web, y gestión de las preferencias de los usuarios.
Managing Explica como traducir una aplicación construida con Application
Application Builder.
Globalization
Oracle Application Describe las APIs disponibles en Oracle Application Express.
Express APIs
Managing Database Describe como usar el Object Browser para mostrar, crear y editar
Objects with Object objetos de la base de datos Oracle Database Express Edition.
Browser
Building Queries with Explica como usar la interface gráfica del Query Builder’s para buscar
Query Builder y filtrar objetos de la base de datos, seleccionar objetos y columnas,
crear relaciones entre objetos, formatear las salidas de los query y
salvar los query.
Using SQL Scripts Provides information on how to use SQL Scripts to create, edit, view,
run, and delete script files.
Using SQL Explica como utilizar los comando SQL para crear, editar, ver, ejecutar
-2-
Application Express User's Guide Building an Application

Title Description
Commands y borrar comando sql.
Using SQL Utilities Describe como usar las herramientas de SQL para exportar e importar
datos desde la base de datos, generar DDL, ver reporte de objetos, y
restaurar objetos dropeados de la base de datos.
Administering the Describe como administra la base de datos Oracle Database XE.
Database

-3-
Application Express User's Guide Building an Application

Application Builder Concepts


Nota de la traducción: Son conceptos bajo los cuales se apoyara la herramienta de desarrollo. No describe los wizards
de desarrollo. Se traducen los titulos de este tema.
Julio Valle

Conceptos sobre Application Builder (AB)


Veremos conceptos sobre los cuales se describe el AB. Comenzamos por indicar que
se define como aplicación a una colección de páginas (Pages) enlazadas a través de Tags,
Buttons, ó enlaces de Hipertexto.

¿Qué es una página?


Una página es el elemento de construcción básico de una aplicación. Cuando se
construye una aplicación con AB se crean páginas que contienen elementos que interactuan
con el usuario, tales como Tabs, Listas, Buttons, Items y Regions.
Se pueden agregar controles a la página en su Page Definition. Para ver la Page
Definition de una página existente:
1. Navegar a la Database Home Page
2. Click sobre el icon Application Builder.
3. Seleccionar una aplicación existente.
4. Seleccionar una página.

La Page Definition se divide en tres partes (ó secciones lógicas):


1. Page Rendering. Lista los controles de la interface con el usuario y la lógica que se
ejecuta cuando la Page es interpretada. Véase "About Page Rendering Controls". .
2. Page Processing. Lista los controles de lógica (tales como cálculos y procesos) que
son evaluados y ejecutados cuando la página es procesada. Véase: "About Page
Processing Controls".
3. Share Components. Lista los componentes comunes que se pueden displayar o se
aplican sobre cada página dentro de la aplicación. Véase:"About Shared
Components". .

Ver también:

"About the Page Definition" and "Editing a Page Definition"

Descripción de “Page Processing” y “Page Rendering”

Al crear una aplicación con AB, se enlazan páginas usando tabs, buttons, o hipertext
links. Cada página puede tener botones é items y puede incluir la lógica de la aplicación.
Se puede bifurcar de una página a la próxima usando navegación condicional,
ejecución de cálculos, validaciones, y display de reports, calendarios y gráficos. Se pueden
generar reportes, gráficos y forms utilizando los wizards, escribiendo HTML estático, o
personalizando la generación con programación PL/SQL.

Temas:

• How the Application Express Engine Renders and Processes Pages


• Understanding Conditional Rendering and Processing
• Verifying User Identity
• Controlling Access to Controls and Components

-4-
Application Express User's Guide Building an Application

Describe como el motor del AB interpreta y procesa las páginas.

El motor del AB dinámicamente interpreta y procesa las páginas creadas a partir de


los datos guardados en las tablas de la base de datos Oracle. Para ver una página se envía
la petición al servicio de Application Express ( APPLICATION EXPRESS ). Cuando se
ejecuta una aplicación el servicio de Application Express se apoya en dos procesos:
Show Page: es el proceso que dibuja la página. Ensambla todos los atributos de la
página (incluye regiones, items y botones) en una página HTML.
Accept Page: ejecuta el procesamiento de la página. Ejecuta bifurcaciones, procesos
y cálculos.
Cuando se solicita una petición de página utilizando una url, el servicio ejecuta el
proceso Show Page. Cuando se submite (se acepta) una página, el servicio ejecuta el
proceso Accept Page, y ejecuta procesos de la página durante el cual salva los valores
submitidos en la cache de la sesión y ejecuta los procesos, validaciones y/o cálculos
correspondientes.

Descripción de “Page Processing” y “Page Rendering”

Una condición es una expresión lógica que permite controlar el display, en la página,
de botones, regiones, items y tabs como así también permite controlar la ejecución de
procesos, validaciones y cálculos. Por ejemplo, cuando se condiciona un botón, el
constructor de página evalua la condición durante el proceso Show Page. Dependiendo del
resultado de la evaluación de la condición, se mostrará, ó no, el botón.
Se 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 Condition
Type.
Depende del tipo de condición que se seleccione, serán los valores que son
apropiados ingresar como expresiones. La condición es evaluada a verdadero ó falso
basándose en la expresión especificada.
Nota: Si se usa una expresión de campo depende del tipo de condición seleccionado.
Algunos tipos de condiciones no necesitan valores en ninguno de los campos de la
condición. Otros solo necesitan valor en uno de los campos y otros requieren valores en los
dos campos. Aunque estos campos son etiquetados Expression1 y Expression2, no son
necesariamente expresiones en el sentido estricto. Ellos son simplemente valores
apropiados al tipo de condición.
Para ver un listado completo de las condiciones disponibles para un componente
(control) dado, click en el icono View a la derecha del listado de los tipos de condiciones.
Una lista rápida de las condiciones comúnmente usadas aparece debajo de la lista. Si la
condición requiere una expresión, se la debe ingresar en el campo apropiado.
La siguiente sección ofrece ejemplos de algunos tipos de condiciones, comúnmente
usadas.
Ver: Available Conditions para un listado detallado de los tipos de condiciones.

Current Page en la Expression1


Su valor es verdadero cuando el ID de la página actual está dentro de una lista
(delimitada por comas, en la expression1). Por Ej. 100 en la expression1, implica que la
condición se evalua como verdadera si el Id de la página actual es 100.

Exists (Sql query que retorna al menos un valor)


La condición es verdadera si la consulta retorna al menos 1 fila. Por ejemplo:

-5-
Application Express User's Guide Building an Application

Select 1 from emp where deptno = :P101_deptno

Este ej. Referencia al item P101_deptno como una variable bind. Se pueden utilizar
variables bind dentro de la aplicación y en las consultas sql para referenciar items de la
sesión.
Ver: "About Bind Variables"

PL/SQL Expression
Use pl/sql expression para expresiones pl/sql válidas evaluadas a verdadero / falso.
Por ej.
NVL(:MY_ITEM,’NO’) = ‘YES’

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
user/pass o bien un certificado digital o secure key.
Oracle Application Express Soporta autenticación modular, permitiendo cambiar
fácilmente el método de autenticación cuando se necesite. Se 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.
Ver: "Establishing User Identity Through Authentication" para más información.

Control de Acceso a los Componentes

Mientras las condiciones controlan la construcción y procesamiento de componentes


sobre una página, las autorizaciones sobre los esquemas controlan el acceso de los
usuarios a los datos. La autorización es para controlar el acceso a los recursos basado en
los privilegios del usuario (sobre los objetos de la base de datos).
El esquema de autorización extiende la seguridad al esquema de autenticación de la
aplicación. Se puede especificar un esquema de autorización, para una aplicación completa,
una página, o un componente de la página tal como una región, item, o botón. Por ejemplo:
se podría utilizar un esquema de autorización para seleccionar que botones (ó elementos de
navegación) puede el usuario ver en la página.
Ver: "Providing Security Through Authorization"

Noción de gestión de estado de la sesión

HTTP, el protocolo a través del cual se entregan las páginas HTML, es un estandar.
Un browser web está solamente conectado al servidor el tiempo que necesita para bajar la
página. Además, cada petición de página, es tratada por el servidor como un proceso
independiente, des-relacionado con peticiones anteriores o futuras de cualquier página. Esto
significa que los valores ingresados en una página, relacionados también con páginas
subsiguientes necesitan ser gestionados como valores de estado de la sesión. Típicamente
es el caso, cuando un usuario ingresa valores en una página, estos valores no son
accesibles en páginas subsiguientes. Oracle Application. Express, resuelve este problema,
manteniendo en forma transparente los valores de estado de la sesión y provee a los
desarrolladores la posibilidad de accederlos y actualizarlos desde cualquier página de la
aplicación (dentro de la sesión).

-6-
Application Express User's Guide Building an Application

Temas:

• What Is a Session?
• Understanding Session IDs
• Referencing Session State

¿Que es una sesión?

Una sesión es una construcción lógica que establece persistencia a través de las
páginas visitadas. Cada sesión tiene asignado un ID (identificador único). El motor del
Application Express utiliza este ID para guardar y recuperar el conjunto de datos
pertenecientes a la sesión que deben permanecer persistentes durante la misma.
Ya que las sesiones son totalmente independientes, pueden existir varias al mismo
tiempo. Además, debido a que las sesiones persisten en la DB hasta que el administrador
las purge, un usuario puede retornar a una sesión abierta con anterioridad, y continuar
utilizándola. Un usuario puede ejecutar múltiples instancias de una misma aplicación en
diferentes sesiones de un browser.
Las sesiones son lógica y físicamente distintas de las sesiones de base de datos
usadas para responder a la peticiones de las páginas. Un usuario ejecuta una aplicación en
una sola sesión, de Oracle Application Express, que va desde el login al logout, con una
duración típicamente medida en minutos u horas. Cada 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. A menudo estas sesiones de base de datos duran fracciones
de segundo.

Concepto de Session IDs

El servicio del Application Express establece la identidad del usuario para cada página
requerida y con el ID de la sesión recupera el estado de la sesión desde la base de datos. El
punto más visible del ID es la URL de la página requerida. Otra ubicación visible está en la
página HTML post e indirectamente en el contenido de una cookie de sesión. Esta cookie es
enviada por el servicio del Application Express durante la autenticación y se mantiene
durante viva la sesión del browser (ó la sesión de la aplicación), lo que sea más corto.
Oracle Application Express asigna un nuevo 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 página que se requiere a través de una URL o post
data con la cooki de la sesión y registra la sesión en la base de datos. Estos chequeos
proveen flexibilidad y seguridad.
Ya que el Id de la sesión es la clave del estado de la sesión, el cookie de la sesión
(donde se pueda aplicar) y el registro de la sesión salvaguardan la integridad del ID de la
sesión y del estado de autenticación del usuario.

Visualizar el estado de la sesión

El comportamiento de una aplicación se gestiona por los valores de los estados de la


sesión. Por ej. Puede mostrarse condicionado por el valor de un item de la sesión. Se
pueden ver los valores de los item de una sesión desde una página con click en “Session”

-7-
Application Express User's Guide Building an Application

Visualizar el estado de la sesión (Session State Page).

La página de “estado de sesión” provee información muy importante acerca del


estado de la sesión. Para localizar una página específica, ingrese el ID de la página en
campo Page y haga click en GO. A continuación se describe que información contiene.

Etiqueta Descripción
Application Muestra 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.
Page Items Muestra los atributos de los items de la página, incluye los id
de la aplicación y de la página, nombre del item, como se
displaya el item (oculto, popup, button, display solo del HTML),
el valor del item en la sesión y un Status. La columna Status
indica el estado de la sesión. Los valores posibles son:
I-Insert U-Updated R-Reset
Application Los application items son items que no residen en la page. Los
Items application items son variables de estado de sesión
desprovistos de las propiedades de la interface de usuario.
Véase también: "Creating an Application-Level Item" y "Using
Substitution Strings" para mayor información sobre referencias
a items.
Session State Resume el estado de la sesión con los datos actuales de la
sesión. Las listas de los Id de aplicación, los Id de página, los
nombres de los item, (tipo de display, valor, y etiquetas de
display).
Ver: "Managing Session State Values"

Gestión de los valores de estado de la sesión

Cuando el motor del Application Express interactua, intercambia datos con la


aplicación web, es importante conocer como acceder y gestionar los valores de estado de
sesión. En Oracle Application Express, el estado de la sesión se maneja automáticamente
para cada página y fácilmente referenciado en código HTML estático ó en controles de
lógica tales como validaciones y procesos.

Temas:

• Referencing Session State (Referenciar estado de la sesión)


• Setting Session State (Establecer valores del estado de la sesión)
• Clearing Session State (Resetear valores del estado de la sesión)
• About Bind Variables (Acerca de variables locales relacionadas a la sesión)

Ver: “Items” y “Referencing Item Values”

Referenciar Estados de Sesión

Referenciar el valor de un item es de uno de los ejemplos más comunes de


referencias de variables de estado de sesión. Un item puede ser un campo, un área de texto,

-8-
Application Express User's Guide Building an Application

una password, una select list ó una check box. En la siguiente tabla se describe la sintaxis
soportada para referenciar valores de las variables de sesión.

Sintaxis para referenciar variables de sesión.


Type Sintaxis Descripción
SQL :MY_ITEM Sintaxis de una variable bind común cuyo nombre
no excede los 30 caracteres. Use esta sintaxis para
hacer referencias dentro de consultas SQL y dentro
de código PL/SQL.
PL/SQL V(‘MY_ITEM’) Sintaxis PL/SQL para referenciar un item usando la
función V. Ver también: "Oracle Application Express
APIs"
PL/SQL NV(‘MY_NUMERIC_ITEM’) Sintaxis para referenciar un item numérico
utilizando la función NV. Ver también: "Oracle
Application Express APIs"
Statix text &MY_ITEM Sintaxis de texto. Variable de sustitución de texto.

Establecer variables de sesión.

Cuando un usuario acepta una página, el motor de APPLICATION EXPRESS .


automáticamente guarda los valores tipeados en los items de la sesión. Por ejemplo,
supongamos que una aplicación sencilla formada por dos páginas. La primer página de la
aplicación contiene un formulario en el cual el usuario puede ingresar un número de teléfono.
Se define el formulario y se crea un item denominado P2_PhoneNo. Sobre la segunda
página, se quiere displayar la información ingresada por el usuario en el primer formulario.
Cuando la página es aceptada, (la primera), Oracle Ap.Ex. captura el valor ingresado
para el número 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
página.

Resetear valores del estado de sesión.

En el desarrollo de la aplicación, a veces es útil inicializar los valores de algunos items


específicamente, de todos los items de una página ó de todas las páginas de la aplicación, ó
los de la actual sesión. Inicializar implica colocarles el valor null. En el punto siguiente se
ofrecen ejemplos específicos de inicialización:
Temas:

• Clearing Cache by Item


• Clearing Cache by Page
• Clearing Cache for an Entire Application
• Clearing Cache for the Current User Session

Clearing Cache by item


Inicializa la cache para un solo item colocando su valor a null. Por ej. se puede usar
este método para asegurar que un item tiene el valor null al ser preparada para ser
interpretada por el explorador.
El siguiente ej. usa la sintaxis estandar f?p para inicializar la cache para un item. Por
ejemplo la página denominada 5 de la aplicación 100. Ubicando MY_ITEM en la ClearCache
de la sintaxis f?p resetea el valor de MY_ITEM a null.

-9-
Application Express User's Guide Building an Application

f?p=100:5:&SESSION.::NO:MY_ITEM

El siguiente ejemplo resetea el valor del item THE_EMPNO y THE_DEPNO.

f?p=100:5:&SESSION.::NO:THE_EMPNO,THE_DEPTNO

Clearing Cache by Page


Cachear los item de la aplicación es una forma efectiva de mantener el estado de la
sesión. Sin embargo, hay ocasiones en que se quiere limpiar la cache para todos los item de
la página. Por ejemplo, supóngase que se necesita limpiar todos los campos de una página
cuando se hace click en la opción de crear una nueva orden. Limpiando la cache de la
página entera, se colocan todos los valores de todos los items de la página a null.

Clearing Session Cache para dos páginas y resetear la paginación.


Este ejemplo limpia la cache de la sesión para dos página y resetea la paginación.

f?p=6000:6003:&SESSION.::NO:RP,6004,6014

Este ejemplo :
• Ejecuta la página 6003 de la aplicación 6000 y utiliza la sesión actual (id de la
sesión corriente)
• Indica que no se muestra información de depuración (NO).
• Limpia todos los valores que se mantienen en la actual cache de la sesión para
los items de las páginas 6004 y 6014.
• Resetea la variable de paginación (RP) en la Page 6003 (la página solicitada).
Ver:"Controlling Report Pagination"

Clearing Session Cache de una Page y le pasa un valor a un item.


Este ejemplo muestra como implementar una actualización de formulario. Limpia la
información existente y setea el valor de un item (generalmente se setea la clave primaria).

f?p=6000:6003:&SESSION.::NO:6003:MY_ITEM:1234

Este ejemplo:
• Ejecuta la página 6003 de la aplicación 6000 de la actual sesión.
• Indica que no se muestra información de depuración. (NO).
• Limpia todos los valores mantenidos en la cache de la página 6003 de la
sesión actual.
• Setea el item de la sesión actual denominado MY_ITEM al valor 1234.

Clearing Session Cache de una Page e inicializa varios items.


Este ejemplo es similar al anterior, excepto en que pasa varios items.

f?p=6000:6004:&SESSION.::NO:6003:MY_ITEM1:MY_ITEM2,MY_ITEM3:1234,,5678

Este ejemplo:
• Ejecuta la pagina 6004 de la aplicación 6000 de la actual sesión.
• Limpia la cache de todos los items de la página 6003.
• Indica que se oculta la información de debug.

-10-
Application Express User's Guide Building an Application

• Setea los valores: MY_ITEM a 1234, MY_ITEM2 a null (indicado por la coma
utilizada sin valor previo), e indica que MY_ITEM3 se inicialice a 5678.

Clearing Cache para una aplicación completa.


Se puede limpiar la cache de una aplicación completa utilizando la sintaxis f?p y
creando un argumento Clear Cache utilizando la palabra clave APP. Por ejemplo:

f?p=App:Page:Session::NO:APP

Nota: 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 cálculos ó procesos (código)
en el evento on-new instance de la aplicación, el motor del Ap.Ex. ejecuta solo esos
cálculos y procesos (código) cuando la sesión de la aplicación es creada. Luego ejecuta el
proceso de limpiar la cache y displayar la página requerida.
La única forma de resetear una aplicación completamente, sin el ID de la sesión, es
peticionarla utilizando una URL sin ID de sesión, ó bien llamando al método
HTMLDB_APPLICATION.CLEAR_APP_CACHE desde otra aplicación. Si embargo, si el ID es
registrado en el cliente utilizando una cookie, necesitará un logout para resetear el estado.

Clearing Cache para la sesión del usuario conectado.


Otro método para limpiar la cache de una aplicación es crear un argumento Clear
Cache utilizando la keyword SESSION. Por ejemplo:

f?p=6000:6004:12507785108488427528::NO:SESSION

Variables Relacionadas (Bind)

Se pueden utilizar variables en el código de la aplicación ó consultas SQL que hagan


referencia a items específicos de la sesión. Por ejemplo

SELECT * FROM emp WHERE name like '%' || :SEARCH_STRING || '%'

En este ejemplo, el string de búsqueda es un item de la página. Si el tipo de región se


define como SQL Query, se puede referenciar el valor utilizando la sintaxis estandar de
SQL. Utilizando variables aseguramos que la representación parseada de la consulta SQL
sea reutilizada por la base de datos, optimizando la utilización de la memoria del servidor.
Recordar las siguientes reglas cuando se definan y utilicen variables bind.
• Deben corresponder a un nombre de item.
• No son sensibles a las mayúsculas/minúsculas.
• El nombre puede tener hasta 30 caracteres (valid Oracle identifier).

Aunque los nombres de item de aplicación y de página pueden tener hasta 255
caracteres, si se desea usar un item dentro de la sintaxis de SQL, el nombre del item solo
puede tener hasta 30 caracteres.

Uso de variables en tipos Regions sobre una consulta SQL ó LOV.


Si el tipo de una variable Región es SQL Query, (las funciones pl/sql retornan SQL
Query), ó LOV (lista de valores), se pueden referenciar con la siguiente sintaxis.

:MY_ITEM

-11-
Application Express User's Guide Building an Application

Una forma sencilla de hacer esto es incorporar una variable de sesión en la cláusula
where. El siguiente ejemplo muestra como enlazar el valor del item THE_DEPTNO a una
región definida como SQL Query.

SELECT ename, job, sal


FROM emp
WHERE deptno = :THE_DEPTNO

Ver: "Customizing Regions" para ver información acerca de la creación de regiones.

Uso de variables (bind) en procedimientos PL/SQL


Para tipos region tales como un procedimiento PL/Sql, las regiones son construidas
usando un formato de bloque anónimo. En otras palabras, el comienzo y fin son agregados
automáticamente al código PL/SQL. Por ejemplo:

INSERT INTO emp (empno, ename, job)


VALUES (:P1_empno, :P1_name, :P1_job);

En este ejemplo, los valores de empno, ename, y job son reemplazados por
P1_empno, P1_name y P1_job.

Noción de la sintaxis URL

Cada aplicación tiene un numero (denominado ID de la aplicación) que la identifica


unívocamente. De forma similar, cada página tiene un número único (el ID de la página). Las
aplicaciones y las páginas podrían tener también alias alfanuméricos. Los alias
alfanuméricos son únicos dentro de un esquema de base de datos pero los alias de páginas
son únicos dentro de cada aplicación. Cuando se ejecuta una aplicación el motor de Ap. Ex
genera un número de sesión que sirve como clave para la sesión del usuario.
Temas:

• Understanding the URL that Displays for a Page


• Using f?p Syntax to Link Pages
• Calling a Page Using an Application and Page Alias
• Calling a Page from a Button URL

URL que se muestra para cada página.

La URL que muestra cada pantalla le indica la ubicación a Oracle Application


Express e identifica: la dirección la dirección de Oracle Application Express, el ID de la
aplicación, el ID de la página, y el ID de la sesión: Por ejemplo:

http://apex.oracle.com/pls/apex/f?p=4350:1:220883407765693447

Este ejemplo indica:


• apex.oracle.com es la URL del servidor.
• pls es el indicador que usa el cartridge mod_plsql.
• apex es el nombre del descriptor de acceso de base de datos (DAD). El
DAD describe como el servidor de http se conecta al servidor de base de
datos así este puede completar la petición http. El valor por default es apex.
• F?p= es un prefijo usado por Oracle Application Express.
-12-
Application Express User's Guide Building an Application

• 4350 es la aplicación llamada.


• 1 es la página de la aplicación a displayar.
• 220883407765693447 es el número de sesión.

Ver: "About Publishing the Application URL"

Enlace de páginas con el string f?p

Se pueden crear links entre páginas en la aplicación usando la sintaxis:

f?p=App:Page:Session:Request:Debug:ClearCache:itemNames
:itemValues:PrinterFriendly

Table: f?p Syntax Arguments Sintáxis de los argumentos que se pueden pasar con f?p.

Argumento Descripción
App Id de la aplicación ó su alias.
Page Id de la página ó su alias.
Session Id de la sesión. Se puede referenciar un id de sesión para crear un link (de
hypertext) a otras páginas que mantienen el mismo estado de la sesión
mediante el pasaje del numero de sesión. Se puede referenciar el ID de
sesión utilizando la siguiente sintaxis:
• String de sustitución: &SESSION
• Pl/SQL: v(‘SESSION’)
• Variable: :APP_SESSION
Request Setea el valor de REQUEST. Cada botón de la aplicación setea el valor de
REQUEST con el nombre del botón. Esto permite aceptar procesos que
hacen referencias al botón que el usuario lo cliqueo. Se puede referenciar a
REQUEST con la siguiente sintaxis:
String de sustitución: &REQUEST
PL/SQL: V(‘REQUEST’)
Variable: :REQUEST
Debug Muestra detalles del procesamiento de la aplicación. Los valores válidos
para la bandera DEBUG son YES ó NO. Setee esta bandera a YES para
displayar detalles acerca del proceso. Se puede referenciar a la bandera de
DEBUG utilizando la siguiente sintaxis:
• String de sustitución: &DEBUG
• PL/SQL: V(‘DEBUG’)
• Variable: :DEBUG
ClearCache Limpia la cache. Esto setea el valor de los items a null.
Para limpiar los item de la cache de una sola página, se debe especificar el
ID de la página. Para limpiar los items cacheados de varias páginas, se
listan separados por comas los ID de página. Limpiar una cache de una
página también resetea cualquier proceso de la página. Se pueden incluir
valores de items individuales separados por coma ó nombres de colección ó
la palabra clave RP, la que cual resetea el numerador de páginas de la
región de la página requerida. La palabra clave APP limpia la cache de
todas las páginas y de todos los items de la aplicación y remueve las
preferencias de orden del usuario conectado. La palabra clave SESSION
logra el mismo resultado que APP pero solo limpia los items asociados a la
aplicación de la sesión actual.
-13-
Application Express User's Guide Building an Application

ItemNames Lista delimitada por comas de nombres de items para setear el estado de la
sesión en una URL.
ItemValues Lista de los valores de los items para setear la sesión en una url. Los items
no pueden incluir punto y coma, pero pueden incluir comas si están entre
barras \. Por ej: \123,25\
PrinterFriendly Determina si la página está siendo interpretada (levantada, mostrada) en
modo PrinterFriendly. Si PrinterFriendly está seteado a YES, la página se
muestra en modo PrinterFriendly. El valor de PrinterFriendly puede ser
usado para condicionar la interpretación de la página para remover
elementos tales como regiones de la página para optimizar la salida
impresa. Se puede referenciar esta bandera utilizando la siguiente sintaxis:
V(‘PRINTER_FRIENDLY’)

Aunque es importante comprender como trabaja la sintaxis de f?p, rara vez


tendremos que redactarla nosotros mismos. El Ap Builder incluye varios wizards que
automáticamente crean estas referencias. La siguiente sección describe casos específicos
en que se utiliza el enlace de páginas con f?p.

Invocar una Página utilizando alias de aplicación y de página

Los alias de aplicación y páginas deben ser identificadores Oracle válidos, no


pueden contener espacios en blanco, y no son sensibles a las mayúsculas. El siguiente
ejemplo invoca una página utilizando alias desde adentro de una aplicación. Este ejecuta la
página home de la aplicación myapp y utiliza el ID de la sesión actual.

f?p=myapp:home:&SESSION

Los alias de aplicación deben ser únicos dentro del esquema del usuario. Si 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 ejemplo:

f?p=common_alias:home:&session.&c=WORKSPACE_A

Invocando una página desde un botón con una url

Cuando se crea un botón, se puede especificar una URL para re-direccionar la


navegación cuando el usuario haga click en el botón. Este ejemplo ejecuta la página 6001 de
la aplicación 6000 utilizando la sesión actual.

f?p=6000:6001:&SESSION.

Nótese que esto es solo un método para usar un botón. Este método bypasea
submitir la página y actúa como un hyperlink a otra página. Otro método es submitir primero
la página. En esta última forma, clikeando el botón que submite la página para procesarla,
permite al formulario ser submitido y que el estado de la sesión sea guardado.

Ver: "Creating Buttons"

-14-
Application Express User's Guide Building an Application

Utilización de Strings de sustitución.

Se pueden usar strings de sustitución dentro de un templeate de página ó región


para reemplazar un carácter string por un valor. Al diseñar la aplicación y permitir a los
usuarios editar los items, se necesita sustituir strings a fin de pasar la información.
Se puede utilizar sustitución de string de la siguientes formas:
• Incluir un string de sustitución dentro de un template.
• Referenciar un item ó página usando la sintaxis &ITEM.
• Usar un string de sustitución para lograr una funcionalidad específica.
Los strings de sustitución usado dentro de un template son delimitado por “#”. Por
ejemplo:

#ABC#

Para referenciar items de páginas ó aplicación usar variables de sustitución:


1. Preceder el nombre del item con un ampersand (&).
2. Agregar un punto al nombre del item.

Por ejemplo, se podría hacer referencia a un item de aplicación denominado


F101_X en una región HTML, en un titulo, en una etiqueta ó en cualquier otro contexto, así:

&F101_X.

Notar que se requiere el punto final. Cuando la página es interpretada, el motor del
App.Exp reemplaza el string de sustitución por el valor del item F101_X

-15-
Application Express User's Guide Building an Application

Strings de sustitución predefinidos.

Application builder soporta un conjunto de string de sustitución predefinidos. Pueden


ser necesarios para referenciar valores con el fin de lograr una funcionalidad específica.
Las siguientes secciones describe estos strings de sustitución, cuando conviene
usarlos y la sintaxis. Notar que la variable :USER tiene un significado especial dentro de la
base de datos.

Temas:

• APP_ALIAS
• APP_ID
• APP_IMAGES
• APP_PAGE_ID
• APP_SESSION
• APP_UNIQUE_PAGE_ID
• APP_USER
• AUTHENTICATED_URL_PREFIX
• BROWSER_LANGUAGE
• CURRENT_PARENT_TAB_TEXT
• DEBUG
• HOME_LINK
• LOGIN_URL
• IMAGE_PREFIX
• Application Express SCHEMA OWNER
• PRINTER_FRIENDLY
• LOGOUT_URL
• PROXY_SERVER
• PUBLIC_URL_PREFIX
• REQUEST
• SQLERRM
• SYSDATE_YYYYMMDD
• WORKSPACE_IMAGES

Ver también:
"Substitutions" Acerca de la definición de string de sustitución estáticos tales como un
atributo de la aplicación.
"Establishing User Identity Through Authentication" identificación de usuario a través de
autenticación.

APP_ALIAS
App_alias (alfanumérico) con el nombre de la aplicación actual. App_alias es
diferente de App_Id, ya que App_id debe ser único en todos los esquemas y en todas las
aplicaciones residentes en una base de datos. En contraste, App_alias requiere que sea
único solo dentro del esquema al que pertenece. Se puede utilizar App_alias en cualquier
lugar que se pueda utilizar App_id. Por ejemplo, en la sintaxis f?p se puede usar un
app_alias ó un id de aplicación como se muestra en el ejemplo siguiente:

f?p=ABC:1:&SESSION.

Este ejemplo ejecuta en la actual sesión, la página 1 de la aplicación ABC.

-16-
Application Express User's Guide Building an Application

Sintaxis de: APP_ALIAS.


Reference Type Syntax
Bind variable :APP_ALIAS
PL/SQL V('APP_ALIAS')
Substitution string &APP_ALIAS.

El siguiente es un ejemplo HTML:

Click me to go to page 1 <a href="f?p=&APP_ALIAS.:1:&SESSION.">


of the current application</a>

APP_ID
App_id identifica la aplicación que se está ejecutando.

Sintaxis de: APP_ID


Reference Type Syntax
Bind variable :APP_ID
Direct PL/SQL HTMLDB_APPLICATION.G_FLOW_ID (A NUMBER)
PL/SQL NV('APP_ID')
Substitution string &APP_ID.

El siguiente es un ejemplo de una referencia a un string de sustitución:

f?p=&APP_ID.:40:&SESSION.

APP_IMAGES
Utilizar este string para referenciar imágenes importadas, Java Script, y cascading
style sheets (CSS) que son para una aplicación dada y no son compartidos con otras
aplicaciones. Si se importa un archivo y se lo hace específico de la aplicación, luego se
debe utilizar este string de sustitución.

Sintáxis de: APP_IMAGES


Reference Type Syntax
Bind variable :APP_IMAGES
Direct PL/SQL Not available.
PL/SQL V('APP_IMAGES')
Substitution string &APP_IMAGES.
Template substitution #APP_IMAGES#
Ver: "IMAGE_PREFIX", "WORKSPACE_IMAGES", y "Managing Images"

APP_PAGE_ID
App_page_id es el id de la página de la aplicación actual. Por ejemplo, si la
aplicación está en la página 3, debe responder con 3. Es útil utilizar esta sintaxis cuando se
desea escribir componentes de aplicaciones que necesitan trabajar en múltiples
aplicaciones.
Sintaxis de: app_page_id
-17-
Application Express User's Guide Building an Application

Reference Type Syntax


Bind variable :APP_PAGE_ID
Direct PL/SQL HTMLDB_APPLICATION.G_FLOW_STEP_ID (A NUMBER)
Direct PL/SQL :APP_PAGE_ID
PL/SQL NV('APP_PAGE_ID')
Substitution string &APP_PAGE_ID.

Ejemplo de sustitución:
f?p=&APP_ID.:&APP_PAGE_ID.:&SESSION.

APP_SESSION
App_session es uno de los strings de sustitución más usados. Se puede utilizar
para crear enlaces de hipertexto entre páginas de aplicaciones que mantienen el estado de
una sesión pasándole el número de sesión.
Sintaxis de app_session
Reference Type Syntax
Bind variable :APP_SESSION
PL/SQL V('APP_SESSION')
Short PL/SQL V('SESSION')
Short substitution string &SESSION.
Substitution string &APP_SESSION.

Consideremos el siguiente ejemplo:


• Desde adentro de una región HTML:
<a href="f?p=100:5:&SESSION.">click me</a>
• Utilizando Pl/Sql:
htf.anchor('f?p=100:5:'||V('SESSION'),'click me');
• En una consulta sql query:
SELECT htf.anchor('f?p=100:5:'||:app_session,'clickme') FROM DUAL;

APP_UNIQUE_PAGE_ID
App_unique_page_id es un entero generado por una secuencia Oracle el cual es
único para cada página presentada. Este número es utilizado por las aplicaciones para
prevenir submitir (aceptar procesar) páginas duplicadas y puede ser usado para otros
propósitos. Por ejemplo, si tu quieres obtener una URL única para evitar que el browser
guarde en la cache, se puede embeber (incrustar) este numero en la respuesta ó columna
de debug en el llamado al procedimiento f.
Sintaxis de app_unique_page_id
Reference Type Syntax
Bind variable :APP_UNIQUE_PAGE_ID
PL/SQL V('APP_UNIQUE_PAGE_ID')
Substitution string &APP_UNIQUE_PAGE_ID.

El siguiente ejemplo es un HTML:


SELECT 'f?p=100:1:'||:APP_SESSION||':'||

-18-
Application Express User's Guide Building an Application

:APP_UNIQUE_PAGE_ID||
':::P1_EMPNO:'||empno, ename, job
FROM emp

Notar el uso de la columna APP_UNIQUE_PAGE_ID en la respuesta. Esto hace


que esta URL sea única y evita el problema de cacheo excesivo del browser.

APP_USER
App_user es el usuario actual que está ejecutando la aplicación. Dependiendo de la
modalidad de autenticación, tiene valores que pertenecen a diferentes conjuntos. Si la
aplicación se ejecuta autenticando contra la base de datos, el valor del usuario es el mismo
que el USER de la base de datos. Si la aplicación utiliza un esquema de autenticación contra
el cual se autentica tendrá el user dado durante la autenticación.

Sintaxis de App_user
Reference Type Syntax
Bind variable :APP_USER
PL/SQL V('APP_USER')
Short PL/SQL V('USER')
Substitution string &USER.

Considere los siguientes ejemplos.


En una region HTML.
Hello you are logged in as &USER.
En un código Pl/sql
htp.p(‘Hello you are logged in as’||V(‘USER’));
Como una variable
SELECT * FROM some_table WHERE user_id = :app_user
Ver: "Authentication" para mayor información acerca del atributo Public User

AUTHENTICATED_URL_PREFIX
Este atributo, a nivel de aplicación, identifica un prefijo autenticado válido (es decir,
un prefijo Url de una sesión iniciada). Se puede usar un path relativo o full comenzando con
http. Este item es útil si tu aplicación puede ser ejecutada en ambos modos: autenticado (log
in) y público ( sin log in). Se puede usar authenticated_url_prefix para construir un link a una
página autenticada. Este item es más útil cuando se usa autenticación básica contra la base
de datos porque los cambios a la URL pueden requerir autenticación.

Sintaxis de authenticated_url_prefix
Reference Type Syntax
Bind variable :AUTHENTICATED_URL_PREFIX
PL/SQL V('AUTHENTICATED_URL_PREFIX')
Substitution string &AUTHENTICATED_URL_PREFIX.

-19-
Application Express User's Guide Building an Application

BROWSER_LANGUAGE
Referencia a la preferencia del lenguaje del browser actual.

Sintaxis de browser_language
Reference Type Syntax
Bind variable :BROWSER_LANGUAGE
Direct PL/SQL HTMLDB_APPLICATION.G_BROWSER_LANGUAGE
PL/SQL V('BROWSER_LANGUAGE')
Substitution string :BROWSER_LANGUAGE.
Substitution string &BROWSER_LANGUAGE.

CURRENT_PARENT_TAB_TEXT
Es el más utilizado en los template de páginas, pero es solo relevante para
aplicaciones que tienen dos niveles de tab (es decir, los tab parent y standard). Sirve para
referenciar a la etiqueta del tab parent. Permite repetir el tab parent actualmente
seleccionado dentro del template de la página.

Sintaxis de current_parent_tab_text
Reference Type Syntax
Bind variable Not Available.
Substitution string &CURRENT_PARENT_TAB_TEXT.

DEBUG
Los valores válidos para la bandera de debug son Yes ó No. Activando debug se
muestran los detalles del proceso de la aplicación. Si se escribe código y se desea ver el
debug la única forma es setear el modo debug a yes.

Sintaxis de debug
Reference Type Syntax
Bind variable :DEBUG
Direct PL/SQL HTMLDB_APPLICATION.G_DEBUG
PL/SQL V('DEBUG')
Substitution string &DEBUG.

Por ejemplo: f?p=100:1:&SESSION.::&DEBUG

HOME_LINK
Es la página inicial de la aplicación. El motor del App.Exp apuntará a esta ubicación
si no se especifica una página y si no se define una página alternativa por medio la lógica del
esquema de autenticación. Se define el Home_Link como un atributo de la página.

Sintaxis de home_link
Reference Type Syntax
Direct PL/SQL HTMLDB_APPLICATION.G_HOME_LINK
PL/SQL V('HOME_LINK')
-20-
Application Express User's Guide Building an Application

Reference Type Syntax


Template Reference #HOME_LINK#
Substitution String &HOME_LINK.

Ver: "Authentication" para mayor información sobre el atributo home link.

LOGIN_URL
Sirve para displayar un link a la página de login para usuarios que no están
actualmente logueados.

Sintaxis de login_url
Reference Type Syntax
Bind variable :LOGIN_URL
Direct PL/SQL HTMLDB_APPLICATION.G_LOGIN_URL
PL/SQL V('LOGIN_URL')
Substitution string &LOGIN_URL.
Template Substitution #LOGIN_URL#

IMAGE_PREFIX
Determina un path virtual al servidor web usado para apuntar al directorio de
imágenes distribuidas con Oracle Application Express. Si se desea referenciar imágenes
importadas utilizar WORKSPACE_IMAGES y APP_IMAGES.
Ver: "APP_IMAGES","WORKSPACE_IMAGES", y "Configuring Standard Application Attributes"

Sintaxis de image_prefix
Reference Type Syntax
Bind variable :IMAGE_PREFIX
Direct PL/SQL HTMLDB_APPLICATION.G_IMAGE_PREFIX
PL/SQL V('IMAGE_PREFIX')
Substitution string &IMAGE_PREFIX.
Template Substitution #IMAGE_PREFIX#

APPLICATION EXPRESS SHEMA OWNER


Si se están generando llamados a aplicaciones desde dentro de código pl/sql,
podría ser necesario referenciar al propietario del esquema de Oracle Application Express.
Seguidamente se describe la correcta sintaxis para referencia directa Pl/Sql.

HTMLDB_APPLICATION.G_FLOW_SCHEMA_OWNER

También se podría usar #FLOW_OWNER# para referenciar este valor en las


consultas SQL y PL/SQL (por ejemplo, en una región ó en un procesos)

PRINTER_FRIENDLY
El valor de PRINTER_FRIENDLY determina si el motor de Ap.Ex se ejecuta en
modo visualización. Este setting puede ser referenciado en los condicionales para eliminar
elementos no deseados en una página impresa.
-21-
Application Express User's Guide Building an Application

Sintaxis de printer_friendly
Reference Type Syntax
Direct PL/SQL HTMLDB_APPLICATION.G_PRINTER_FRIENDLY (VARCHAR2
DATATYPE)
PL/SQL V('PRINTER_FRIENDLY')
Substitution &PRINTER_FRIENDLY.
string

LOGOUT_URL
Es un atributo a nivel de aplicación usado para identificar la URL de logout. Esta es
la URL a la que navega para la página de logout u opcionalmente directamente desconecta
al usuario. Para crear una entrada logout en la barra de navegación, se adiciona un punto a
&LOGOUT_URL. Si se está codificando una página template, utilizar #logout_url#. (notar
el punto final).

Sintaxis de logout_url
Reference Type Syntax
Bind variable :LOGOUT_URL
PL/SQL V('LOGOUT_URL')
Substitution string &LOGOUT_URL.
Template substitution #LOGOUT_URL#

PROXY_SERVER
Proxy_server es un atributo de la aplicación. El atributo puede ser usado por
regiones cuyos fuentes se originan desde una url. Seguidamente la sintaxis correcta para
una referencia pl/sql directa usada cuando están escribiendo pl/sql para acceder a un
servidor web remoto desde adentro de la base de datos (por ejemplo, cuando usamos el
paquete utl_http despachado con la base de datos).

HTMLDB_APPLICATION.G_PROXY_SERVER

PUBLIC_URL_PREFIX
Es un atributo a nivel de aplicación que identifica la URL para salir de modo logged
a una vista pública.

Sintaxis de public_url_prefix
Reference Type Syntax
Bind variable :PUBLIC_URL_PREFIX
PL/SQL V('PUBLIC_URL_PREFIX')
Substitution string &PUBLIC_URL_PREFIX.
Template substitution #PUBLIC_URL_PREFIX#

REQUEST
Cada botón de la aplicación setea el valor de REQUEST al nombre del botón ó al
valor del atributo REQUEST asociado al botón. Esto permite procesar aceptaciones que

-22-
Application Express User's Guide Building an Application

referencian el nombre del botón cuando un usuario lo clickea. In la sintaxis f?p se puede
setear request utilizando el cuarto parámetro.

Referencias al valor de REQUEST

Request es típicamente referenciado durante el proceso de aceptación (es decir, el


proceso que ocurre cuando se envía una página del cliente al servidor).

Sintaxis de Request
Reference Type Syntax
Bind variable :REQUEST
Direct PL/SQL HTMLDB_APPLICATION.G_REQUEST
PL/SQL V('REQUEST')
Substitution string &REQUEST

&REQUEST. (exact syntax match)

Alcance y valor de REQUEST para páginas enviadas.


Cuando se envía una página, se inicia un proceso de Aceptación. Este proceso de
aceptación consiste de cálculos, validaciones, subprocesos, y bifurcaciones. El valor de
REQUEST está disponible durante cada fase del proceso de aceptación. Una vez que la
aplicación bifurca a una página diferente se setea el valor de request a NULL.
El valor de REQUEST es el nombre del botón que el usuario clikqueo, ó el nombre
del tab elegido por el usuario. Por ejemplo, supóngase que tiene un botón con el nombre de
CHANGE, y una etiqueta Apply Change. Cuando el usuario clickquea el botón, el valor de
REQUEST será CHANGE.

Referencias REQUEST utilizando condiciones.


Es común referenciar REQUEST en los condicionales. Por ejemplo, si se desea
resetear la paginación cuando el usuario hace clicks en Go a una página del report. Se
puede resetear la paginación al crear un proceso de aceptación de pagina. El proceso de la
página puede ser condicionado usando
Request = Expression 1.

Para crear un “on-submit page process”:


1. Mediante Condition, seleccionar el tipo de condición Request = Expression1.
2. En Expression 1, ingresar GO.

Uso de REQUEST al mostrar procesos.


Se puede usar REQUEST para mostrar procesos cuando se navega a una página
usando la sintaxis f?p. Por ejemplo:

f?p=100:1:&SESSION.:GO

Recuerde que el cuarto argumento en la sintaxis f?p es REQUEST. Este ejemplo


dirige hacia la aplicación 100, página 1 para la sesión actual, y setea el valor de REQUEST
al valor GO. Cualquier proceso ó región puede referenciar el valor de REQUEST utilizando
mostrar proceso (Show processing).
El siguiente es un ejemplo similar pero utilizando PL/SQL:
IF V ('REQUEST') = 'GO' THEN
htp.p('hello');
-23-
Application Express User's Guide Building an Application

END IF;

Notar que htp.p('hello') es un call a un pl/sql del paquete Web Toolkit para salida impresa
del string especificado.
Ver también:
Oracle Database Application Developer's Guide - Fundamentals for information about
developing Web applications with PL/SQL
Oracle Database PL/SQL Packages and Types Reference for information about htp
packages

SQLERRM
Es un templete de sustitución solo disponible en la Region de mensajes de error de
la aplicación.

#SQLERRM#

SYSDATE_YYYYMMDD
Representa la fecha actual sobre el servidor de base de datos, con el formato
yyyymmdd. Se puede utilizar en lugar de invocar llamados a la función SYSDATE().

Sintaxis de sysdate_yyyymmdd

Bind variable
:SYSDATE_YYYYMMDD

PL/SQL
V('SYSDATE_YYYYMMDD')

Direct PL/SQL
HTMLDB_APPLICATION.G_SYSDATE (DATE DATATYPE)

Reference Type Syntax


Bind variable :SYSDATE_YYYYMMDD
Direct PL/SQL HTMLDB_APPLICATION.G_SYSDATE (DATE DATATYPE)
PL/SQL V('SYSDATE_YYYYMMDD')

WORKSPACE_IMAGES
Utilice este string de sustitución para referenciar imágenes importadas, Java Script,
y hojas de conexión en cascada del estilo que son compartidas con muchas aplicaciones
dentro de un workspace (o esquema de base de datos).

Sintaxis de worksapce_images
Reference Type Syntax
Bind variable :WORKSPACE_IMAGES
Direct PL/SQL Not available
PL/SQL V('WORKSPACE_IMAGES')
Substitution string &WORKSPACE_IMAGES.
Template substitution #WORKSPACE_IMAGES#
Ver: "APP_IMAGES" y "IMAGE_PREFIX"
-24-
Application Express User's Guide Building an Application

Building an Application
Nota de la traducción: La traducción avanzó hasta Creating Buttons.
Julio Valle

Aquí 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
páginas como así también componentes (reports, gráficos ó form) controles de página
(botones, items, listas de valores ) y componentes compartidos (menus, lists, ó tabs).

Topics:

• Creating an Application
• Adding Pages to an Application
• Creating Reports
• Creating Forms
• Creating Calendars
• Creating Charts
• Creating Buttons
• Creating Items
• Creating Lists of Values
• Using Shortcuts
• Incorporating JavaScript into an Application
• Creating Dependent Select Lists
• Creating a Help Page

Ver también:

• "Using Application Builder"


• "Controlling Page Layout and User Interface"
• "Adding Navigation"

Creating an Application

Una aplicación es una colección de páginas las cuales comparten un estado de


sesión común y la autenticación. Se puede crear una aplicación utilizando el wizard. Se
puede deletear una aplicación desde la home page del builder.

Topics:

• About Creating an Application Using a Wizard


• About the Create Application Wizard
• About the Create Application from Spreadsheet Wizard
• About Demonstration Applications
• Deleting an Application

About Creating an Application Using a Wizard

Cuando se hace click en “CREATE” en la home page, se propone:


Create application Permite crear una consulta a partir de queries SQL ó de tablas de
la base de datos..
-25-
Application Express User's Guide Building an Application

Create Application from Spreadsheet. Permite crear una aplicación basada en una
hoja de cálculo. Se puede subir ó pegar una hoja de cálculos 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.
Ver también: "About the Create Application from Spreadsheet Wizard".
Demonstration Application. Instala / Desinstala aplicaciones demo. Sirve para
aprender a construir aplicaciones. Ver tambien "About Demonstration Applications".

Ver también: "Adding Pages to an Application" for information about adding


reports and forms by creating a new page.

About the Create Application Wizard.

El wizard permite crear una aplicación funcional completa a partir de cualquier número
de tablas. Se pueden crear páginas en blanco ó páginas basadas en queries SQL ó sobre
tablas de la base de datos. Se puede crear consultas SQL escribiendo la select
(manualmente) ó bien utilizando la interface gráfica del Query Builder. Las aplicaciones
basadas sobre tablas pueden consistir de un simple report, un form y un report, ó un form
tabular. Cuando se crean páginas sobre tablas, se tiene la opción de generar páginas de
análisis. Las páginas de análisis extienden un report simple (ó un reporto sobre un form)
para incluir múltiples drill-down reports y gráficos.
Ver también: "Building Queries with Query Builder"

Topics:

• Creating an Application Based on Tables or Queries


• About Application Models and User Interface Defaults
• Leveraging Application Models and User Interface Defaults

Creating an Application Based on Tables or Queries


Se puede crear una aplicación basada sobre un tabla, query, ó drill-down query
seleccionando Create Application en el Create Application Wizard.
1. Sobre la Home Page de la base de datos, click en Application Builder.
2. Click en el botón Create.
3. Seleccionar Create Application y click en Next.
4. Ingrese los detalles básicos de la aplicación y click en Next.
a. Name. Ingrese un nombre que describa la aplicación.
b. Application. Ingrese un valor entero (único) para identificar la aplicación.
c. Create Application. Seleccione un método de creación:
o From scratch Permite agregar páginas manualmente.
o Based on existing application design model Permite copiar
definiciones de páginas desde modelos de aplicaciones anteriores.
Notar que se deberán 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. (Véase el punto 7 y "About Application Models
and User Interface Defaults"
d. Schema La 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.
Next agrega la página a su aplicación.
5. Under Add Pages.
a. Seleccionar el tipo de pagina que se desea agregar. Incluye las opciones de:
-26-
Application Express User's Guide Building an Application

o Blank Crea una página sin agregar ninguna funcionalidad.


o Report Crea una página que contiene el resultado de una consulta SQL
formateado. Se puede elegir construir un report basado en una tabla que se
selecciona ó basado en una sentencia SQL SELECT dada por el usuario ó por
una función PL/SQL que retorna una sentencia SQL SELECT que se provee.
o Form crea un form para actualizar un sola fila en una tabla de la base de
datos.
o Tabular Form Crea un form para ejecutar update, insert ó delete sobre
múltiples filas de una tabla de la base de datos.
o Report and Form Construye dos páginas combinando form y report. Sobre la
primer página, el usuario selecciona una fila para actualizar. Sobre la segunda
página el usuario puede agregar un nuevo registro ó actualizar ó borrar un reg.
Existente.
Action Displaya el tipo de página seleccionada. Por cada selección, el wizard
propone diferentes tipos de información.
Las páginas report incluyen un check box Include Analysis Pages. Seleccione esta
opción y siga los prompt del wizard para extender un simple report (ó un report sobre un
form) para incluir múltiples gráficos y reports drill-down.
b. Click Add Page. La página (ó páginas) aparecen al tope de la página. Para borrar
una página, click en el icono Delete.
c. Repetir los puntos anteriores hasta que todas las páginas hallan sido agregadas.
d. Click Next.
6. Determinar si se va a incluir los tabs en la aplicación y click Next.
7. Determinar si se va a importar componentes compartidos con otra aplicación. Los
componentes compartidos son elementos comunes que pueden displayarse ó ser aplicados
sobre una página dentro de una aplicación.

Para incluir componentes compartidos:


a. Copy Share Componentes desde otra aplicación, seleccione Yes
b. Copy from Application, seleccione la aplicación desde la cual quiere importar
componentes compartidos.
c. Select Componentes to Import, seleccione los componentes a importar.
d. Next.
8. Seleccione las siguientes preferencias de autenticación y globalización.
a. Default Authentication Scheme – Identifica un esquema de autenticación que se
desea usar por default.
b. Language – Selecciona 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 estático (es
decir, derivada 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. Se puede alterar los atributos de lenguaje y la forma de
seleccionar el lenguaje más tarde ó editar los atributos de globalización de la página. Para
ello véase "Configuring Globalization Attributes".
d. Click Next.

9. Seleccione un theme (contexto) y click Next. Los Themes (contextos) son


colecciones de templeates que pueden ser usados para definir el layout y el estilo de una
aplicación completa. Véase "Managing Themes".
10. Confirmar las selecciones realizadas. Retornar a la página anterior del wizard,
click en Previous. Aceptar las opciones realizadas y click en Finish.
-27-
Application Express User's Guide Building an Application

About Application Models and User Interface Defaults.


(Modelos de aplicaciones y valores por default de la interface del usuario).

El wizard para crear aplicaciones está diseñado asumiendo que el desarrollador lo


ejecutará múltiples veces. Para facilitar este método interactivo para el desarrollo de
aplicaciones, cada vez que se ejecuta el wizard guarda la definición de la página como
un modelo de aplicación.
Consideremos el siguiente ejemplo: Crear una nueva aplicación ejecutando el wizard.
Después de ver 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 nuevamente y seleccionar un modelo de
aplicación. Al seleccionar un modelo de aplicación existente cuando se re-ejecuta el wizard,
se puede rápidamente mejorar la aplicación con mínimo tiempo y esfuerzo. Ver también:
Managing Application Models"
Otra forma de incrementar la productividad cuando creamos una aplicación es
especificando valores por default en la interface de usuario. Los valores por default en las
interfaces son metadatos que permiten asignar valores por default a las propiedades de las
tablas, columnas, ó listas dentro de un esquema específico. Ver también: Managing User
Interface Defaults"

Leveraging Application Models and User Interface Defaults.


(Mejorar modelos de aplicaciones e interfaces de usuarios)

Se puede incrementar la productividad en el desarrollo de aplicaciones mejorando los


modelos de aplicaciones y los valores por default de las interfaces de usuarios. Considere
los siguientes escenarios:
1) Crear una aplicación basada en tablas ó vistas ejecutando el wizard.
2) Ejecutar la aplicación generada. Determinar las deficiencias funcionales.
3) Evaluar si crear ó editar las interfases del usuario. Por ejemplo, se pueden usar los
valores por default en la interface del usuario para controlar los campos del formulario
ó para displayar las etiquetas de los reports. También se puede utilizar los valores por
default (de la interface) para displayar columnas específicas o displayar determinadas
columnas en orden alternativo.
4) Navegar a la home page de la aplicación y crear una nueva aplicación haciendo click
en Create.
5) Seleccionar Create Application.
6) Cuando pregunta por los detalles de la aplicación, especificar lo siguiente:
a. Nombre-Ingrese el nombre que describe a la aplicación.
b. Application-Ingrese el id que identifica a la aplicación (ó acepte el valor por default
que propone el wizard).
c. Create Application-seleccione Based on existing application design model.
1) Seleccione un modelo de aplicación. Note que las páginas que se crearon recién, ya
aparecen para ser seleccionadas como modelos.
2) Agregue, edite ó remueva páginas.
3) Complete el wizard.
4) Repetir los pasos 2 a 9 hasta que la aplicación alcance los requerimientos funcionales.

About the Create Application from Spreadsheet Wizard

(Wizard para Creación de aplicaciones desde hojas de cálculos)

-28-
Application Express User's Guide Building an Application

Se pueden crear aplicaciones a partir de datos en hojas de cálculos seleccionando


Create Application from Spreadsheet en el wizard.
Para crear una aplicación desde una hoja de cálculo:

1) Desde Home Page, click en Application Builder.


2) Click en el botón Create.
3) Seleccionar Create Application from Spreadsheet.
4) Especificar como serán importados los datos desde la hoja de cálculos.
Seleccione alguno de los siguientes y click Next:
a. Upload file (comma-delimited ó tab-delimited). Especifique uno de los
siguientes y click Next:
i. File Click en Browse para localizar el archivo a ser importado.
ii. Separator Especificar el carácter separador de columna. Utilizar
\t para separadores tab.
iii. Optionally Enclosed By Ingrese el carácter delimitador. Se
puede usar este carácter delimitador para indicar el comienzo/fin
de un dato. Si se especifica un carácter delimitador, el wizard
ignora los espacios en blancos que aparecen antes del carácter
de inicio y los que aparecen después del carácter de fin, que
delimitan el dato. Se puede también usar esta opción para datos
que están delimitados por un carácter específico.
iv. File Character Set Seleccionar el conjunto de caracteres en el
que está codificado el archivo de texto.
b. Copy and Paste (hasta 30 kbytes). Copiar y pegar los datos de la hoja
de cálculo que se desea importar y hacer click en Next.
5) Revisar la vista previa para ver como será displayada la tabla y hacer click en
Next. Especificar el nombre de la tabla y sus columnas, modificar los tipos de
datos, ó detallar que columnas incluir.
6) Revisar si se displayan nombres en singular y escríbalos en plural. La interface
por default de las columnas displaya los nombres por default de las etiquetas.
7) (Opcional) Mediante la interface por default, edite las etiquetas a displayar y
click Next.
8) Para los totales por columnas, seleccione las columnas para las cuales los
datos deben ser sumarizados en el reporte y gráficos y click en Next.
9) Este wizard crea varios totales por reports. Selecciones las columnas que se
deben totalizar por report.
a. Aggregate by Column – Elija uno ó más columnas para las cuales se
quiere sumarizar o promediar.
b. Aggregate Function to use – Seleccionar las funciones de resumen
(Sum ó Average).
c. Click Next.
10) Seleccionar opciones a nivel de aplicación:
a. Application Name – Ingrese un nombre alfanumérico para esta
aplicación.
b. Especificar el modo de creación:
i. Read and Write incluye operaciones insert y update en las
páginas.
ii. Read Only no incluye insert y update.
c. Seleccione el tipo de gráfico.
d. Click Next.
11) Seleccione un theme (contexto) y click Next. (Themes son colecciones de
templetes que pueden ser utilizados para definir el estilo y layout de una
aplicación completa. Véase: "Managing Themes".
-29-
Application Express User's Guide Building an Application

12) Confirmar opciones. Si desea ver páginas previas del wizard puede realizar
click en Previous. Para aceptar todo y finalizar, click Create.

About Demonstration Applications (Aplicaciones de demostración).

Oracle Application Express se instala con aplicaciones de demostración. Utilice estas


aplicaciones para comprender las funcionalidades que se pueden incluir en las aplicaciones.
Ver también: "Running a Demonstration Application"

Acceso a las aplicaciones demo


Para acceder a las aplicaciones demo:
1) Desde la Home Page, click en Aplication builder.
2) Click en el botón Create.
3) Seleccionar Demonstration Application. Aparece la página de aplicaciones demo,
displayando enlaces a las siguientes aplicaciones:
a. Sample Application ofrece una demostración que resalta conceptos básicos
de diseño.
b. Collection Showcase muestra los conceptos del carrito de compras.
c. Web Services sirve como ejemplo de cómo se puede utilizar servicios web.
4) Instalar una aplicación demo, bajar hasta la aplicación que se desea instalar, click
Install. Aparecerá el estado Installed.
5) Editar la aplicación instalada haciendo click en Edit.
6) Ejecutarla con click Run
7) Para re-instalarla (a la aplic. Demo), click en Re-Install.

Deleting an Application (Eliminación de una aplicación).

Se puede eliminar una aplicación desde adentro del Application Builder, o mientras se están
editando sus atributos. Si se deletea una aplicación, se borran con ella todos los
componentes definidos (reports, gráficos, ó formularios), controles de páginas (botones,
items, lista de valores), y también los componentes compartidos (breadcrumbs, listas, y
tabs). No se eliminan los default para las interfases.

Temas:

• Deleting an Application from Application Builder


• Deleting an Application from Edit Application Attributes

Deleting an Application from Application Builder


Para borrar una aplicación desde Application Builder:
1) Desde la Home Page, click en el icono Application Builder.
2) Seleccionar una aplicación.
3) Cuando se muestre el Ap. Builder, verificar el ID de aplicación y el nombre en la parte
superior de la página.
4) Sobre la lista de tareas, click en Delete this Application.
5) Seguir las instrucciones que se dan en pantalla.

Deleting an Application from Edit Application Attributes.


Deletear una aplicación desde la edición de los atributos de aplicación:
1) Desde la Home Page, App. Builder
-30-
Application Express User's Guide Building an Application

2) Seleccionar la aplicación.
3) Click en editar atributos.
4) Click en Edit Standard Attributes.
5) Verificar el ID de la aplicación y su nombre.
6) Click en Delete al tope de la página.
Véase : Configuring Standard Application Attributes"

-31-
Application Express User's Guide Building an Application

Adding Pages to an Application.

Se puede agregar una nueva página ó componente a una página existente, ejecutando el
Create Page Wizard. Para acceder al mismo:
o Click en Create Page en la home-page de la aplicación.
o Click en Create en la pagina de definición.
o Seleccionar sobre la barra de desarrollo el Create Link.
Nota: Se puede agregar también un componente a una página existente (tal como un report,
un gráfico, un formulario, un wizard, un calendario, ó un tree) utilizando el Wizard Create
Page. El wizard responde solicitando el ID de una página existente.

Temas.

• Creating a Page from Application Home Page


• Creating a Page from the Page Definition
• Creating a Page from the Developer Toolbar
• Running a Page or Application
• Grouping Pages
• Locking and Unlocking a Page
• Deleting a Page

Véase también: Creating Reports", "Creating Charts", "Creating Forms", "Creating


Calendars", and "Creating Trees"

Creating a Page from Application Home Page

Para crear una nueva página desde el Application home page:


1) Desde el Database Home Page, click en Application Builder
2) Seleccionar una aplicación. Aparecerá la Application home Page de la misma.
3) Click Create Page
4) Seleccionar el tipo de página que se desea crear:
a. Página en Blanco.
b. Múltiples páginas en blanco.
c. Reporte.
d. Gráfico.
e. Formulario.
f. Wizard.
g. Calendario.
h. Tree.
i. Página de login.
5) Seguir las instrucciones dadas en pantalla.

Createing a Page from the Page Definition

Para crear una nueva página mientras se está viendo una Page definition:
1) Navegar a la correspondiente Page Definition.
a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparece la definición de la página.
2) Desde la barra de navegación (al tope de la página), click en el botón Create.
3) Seleccionar el tipo de página que se desea crear:
a. New page.
-32-
Application Express User's Guide Building an Application

b. Region sobre esta página.


c. Control de página sobre si misma.
d. Control compartido. (Shared control)
Table: Create Page Options Describe las opciones disponibles correspondientes al tipo de
página seleccionado.
Create Page Options Available Selections
New Page Available page types:

a. Blank age
b. Multiple blank pages
c. Report
d. Chart
e. Form
f. Wizard
g. Calendar
h. Tree
i. Login Page

Region on this page Regions function as containers for content. Available region types:

j. HTML
k. Report
l. Form
m. Chart
n. Breadcrumb
o. PL/SQL Dynamic Content
p. Tree
q. URL
r. Calendar
s. Multiple HTML
t. Help Text

Page control on this page Page controls:

u. Item
v. Button
w. Branch
x. Computation
y. Process
z. Validation

Shared control Shared component options:

aa. Navigation Bar icon


bb. Parent tab
cc. Standard tab
dd. List of values
ee. List
ff. Breadcrumb

-33-
Application Express User's Guide Building an Application

4) Continuar con las instrucciones de pantalla.


Véase también: Editing a Page Definition

Creating a Page from the Developer Toolbar

Los usuarios que están logueados a la Database Home Page utilizando una cuenta de
usuario tienen acceso a la barra de desarrollo. La barra de desarrollo se displaya al final de
cada página y ofrece una forma rápida de crear una nueva página.
Para crear una nueva página desde la barra de desarrollo:
1) Sobre la barra de desarrollo, seleccionar Create. Aparecerá el wizard del nuevo
componente.
2) Seleccione el tipo de componente que se desea crear y click Next. Las opciones
disponibles son:
a. New Page
b. Región sobre esta Page.
c. Page Control sobre esta Page.
d. Shared control.
Table: Create Page Options Describe las opciones disponible correspondientes
al tipo de página seleccionado.
3) Continuar con las instrucciones dadas sobre la pantalla.
Véase también: "Using the Developer Toolbar"

Running a Page or Application.

El motor del Application Express dinámicamente ejecuta y procesa páginas basadas sobre
los datos alojados en las tablas de las bases de datos. Para ver un versión ejecutada de la
aplicación, se ejecuta ó submite la misma al motor del Application Express. Al crear nuevas
páginas, se pueden ejecutar individualmente, ó ejecutar la aplicación completa. Se puede
ejecutar una aplicación con click en el icono Run Application.
Temas.

• About the Run Application Icon


• Running an Application from the Application Builder Home Page
• Running an Application from the Application Home Page
• Running a Page from the Pages List on the Application Home Page
• Running a Page from the Page Definition

About the Run Application Icon

El icono de ejecución de una aplicación se asemeja a la luz del semáforo. Un gran icono
colorido, Run Application, aparece sobre la home page de las aplicaciones.

Muchas páginas dentro del Application Builder también ofrecen una versión más pequeña
de este icono. Click en este pequeño icono se ejecuta la aplicación completa ó de páginas
individuales dependiendo del contexto en que se invoca. Por ejemplo, si es desde la home

-34-
Application Express User's Guide Building an Application

page ejecuta la aplicación completa, si es desde la Page Definition ejecuta solo la página en
cuestión.

Running an Application from the Application Builder Home Page


Para ejecutar una aplicación completa desde la home page del Builder:
1) Desde la home page de la base de datos, click en Application Builder.
2) Desde la lista de vistas (View), seleccionar Details y click en Go.
3) Localizar la aplicación en la lista de aplicaciones.
4) Click en el icono Run que está en la columna más a la derecha.

Running an Application from the Application Home Page


Para ejecutar una aplicación completa desde la home page de la aplicación:

1) Sobre la Home Page de la base de datos, click en Application Builder. Aparece la


home page del builder.
2) Seleccionar una aplicación.
3) Click en el icono Run.

Running a Page from the Pages List on the Application Home Page
Para ejecutar una página desde la lista de Páginas:
1) Desde la Home Page, click en el icono Application Builder.
2) Seleccionar una aplicación.
3) Desde la lista View, seleccionar Details y click en Go.
4) Desde la lista Pages, localizar la página que se desea ejecutar y click en Run, de la
columna que está más a la derecha.

Running a Page from the Page Definition


Para ejecutar una página específica de la Page Definition:
1) Desde la Database Home Page, clic en Application Builder.
2) Seleccionar la aplicación.
3) Seleccionar la página. Aparece directamente la page definition.
4) Clic en Run Page en el extremo superior derecho de la página.

Grouping Pages

Utilice grupo de páginas y gestione las páginas dentro de una aplicación. Para utilizar grupo
de páginas, se debe crear un grupo y luego asignar las páginas al grupo. Los grupos de
página no tienen otra función especial que no sea organizar las páginas de una aplicación.
Se puede organizar fácilmente las páginas, por grupos, dentro de la aplicación.
Temas:

• Viewing the Page Group Report


• Creating a Page Group
• Assigning Pages to a Page Group

Viewing Page Groups from the Application Home Page


Para ver el grupo de páginas desde la home page de la aplicación:
1) Desde la Database Home Page, clic en Application Builder.
2) Seleccionar la aplicación.
3) Desde la lista de tareas del lado derecho de la página, clic en Manage Page Groups
4) Desde la lista de tareas, clic en Report Page Groups.
-35-
Application Express User's Guide Building an Application

Viewing Page Groups from the Page Definition


Para ver un grupo de páginas desde la Page Definition.
1) Desde la Database home page, clic en el icono Application Builder.
2) Seleccionar una aplicación.
3) Seleccionar una página. Aparece la definición de la página.
4) Desde la View list, seleccionar Groups.

Creating a Page Group


Para crear un grupo de páginas:
1) Desde la Database Home Page, click en Application Builder.
2) Seleccionar una aplicación.
3) Desde la lista de tareas, sobre el lado derecho de la página, click en Manage Page
Groups.
4) Desde la page group click en Create.
5) Ingresar el nombre, una descripción, y click en Create.

Assigning Pages to a Page Group


Para asignar una página a un grupo:
1) Desde la Database Home Page, click en Application Builder.
2) Seleccionar una aplicación.
3) Desde la lista de tareas, sobre el lado derecho de la página, click en Manage Page
Groups.
4) Sobre la lista de tareas, click en Report Unassigned Pages. Aparecerán las páginas
no asignadas a grupos.
5) Desde Page Group, seleccionar el grupo al cual se quiere asignar las páginas.
6) Seleccionar las páginas que deben ser asignadas.
7) Click en Assigned Checked. Si se selecciona el id de página se enlaza a la página de
atributos. Si se selecciona el nombre de la página enlaza a la definición de página.

Locking and Undlocking a Page

Se pueden prevenir conflictos durante el desarrollo de la aplicación impidiendo el acceso a


páginas de la aplicación. Mediante el loocking de una página, se previene que otros
desarrolladores puedan editarla.
Temas.

• Determining If a Page Is Locked


• Locking a Page
• Unlocking Pages
• Accessing Alternative Locked Pages Views

Determining if a page está locked.


Se indica que la página (actual) está lockeada mediante un icono. Si la página esta
deslockeada, el icono aparece abierto, sino aparece cerrado. El icono de estado del lockeo
aparece en las siguientes páginas:
o Application home page. Seleccione Details desde la lista Display. Aparece una lista de
páginas. El icono de lock aparece debajo de la columna Lock.
o Page Definition. El icono lock aparece en el extremo derecho del menú de la página.

Locking a Page
Se puede lockear una página de la aplicación:
1) Desde la Database Home Page, click en Application Builder.
-36-
Application Express User's Guide Building an Application

2) Seleccionar una aplicación.


3) Sobre la lista de tareas a la derecha de la página, click en Manage Page Locks.
4) Seleccione la página apropiada y click en Lock Checked.
5) Ingrese un comentario en el campo de comentarios.
6) Click en Lock Page.

Locking a Page from the Pages List


Para lockear una página desde la Lista de Páginas:
1) Desde la Database Home Page, click sobre App.Builder.
2) Seleccionar una aplicación..
3) Desde la lista View, seleccionar Details y click en Go.
4) En la lista de páginas, localizar la página deseada y click en el icono Lock.
5) Ingresar un comentario.
6) Click en Lock Pages.

Locking a Page from the Page Definition.


Para lockear una página desde la página de definición de la aplicación:
1) Navegar a la página de definición de la aplicación.
2) Click en el icono Lock, en la esquina superior derecha, encima de Shared
Components.
3) Seleccionar las páginas deseadas y click en Lock Checked.
4) Ingresar un comentario.
5) Click en Lock Pages.

Unlocking Pages
Solo el desarrollador que lockeo una página puede deslockearla. Sin embargo, un
desarrollador con privilegios administrativos puede deslockear páginas lockeadas por otros
desarrolladores.

Los pasos para deslockear páginas es similar que para el lockeo descrito más arriba.

Accessing Alternative Locked Pages Views.


Se puede acceder un cierto número de diferentes vistas de páginas lockeadas. Para ello:
1) Desde la Database Home Page, click en app.builder.
2) Seleccionar una aplicación.
3) Desde la lista de tareas, a la derecha de la pág., click en Manage Page Locks.
4) Desde la lista de tareas, click en uno de los siguientes:
a. Show Locked Pages: Lo cual displaya solo páginas lockeadas dentro de la
actual aplicación.
b. Show all pages.: Displaya todas las páginas de la aplicación.
c. Show Unlocked Pages: Displaya solo las páginas desloqueadas de la actual
aplicación.
d. Administer Locks: Permite a un administrador deslokear cualquier página
lockeada por un desarrollador.

Deleting a Page

Se puede deletear una página desde la Page Definition ó mientras se están editando los
atributos de la páginas.

Deleting a Page from the Page Definition.


Para deletear una página desde la Page Definition hacerlo desde la barra de navegación al
tope de dicha página, con un click en Delete.
-37-
Application Express User's Guide Building an Application

Deleting a Page while editing page attributes.


Para deletear una página mientras se editan los atributos de páginas, en la page definition,
click en Edit Attributes, Click en edit Standard Attributes y click en Delete.

-38-
Application Express User's Guide Building an Application

Creating Reports

En Oracle Application Express, un reporte es el resultado de una consulta Sql query


formateada. Se 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.
Temas.

• Creating a Report Using a Wizard


• Editing Report Attributes
• Controlling Report Pagination
• Enabling Column Sorting
• Adding a CSV Link to a Report
• Exporting a Report as an XML File or a CSV File
• Creating a Column Link
• Defining an Updatable Column
• Defining a Column as a List of Values
• Controlling When Columns Display
• Controlling Column Breaks

Creating a Report Using a Wizard

Application Builder incluye un cierto número de wizards para construir reportes. Para crear
un reporte utilizando un wizard:
1) Desde la Database Home Page, click en App. Builder.
2) Seleccionar la aplicación.
3) Click en Create Page.
4) Seleccionar Report
5) Seleccionar uno de los siguientes tipos de report:
a. Wizard Report : No requiere conocimientos sobre SQL. Selecciona el
esquema, tabla, columna y resultados a mostrar.
b. SQL Report : Crea un reporte basado sobre una sentencia Sql Select ó una
función Pl/sql que retorna una sentencia sql select.
6) Continuar con las instrucciones de pantalla.

Editing Report Attributes

Se pueden utilizar los atributos del report y de las columnas de las páginas para controlar
precisamente la definición de la página 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.
Desde la Page Definition, se puede acceder a los atributos de la página report con un click
en Report ó RPT, adyacente a la region report que tu quieres editar. Report indica al reporte
que es un report regular y RPT indica que es generado por wizard. Se puede navegar
también a los atributos del report (a la página de atributos) haciendo click en el nombre de la
región y luego seleccionando el tab Report Attributes.

Para acceder a la página de atributos del report:


1) Desde la Database Home Page, click en Application Builder.
2) Seleccionar la aplicación.
3) Seleccionar la página. Aparece la página de definición.
4) Debajo de la Regions, hacer click en Report cerca del nombre de la región que se
desea editar. Con lo cual aparece la pagina de Atributos del Report.
-39-
Application Express User's Guide Building an Application

El tipo de encabezamiento identifica como fue generado el encabezamiento del report.


Utilice la sección de atributos de columna para controlar la apariencia y funcionalidad de
cada columna. El link 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.

Table: Common Report Column Edits Describe las ediciones más comunes para las
columnas de los reportes.

Descripción Acción a desarrollar.


Modificar la secuencia de ordenación Click sobre las flechas arriba / abajo.
de una columna
Modificar alineación del Under Column Alignment, seleccionar una nueva
encabezamiento alineación de columna.
Modificar el encabezamiento de la Under Heading, ingrese el nuevo texto que
columna corresponde a la columna.
Control sobre las columnas a Click en Show para indicar que una columna debe
displayar. ser displayada.

Habilitar una única secuencia de Click en Sort y seleccionar un numero de secuencia


ordenación. desde Sort Sequence. Se debe elegir al menos una
columna de ordenación (pueden ser varias).
Habilitar una columna de totales Click en Sum para habilitar la suma de la columna.

Se puede además refinar los atributos específicos de una columna.


5) Para acceder a los atributos de la columna, click en el icono Edit adyacente al alias
de la columna. Ver también la ayuda on line para más información sobre un atributo
específico de la columna.

Controlling Report Pagination

Se puede controlar la paginación del reporte mediante:


o Inclusión del string de sustitución de paginación en el template del report.
o Hacer la selección, del atributo Layout y Paginación, desde los atributos del report.
-40-
Application Express User's Guide Building an Application

Se puede controlar como mostrar la paginación seleccionando desde el atributo Layout y


Paginación. Para acceder a esta sección:
1) Crear un reporte.
2) Debajo de la Regions, click sobre el enlace de atributo (Report ó RPT). Con lo
cual aparecerá la página de atributos del report.
3) Bajar con scroll down hasta Layout y Paginación.
Se usan los atributos de Layout y Paginación para seleccionar el estilo de paginación,
determinar donde se displaya la paginación y especifica el número de filas que displayar
sobre cada página. La tabla siguiente describe los atributos más comunes utilizados en
Table: Layout and Pagination Attributes

Atributo Descripción
Report Especifica el template que se aplicará a este report. Los template (de
Templeate reportes) proveen control sobre la salida de los resultados de una consulta
sql. Se pueden seleccionar desde algunos template por default ó seleccionar
un templete customizado.
Pagination Especifica el esquema de paginación para este reporte. Provee al usuario
Scheme información sobre el número de filas y posición dentro del conjunto
resultante. También define el estilo de los enlaces ó botones usados para
navegar a la página siguiente y previa.
Display Define donde se displaya la paginación. Si se elige displayar la paginación
Possition sobre el reporte, se requiere que el template, del reporte, soporte el tipo de
display.
Number of Define el número máximo de filas a displayar por cada página.
Rows
Strip HTML Especifica si se remueve, ó no, los tags HTML desde las columnas que
tengan expresiones HTML y columnas con links.
Si se seleccionan datos de la base de datos que contienen tags HTML,
pueden causar conflictos con el HTML generado por los enlaces de
columnas ó con las expresiones HTML. Cuando esta opción esta habilitada,
solo se utiliza la porción de datos de la columna como valor ( no se utiliza el
enlace ).

Including Pagination After the Rows in a Report


Para incluir paginación después de las filas en un reporte.
1) Crear un reporte.
2) Navegar a la página de atributos del reporte.
3) En Layout and Pagination, seleccionar lo siguiente:
a. Report Template – Selecciona un templete de reporte (opcional).
b. Pagination Scheme – Selecciona un esquema de paginación.
c. Display Position – Selecciona una posición.
d. Number of Rows – Selecciona cuantas filas mostrar en cada página.
e. Click en Apply Changes.
4) Editar el templete del reporte:
a. Navegar a la definición de página del reporte.
b. En templates, seleccionar el nombre del template.
c. Incluir el string de sustitución #PAGINATION# en el atributo After Rows.
d. Click en Apply Changes.
5) Ejecutar la página.

Including Pagination Before the Rows in a Report


Para incluir paginación antes de las filas en un reporte:

-41-
Application Express User's Guide Building an Application

1) Crear un reporte.
2) Navegar a la página de atributos del reporte.
3) En Layout and Pagination, seleccionar lo siguiente:
a. Report Template – Selecciona un templete de reporte (opcional).
b. Pagination Scheme – Selecciona un esquema de paginación.
c. Display Position – Selecciona una posición que contiene el word top.
d. Number of Rows – Selecciona cuantas filas mostrar en cada página.
e. Click en Apply Changes.
4) Editar el templete del reporte:
f. Navegar a la definición de página del reporte.
g. En templates, seleccionar el nombre del template.
h. Incluir el string de sustitución #TOP_PAGINATION# en el atributo Before Rows.
i. Click en Apply Changes.
5) Ejecutar la página.

Enabling Column Sorting (ordenar por columna)

Para habilitar la ordenación por columna:


1) Navegar a la página de atributos del report. "Editing Report Attributes".
2) En los atributos de columna, seleccionar el check box de Sort adyacente a cada
columna por la cual se desea ordenar.
3) Desde Sort Sequence (secuencia de ordenación), seleccionar un número de
secuencia. Sort Sequence es opcional. Sin embargo, si se ordena por una o más
columnas, al menos una de las columnas necesita tener definido el Sort Sequence.
4) Hace scroll hacia abajo a Sorting.
5) Especificar si es orden ascendente ó descendente ó click en set defaults.

Adding a CSV Link to a Report ( Agregar enlace para exportar el reporte )

Se puede crear un enlace, dentro del reporte, que permita al usuario final, exportar el reporte
generado a un archivo con formato delimitado por comas (.csv). Para agregar dicho tipo de
enlace es necesario habilitar la opción de salida CSV (CSV output option). Cuando se usa la
opción de salida CSV, el template del reporte no tiene trascendencia (ya que no sirve para
formatear un archivo delimitado por comas). Se puede incluir un enlace CSV con cualquier
template de report que tenga definido el string de sustitución CSV export.
Véase también: "Automatic CSV Encoding"

Enabling the CSV Output Option ( Habilitar la opción de salida CSV )


Para habilitar la opción de salida CSV:
1) Navegar a los atributos de la página del reporte.
2) Bajar con scroll hasta Report Export.
3) En Enable CSV output, seleccionar Yes.
4) (Opcionalmente) En el separador de campos (Separator and Enclosed By fields),
definir el separador y delimitador. Por default los delimitadores de string son los (“”) y
los campos por comas ó punto y coma dependiendo de la configuración NLS.
5) En el campo etiqueta del link (Link Label) se debe ingresar un texto. Este texto se
mostrará en el reporte y permitirá al usuario invocar un download.
6) (Opcionalmente) Para especificar un nombre por default para el archivo exportado,
ingresar un nombre de archivo en campo Filename. Por default, el motor del
Application Express crea un nombre para el archivo exportado tomando el nombre de
la región y dándole extensión (.csv ó .xml ).
7) Click en Apply Changes.
-42-
Application Express User's Guide Building an Application

Exporting a Report as an XML File or a CSV File

Se puede exportar un reporte como un archivo XML indicándolo en el template del report.
Para exportar un reporte como un archivo:
1) Navegar a la página de atributos del reporte. "Editing Report Attributes".
2) Bajar hasta el atributo Layout and Pagination.
3) En la lista de Report Template, seleccionar export: XML ó export: CSV.
Seleccionando export: xml, le indica al motor del application express que no construya
la página del reporte y que vuelque el contenido a un archivo XML.
4) Click en Apply Changes.

Creating a Column Link ( Crear una columna de enlace )

Utilice el atributo Column Link para crear un enlace desde un reporte a otra página dentro de
la aplicación ó bien a una URL.
Para crear una columna de enlace a otra página:
1) Navegar a la página de atributos del report. "Editing Report Attributes".
2) En el atributo Report Column localizar la columna que tendrá el enlace.
3) Click en el icono Edit adyacente al nombre de la columna. Aparecerá la página de
atributos de la columna.
4) Seleccionar Column Link
5) Para crear un enlace a otra página:
a. En Target, seleccionar Page in this Application.
b. (Opcionalmente) En los atributos del link, especificar atributos adicionales en el
link que serán incluidos en el tag <a href= > (por ejemplo, un link, clase ó
estilo).
c. En Link Text, ingresar el texto ó imagen que se desea mostrar como link (se
puede seleccionar alguna de las imágenes por default).
d. En Page, especificar el ID de la página destino. Para resetear la paginación de
esta página, seleccionar Reset Pagination.
e. En Request, se especifica la solicitud que se utilizará.
f. En Clear Cache, se especifica las páginas (es decir los ID de páginas) sobre
las cuales se limpia la cache. Se puede especificar varias páginas listando los
ID separados por comas.
g. En Name y Value especificar el valor de un item específico.
6) Click en Apply Changes.

Para crear una columna con enlace a una URL:


1) Navegar a la página de atributos del report. "Editing Report Attributes".
2) Acceder al atributos de una columna con click en Edit (junto a la columna). Aparecerá
la página de atributos de la columna seleccionada.
3) Bajar a Column Link.
4) En Column Link, ejecutar la siguiente selección:
a. En Target Type, seleccionar URL
b. En Link Text, ingresar el texto a mostrar como enlace y seleccionar un string de
sustitución.
c. (Opcional). En Link Attributes, especificar los atributos adicionales del link que
serán incluidos en el tag <a href= > (por ejemplo, un link, clase ó estilo).
d. En URL, ingrese la dirección URL a la cual se desea navegar.
5) Click en Apply Changes.

-43-
Application Express User's Guide Building an Application

Defining an Updatable Column

Se puede hacer que una columna sea de actualización editando los atributos Tabular Form
Element ó bien editando la página de los atributos de una columna del report. Tenga en
cuenta que el motor del Application Express solo puede ejecutar los update sobre la tabla si:
o Se define un update de múltiples filas.
o Se implementa un pl/sql que ejecuta la actualización de los datos.
o Cuando usa la built-in del item que se muestra, se debe definir que el report utilice el
tipo SQL Query (updatetable report).

Para definir columnas actualizables:


1) Navegar a la página de atributos del report. "Editing Report Attributes".
2) Acceder a la página de atributos de la columna con un click en el icono Edit,
adyacente a la columna en cuestión. Se muestra la página de atributos de la columna
seleccionada.
3) Bajar a Tabular Form Element.
4) En Tabular Form Element, hacer la siguiente selección.
a. Display As – Seleccionar un tipo de columna actualizable. Utilice esta opción
para que una columna sea actualizable. La actualización solo podrá ser
ejecutada si se define un multirow update, ó si se implementa un proceso pl/sql
que actualice los datos.
b. Date Picker Format Mask – Seleccionar una máscara si en la opción anterior
(Display As) se eligió Date Picker.
c. Element Width – Especificar el ancho del item.
d. Number of Rows – Especificar la altura del item del formulario (solo es
aplicable en áreas de texto).
e. Element Attributes – Especificar si es un item radio group o un check box.
f. Element Option Attributes – Define un estilo ó atributo (de elemento de form)
standard
g. Primary Key Source Type – Identifica el tipo por default.
h. Primary Key Source – Identifica el fuente por default.
i. Si la columna es parte de la primary key definida en un proceso MRU
(multi row update), solo aparece la Primary Key Source Type y la
Primary Key Source.
ii. En otros casos aparece Default y Default Type. Utilice Default y Default
Type para establecer una relación entre dos registros masters en un
formulario master detail, ó seleccione los valores por default para las
nuevas filas.
i. Reference Table Owner – Identifica al propietario de las tablas referenciadas.
Use este atributo para construir la interface por default para el usuario del
report.
j. Reference Table Name – Identifica la tabla ó vista que contiene la columna del
reporte.
k. Reference Column Name – Identifica el nombre de la columna a la que se hace
referencia .
5) Click en Apply Changes.

Defining a Column as a List of Values (Columna tipo lista de valores)

-44-
Application Express User's Guide Building an Application

Las columnas de los reportes pueden ser mostradas como listas de valores. Por ejemplo,
una columna puede ser mostrada como una lista de selección ó una lista popup de valores.
O bien, una columna puede ser mostrada como un texto read-only basado en una lista de
valores.

Esta última metodología es una estrategia efectiva cuando se muestra una lookup y es
particularmente útil en reportes, no-actualizables, comunes. Esta metodología permite
displayar los valores de una columna sin tener que escribir la sentencia sql join.

Para mostrar una columna de reporte como lista de valores:


1) Navegar a la página de atributos del reporte.
2) Acceder a la página de atributos de la columna con un clic en el Edit adyacente a la
columna seleccionada. Aparece la página de los atributos de la columna.
3) Bajar hasta List of Values.
4) En Named LOV, hacer una selección desde el repositorio de lista de valores.
5) Para incluir un valor nulo en una lista de valores.
a. En Display Null, seleccionar yes.
b. En Null Text, especificar el valor a displayar. Una columna puede también tener
un valor que no se muestra en la lista de valores.
6) Para definir un valor que no se muestra en la lista de valores:
a. En Display Extra Value, seleccionar Yes. El valor extra se usa si la columna
actual no es parte de la LOV. En esta situación, el valor actual es mostrado.
Sino se displayan valores extras, podría quedar con un valor erróneo y producir
una actualización
b. En Null Value, especificar el valor a displayar.
c. Si no se ha seleccionado un Named LOV, ingrese la consulta sql necesaria
para displayar la lista en el campo de la LOV Query.
7) Si no se ha seleccionado un Named LOV, ingrese la consulta sql necesaria para
displayar la lista en el campo de la LOV Query.
8) Clic en Apply Changes.
Véase también: Creating Lists of Values"

Controlling When Columns Display

Se pueden utilizar los atributos de columna Authorization y Condition para controlar cuando
se muestra una columna.
Authorization permite controlar el acceso a la columna del reporte basado en una condición
predefinida. La condición se evalua a verdadero ó falso según la expresión ingresada en
Expressions.
Para especificar los atributos Authorization y Condition:
1) Navegar a la página de atributos del reporte. "Editing Report Attributes".
2) Acceder a la página de atributos de la columna con clic en el icono Edit adyacente a
la columna seleccionada.
3) En Authorization, seleccionar desde la lista de Authorization Scheme.
4) En Conditions, seleccionar desde la lista de Condition Type, y dependiendo de la
selección realizada, ingresar la expresión correspondiente en el campo Expression.
Si la autorización es exitosa y la condición es verdadera se muestra la columna.
Véase también:

• "Providing Security Through Authorization"


• "Understanding Conditional Rendering and Processing"
• Available Conditions
-45-
Application Express User's Guide Building an Application

Controlling Column Breaks ( Cortes de Control )

Se puede controlar la impresión en los cortes de control por columna utilizando el atributo
Break Formatting. Por ejemplo, supóngase que el reporte muestra información del número
de empleados por departamento. Si varios 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 vez el número de departamento.

Para crear este tipo de corte de control:


1) Navegar a la página de atributos del report.
2) Bajar a Break Formatting.
3) Seleccionar los cortes desde la lista Breaks.

-46-
Application Express User's Guide Building an Application

Creating Forms

Se pueden incluir varios tipos de forms en las aplicaciones. Se pueden incluir forms que
permitan al usuario actualizar una sola fila de una tabla ó varias filas de una tabla.
Application Builder incluye un wizard que permite crear formularios automáticamente ó bien
se pueden crear formularios manualmente.

Temas:

• Creating a Form Using a Wizard


• Creating a Tabular Form
• Building a Master Detail Form
• Creating a Form Manually
• Validating User Input in Forms

Creating a Form Using a Wizard

La forma más fácil de crear un formulario es usando el wizard. Por ejemplo, el wizard crea
un formulario con un item por columna de la tabla ó vista. También incluye la creación de los
botones necesarios y los proceso requeridos para insertar, actualizar, y deletear filas desde
la tabla utilizando la clave primaria de la misma. Cada 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 wizard:


1) Desde la Database Home Page, clic en el icono del Application Builder.
2) Seleccionar una aplicación.
3) Clic en Create Page.
4) Seleccionar Form.
5) En Forms, seleccionar un tipo de form de los descriptos en:
Table: Forms Page Types.
Form Page Type Description
Form on a Procedure Crea un form basado sobre los argumentos de un procedimiento
almacenado. Utilizar este método cuando se tiene implementada la lógica
ó la manipulación de datos (data manipulation language) en un
procedimientos almacenados ó paquetes.
Form on a SQL Query Crea un form basado sobre las columnas retornadas por una consulta Sql
tal como un EQUIJOIN.
Form on a Table or View Crea un form que permite al usuario actualizar una sola fila en una tabla
de la base de datos.
Form on a Table with Crea dos páginas. Una página muestra un report. Cada fila provee un
Report enlace a la segunda página que permite al usuario actualizar cada registro.
Nota: Este wizard soporta hasta 127 columnas.
Form on Web Service Crea una página con items basado sobre la definición de un Web service.
Este wizard crea un formulario de input del usuario, un proceso que llama
al servicio Web y un botón que submite. Ver también: "Creating a Form
on a Web Service"
Form and Report on Crea una página con items basados sobre la definición de un servicio
Web Service Web. Este wizard crea un formulario de input de usuario, un proceso que
llama al servicio Web, un botón que submite, y displaya el resultado
obtenido en un reporte. Ver también:"Creating an Input Form and
Report on a Web Service"
Master Detalil Form Crea un form que displaya una relación master-detail dentro de un solo
formulario HTML. Con este form, los usuario s pueden consultar, insertar,
actualizar, y deletear valores de dos tablas ó vistas relacionadas como
-47-
Application Express User's Guide Building an Application

master-detail. Ver también: "Building a Master Detail Form"


Summary Page Crea una versión read-only de un formulario. Se usa, generalmente, para
proveer una página de confirmación, al final del wizard.
Tabular Form Crea un formulario en el cual los usuarios pueden actualizar múltiples filas
en una tabla. Ver también:"Creating a Tabular Form"
6) Continuar con las instrucciones dadas en pantalla.

Creating a Tabular Form

Un formulario tabular permite a los usuarios actualizar varias filas de una tabla. El wizard
crea un form para ejecutar operaciones de insert, update ó delete sobre varias filas de una
tabla de la base de datos.

Para crear un form tabular:


1) Desde la Database Home Page, click en Application Builder.
2) Seleccionar una aplicación.
3) Click en Create Page
4) Seleccionar Form
5) Seleccionar Tabular Form . Aparecerá la página del wizard correspondiente.
6) En Identify Table/View Owner:
o Especificar el esquema de la tabla o vista sobre la cual se basa el form.
o Seleccionar las operaciones que se desea ejecutar sobre la tabla (por ejemplo:
Update, Insert y Delete).
7) En Identify Table/View Name, seleccionar una tabla.
8) En Identify Columns to Display:
o Especificar si utiliza la interfase de usuario por default. Seleccionar Yes ó No.
Habilitar la interfase de usuario por default permite asignar las propiedades por
default a una tabla, columna ó vista en un esquema específico.
o Seleccionar las columnas (actualizables y no actualizables) que incluye el form.
Se puede modificar el orden de las columnas ó la consulta SQL después de
crear la página del formulario.
9) En Identify Primary key, seleccionar la columna PK y una columna PK secundaria (si
corresponde).
10) En Defaults for Primary and Foreign Keys, seleccionar el tipo de origen de la columna
de la primary key. Las orígenes posibles para generar las primary key son:
o Existing trigger – Seleccionar esta opción si hay un trigger definido en la
tabla. Se puede también seleccionar esta opción si se tiene pensado en
especificar la fuente de la columna primary key, mas tarde, después de crear el
formulario.
o Custom PL/SQL function – Seleccionar esta opción si se desea proveer una
función pls/sql que retorne el valor de la primary key.
o Existing sequence – Seleccionar esta opción si se desea seleccionar una
secuencia desde la lista de secuencias disponibles en el esquema.
11) En Updatable Columns, seleccionar que columnas deberían ser de actualización.
12) En Identify Page and Region Attributes.
o Especificar la información de pagina y de región.
o Seleccionar un template para la región.
o Seleccionar un template para el report.
13) En Identify Tab, especificar un tab de implementación para esta página.
14) En button Labels, ingresar el texto a mostrar en cada botón.
15) En Identify Branching, especificar las páginas a bifurcar después de hacer click en los
botones Submit y Cancel.
-48-
Application Express User's Guide Building an Application

16) Click en Finish.


Nota: No modificar la lista de campos de la select después de que se ha generado el form
tabular. Haciendo esto se puede causar un error de checksum cuando se alteran los datos
en el formulario.

Ver también:"Managing User Interface Defaults"

Building a Master Detail Form

Un formulario master detail refleja una relación uno a muchos entre dos tablas del esquema
de la base de datos. Típicamente, un form master detail muestra una fila de la tabla master y
múltiples filas de la tabla detail dentro de un único form HTML. Con este form, los usuarios
pueden insertar, actualizar y deletear registros desde dos tablas ó vistas.

Para crear un form master detail:


1. Desde la Database Home Page, click en Application Builder.
2. Seleccionar una aplicación.
3. Click en Create Page.
4. Seleccionar Form
5. Seleccionar Master Detail Form. Aparecerá el wizard correspondiente.
6. En Define Master Table:
a. Seleccionar el esquema de la tabla ó vista.
b. Seleccionar el nombre de la tabla ó vista.
c. Seleccionar las columnas a mostrar.
7. En Define Detail Table:
a. Especificar mostrar solo tablas relacionadas.
b. Seleccionar el esquema de la tabla ó vista.
c. Seleccionar el nombre de la tabla ó vista.
d. Seleccionar las columnas a mostrar.
8. En Define Primary Key, seleccionar la columna de la primary key de la tabla master y
luego seleccionar la columna de la primary key de la tabla detail.
9. En Define Master and Detail, definir las relaciones entre las tablas master y detail.
10. Especificar el origen de las columnas primary key de la tabla master y de la tabla
detail.
11. En Define Master Options, especificar si se incluye master row navigation. Si se
incluye master row navigation, hay que definir el orden de las columnas. Sino se
define navigation order column, el form de actualización master navega por la
columna de la primary key.
12. En Choose Layout, especificar el layout de la página master detail. Se puede incluir el
master detail como un form tabular sobre la misma página, ó desplegar el master
detail como páginas separadas.
13. En Page Attributes, revisar y editar la información de la página master detail.
14. En Identify Tabs, especificar si se incluye opcionalmente un tab set.
15. Click en Create.

Creating a Form Manually

Se puede también crear un form manualmente ejecutando los siguientes pasos.


o Crear una región HTML (sirve como contenedor de los items de página).
o Crear los items a mostrar en la región.
o Crear los proceso y bifurcaciones.
-49-
Application Express User's Guide Building an Application

Para crear un form manualmente mediante la creación de una región HTML:


1. Navegar a la correspondiente Page Definition:
 Navegar a la Database Home Page.
 Click en Application Builder.
 Seleccionar una aplicación.
 Seleccionar una página. Aparecerá la definición de página.
2. Crear una región HTML.
 En Regions, click en el icono Create.
 Seleccionar el tipo de región HTML.
 Seguir las instrucciones del wizard.
3. Agregar items a la página:
 En Items, click en el icono Create.
 Seguir las instrucciones del wizard.

Processing a Form
Una vez creado el form, el próximo paso es procesar los datos de datos insertando ó
actualizando las tablas ó vistas subyacentes en la base de datos. Hay tres formas para
procesar un form:

• Creating an Automatic Row (DML) Processing Process


• Creating a Process that Contains One or More Insert Statements
• Using a PL/SQL API to Process Form Values

Creating an Automatic Row (DML) Processing Process


Una forma común de implementar un form es creando manualmente un proceso Automatic
Row Processing (DML). Este método ofrece tres ventajas. Primero, no requiere escribir
código SQL. Segundo, Oracle Application Express ejecuta los procesos DML necesarios.
Terceros, estos procesos. Tercero, estos procesos automáticamente ejecuta la detección de
pérdidas de actualización (lost update detection). La 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 :


o Add items, define el tipo de fuente del item a partir como una columna de base de
datos, y especifica un nombre de columna case-sensitive.
o Seleccionar la opción Always overrides the cache value. (Reescribir siempre el
valor cacheado).
Para crear un proceso Automatic Row Processing (DML):
1. Navegar a la correspondiente Page Definition:
a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparece la definición de la página.
2. En Processes, click en el icono Create.
3. Seleccionar el proceso Data Manipulation.
4. Seleccionar la categoría de procesos Automatic Row Processing (DML).
5. Especificar los siguientes atributos del proceso:
a. En el campo Name, ingresar el nombre para identificar el proceso.
b. En el campo Sequence, especificar un número de secuencia.
c. En la lista Point, seleccionar el punto de inicio del proceso. En la mayoría de
los casos corresponde seleccionar, select Onload – After Header.
d. En la lista Type, seleccionar Automatic Row Processing (DML).
6. Continuar las instrucciones dadas por el wizard en pantalla.
-50-
Application Express User's Guide Building an Application

Creating a Process that contains One or More Insert Statements


En este método de manejo del form, se crea uno ó más procesos para gestionar las
acciones de insert, update, y delete. En vez de dejar que motor del Application Express lo
maneje en forma transparente, el desarrollador asume el control completo.

Por ejemplo, supóngase que se tiene un form con tres items:


• P1_ID – Un item oculto que guarda la primary key de la fila que se muestra
actualmente, de una tabla.
• P1_FIRST_NAME – Un campo item de texto para entrada de datos del usuario.
• P1_LAST_NAME – Un campo item de texto para entrada de datos del usuario.
Supongamos también que hay tres botones etiquetados Insert, Update, y Delete. También
asumimos que se cuenta con una tabla T que contiene las columnas id, first_name and
last_name. La tabla tiene un trigger que automáticamente completa la columna ID cuando no
se provee un valor para la misma.

Para procesar el insert de una nueva fila, se crea un proceso condicional de tipo PL/SQL que
se ejecuta cuando el usuario hace click en el botón Insert. Por ejemplo:

BEGIN
INSERT INTO T ( first_name, last_name )
VALUES (:P1_FIRST_NAME, :P1_LAST_NAME);
END;

Para procesar el update de una fila, se crea otro proceso condicional del tipo pl/sql. Por
ejemplo:

BEGIN
UPDATE T
SET first_name = :P1_FIRST_NAME,
last_name = :P1_LAST_NAME
WHERE ID = :P1_ID;
END;

Para procesar el delete de una fila, se crea otro proceso condicional que se ejecuta con el
click del botón correspondiente. Por Ejemplo:

BEGIN
DELETE FROM T
WHERE ID = :P1_ID;
END;

Using a PL/SQL API to Process Form Values


Para cierto tipo de aplicaciones, es apropiado centralizar todos los accesos a las tablas en
un solo (ó en unos pocos) paquetes PL/SQL. Si se crea un paquete para manejar las
operaciones DML, se puede llamar a los procedimientos y funciones dentro de dicho
paquete desde un proceso PL/SQL After Submit para procesar los insert, update y delete.

Populating Forms
Oracle Application Express llena un form al cargarlo, ó cuando el motor del App.Express
levanta la página. Un form se puede llenar de las siguientes formas:
1. Creando un proceso y definirlo como Automated Row Fetch
2. Llenar el form manualmente por referencia un item oculto de estado de sesión.
-51-
Application Express User's Guide Building an Application

Para crear un proceso Automated Row Fech:


1. Navegar a la correspondiente Page Definition:
a. Navegar a la Database Home Page.
b. Click en Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparecerá la definición de la página.
2. En Processes, click en Create.
3. Seleccionar el tipo de proceso Data Manipulation.
4. Seleccionar la categoría de proceso Automatic Row Fetch.
5. Especificar los siguientes atributos de proceso:
a. En el campo Name, ingresar un nombre que identifique el proceso.
b. En el campo Sequence, especificar un número de secuencia.
c. En la lista Point, seleccionar el correspondiente punto de proceso.
d. En la lista Type, seleccionar Automated Row Fetch.
6. Seguir las instrucciones del wizard.

Tambié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 pl/sql, en Oracle Application Express,
debería setear los valores de ename y sal. El ejemplo también demuestra como llenar
manualmente un form referenciando un session state item denominado P2_ID

FOR C1 in (SELECT ename, sal


FROM emp WHERE ID=:P2_ID)
LOOP
:P2_ENAME := C1.ename;
:P2_SAL := C1.sal;
END LOOP;

En este ejemplo:
• C1 es un cursor implícito.
• El valor de P2_ID ya había sido seteado.
• El process point para este proceso debería ser seteado para ejecutar (o disparar) en
Onload – Before Regions.

Validating User Input in Forms

Se pueden utilizar validaciones para chequear los datos ingresados por los usuarios antes
de procesarlos. Una vez que se crea una validación y el mensaje de error asociado, se
puede asociar la validación a un item específico. Se puede seleccionar que la validación
muestre el mensaje de error asociado en línea (es decir en la misma página donde se
ejecuta la validación) o en una página de error separada.

La creación de un mensaje de error en línea involucra los siguientes pasos:


• Crear una nueva validación y un mensaje de error de texto específico.
• Asociar la validación con un item específico.

Creating a Validation
Para crear una nueva validación:
1. Navegar a la correspondiente Page Definition:
a. Navegar a la Database Home Page.
b. Click en Application Builder.
c. Seleccionar una aplicación.
-52-
Application Express User's Guide Building an Application

d. Seleccionar una página. Aparecerá la definición de la página.


2. En Validations, click en el icono Create.
3. Cuando aparece el wizard de Create Validations, continuar con las instrucciones del
mismo en pantalla.
a. Item. Estas validaciones arrancan con el término Item y provee los chequeos
más comunes que podrías querer ejecutar sobre el item con el cual la
validación se asocia.
b. Code. Estas validaciones requiere que se provea código pl/sql ó una consulta
Sql que defina la lógica de la validación. Utilice este tipo de validación para
ejecutar validaciones específicas (customizadas) que requieran verificar
valores de más de un item o acceder a tablas adicionales de la base de datos.
4. Continuar con las instrucciones del wizard.

Nota: Las validaciones no pueden contener más de 3.950 caracteres.

Associating a Validation with a Specific Item


Para asociar un item con una validación y su mensaje de error:

1. Navegar a la correspondiente Page Definition:


a. Navegar a la Database Home Page.
b. Click en Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparecerá la definición de la página.
2. En Validations, seleccionar el item de validación que se quiere asociar. Aparecerá la
página de atributos para la validación.
3. Bajar al Error Message:
• En Error message display location, verificar la ubicación donde se muestra.
• En Associated Item, seleccionar el item que se quiere asociar con esta
validación.
4. Click en Apply Changes.

About Error Message


Error message display location identifica donde se displaya el mensaje de error. Este
puede ser mostrado en una página de error (una página aparte) ó en la misma página (Inline
error messages). Inline error messages puede mostrarlo en un área de notificación
(definida como parte del page template) ó dentro del campo indiciado.

Al producir un error grave que detenga el proceso, incluyendo cualquier validación restante,
se debe mostrar el error sobre una página de error (error page).

-53-
Application Express User's Guide Building an Application

Creating Calendars

Application Builder incluye un wizard para generar un calendario. Una vez que se especifica
la tabla sobre la cual el calendario está basado, se pueden crear enlaces drill-down a la
información que se guarda en columnas específicas.

Temas:

• About Creating Calendars


• Creating a New Calendar
• Converting an Easy Calendar to a SQL Calendar
• Editing a Calendar Title
• Editing Calendar Attributes

About Creating Calendars

Application Builder soporta dos tipos calendarios:


• Easy 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.
• Sql Calendar crea un calendario basado sobre una consulta sql (dada por el
desarrollador). La sentencia SQL SELECT que se escriba debe incluir al menos dos
columnas: una columna tipo date y una columna de display.
Ver también: "Calendar Display"

Supported Calendar Substitution Strings


Application Builder soporta varios string de sustitución de formato date. Se puede ver una
lista completa de los strings de sustitución soportados sobre la página Calendar Templates.

Para ver una lista de los string de sustitución soportados para calendarios:
1. Navegar al template correspondiente del calendario.
2. Expandir la lista de Substitution Strings a la derecha de la página.

Ver también: "Viewing Templates"

Creating a New Calendar

Cuando tu creas un calendario depende de si se está agregando un calendario sobre una


página existente ó si se está agregando a una nueva página. Cuando se crean calendarios
recordar:
• Se pueden solamente crear un calendario por página.
• La date column determina que días sobre el calendario tendrán entradas.
• La display column define una fila específica que mostrará una fecha (calendario).
Ver también: "Editing Calendar Attributes"

Adding a Calendar to an Existing Page


Para agregar un calendario a una página existente:
1. Navegar a la correspondiente Page Definition.
a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.

-54-
Application Express User's Guide Building an Application

c. Seleccionar una aplicación.


d. Seleccionar una página. Aparece la definición de la página.
2. En Regions, click en el icono Create. Aparecerá el wizard de Create Region.
3. Seleccionar Calendar.
4. Seleccionar el tipo de calendario que se desea crear:
a. Easy Calendar crea un calendario basado en una columna fecha y en una
columna display especificada.
b. SQL Calendar crea un calendario basado sobre una consulta SQL que se
debe especificar.
5. Continuar con las instrucciones dadas en pantalla.

Adding a Calendar to a New Page


Para crear un calendario sobre una nueva página:
1. Navegar a la Database Home Page.
2. Click en el ícono Application Builder.
3. Seleccionar una aplicación.
4. Click en Create Page.
5. Seleccionar Calendar.
6. Seleccionar el tipo de calendario que se desea crear:
a. Easy Calendar crea un calendario basado en una columna fecha y una
columna display especificada.
b. SQL Calendar crea un calendario basado sobre una consulta SQL dada.
7. Continuar con las instrucciones dadas por el wizard en pantalla.

Converting an Easy Calendar to a SQL Calendar

Crear un Easy Calendar es la forma más simple de crear un calendario. Sin embargo, si se
resuelve que el calendario resultante no es apropiado, se puede rápidamente convertir este
en un calendario SQL.

Para convertir un Easy Calendar en un SQL Calendar:

1. Navegar a la correspondiente Page Definition.


a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparece la definición de página.
2. En Regions, click CAL junto al nombre de la región. Aparecerá la página de atributos
del calendario.
3. En la lista Tasks, click en Convert to SQL Based calendar. Convirtiendo un Easy
Calendar a un SQL Calendar, agrega una sección Region Source a la Region
Definition. La Region Source, contiene la consulta SQL original que crea el calendario.
Al tener acceso a la Region Source, se puede editar la consulta para cubrir las
necesidades requeridas.

Editing a Calendar Title

El título que aparece al tope del calendario corresponde a la region title.


Para modificar la region title:
1. Navegar a la Page Definition.
-55-
Application Express User's Guide Building an Application

2. En Regions, seleccionar el nombre de la región. Aparece la definición de la región.


3. En Region, ingresar un nuevo titulo.
4. Click en Apply Changes.

Editing Calendar Attributes

Una vez que se ha creado el calendario, se puede modificar su apariencia editando sus
atributos.
Temas:

• Accessing the Calendar Attributes Page


• Calendar Display
• Calendar Interval
• Column Link
• Day Link

Accessing the Calendar Attributes Page


Para acceder a la página de atributos del calendario:
1. Navegar a la Page Definition correspondiente:
a. Navegar a la Database Home Page.
b. Click en App. Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparece la definición de página.
2. En Regions, click en CAL a continuación del nombre de la región. Aparecerá la
página de atributos de calendario. Los temas que siguen se describen en las
secciones específicas de la página Calendar Attributes.

Calendar Display
Utilice 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 App. Express
levante un calendario. Date Column define la columna de la tabla ó consulta que contiene
las fechas que serán ubicadas en el calendario. Display Column define una fila específica
que displaya sobre un calendario.

Para seleccionar otra Display Column:


1. Navegar a lo correspondiente página de atributos del calendario.
2. Localizar la sección Calendar Display.
3. Para especificar otra display column, seleccionar la columna que corresponda desde
la lista de Display Column.
4. Click en Apply Changes.
Para especificar una Display Column personalizada:
1. Navegar a la correspondiente página de atributos del calendario.
2. Localizar la sección Calendar Display.
3. En Display Type, seleccionar Custom.
4. En Column Format, ingresar el formato de columna personalizado. Se puede usar una
expresión HTML y los strings de sustitución soportados por la aplicación.
5. Click en Apply Changes.
Ver también: "Supported Calendar Substitution Strings"

-56-
Application Express User's Guide Building an Application

Calendar Interval
Utilice Calendar Interval para definir las fechas que son incluidas en el calendario.

Begin At Start Of Interval determina el momento en que el calendario debe comenzar.


Seleccionando esta opción crea un calendario que abarca un intervalo completo (tal como un
mes). Por ejemplo:
• Si en Begin at start of interval se selecciona, la fecha 15 de junio, y el display es
mensual, el calendario resultante abarca desde el 1 al 30 de junio.
• Si en Begin at start of interval no se selecciona, la fecha 15 de junio, y el display es
mensual, el calendario resultante abarca desde el 15 al 30 de junio.

Date Item contiene la fecha sobre la cual se basa el calendario.

Los dos atributos siguientes define que items contienen el start date y el end date del
calendario. Se pueden usar estos atributos para crear calendarios que abarcan múltiples
meses. Item Containing Start Date apunta a un item que contiene la fecha de inicio del
calendario. Item Containing End Date apunta a un item que contiene la fecha de fin del
calendario. Notar que el formato de la fecha debe ser yyyymmdd.

Start of Week determina el día de la semana en el cual el calendario comienza.

Column Link
Se utiliza para crear una columna de enlace en el calendario.

Para crear una columna de enlace a otra página:


1. Navegar a la correspondiente página de atributos del calendario.
2. Bajar hasta Column Link.
3. En Target is a, seleccionar Page in this Application.
4. En Page, especificar el ID de la página destino. Para resetear la paginación de esta
página, seleccionar reset pagination for this page.
5. En Request, especificar la respuesta que se utilizará.
6. En Clear Cache, especificar las páginas (es decir los ID de las mismas) sobre las
cuales se limpia la cache. Para especificar varias páginas utilizar una lista de ID
separados por comas. Se puede setear el valor en la sesión ( es decir, dar una lista
de valores ) utilizando los dos atributos siguientes: el Set (grupo) de atributos y el With
los valores de estos atributos.
7. Para establecer el estado de la sesión:
a. Set these items – 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. With these values – Ingresar una lista delimitada por comas de los valores de
los items especificados en a. Se puede especificar valores estáticos ó la
sintaxis de sustitución (por ejemplo, &APP_ITEM_NAME.). Notar que el item
del valor pasado a f?p= en la URL no puede contener ( : ). Por consiguiente,
los valores de los items no pueden contener comas al menos que estén entre
barras inclinadas (backslashes) por ejemplo: \1234,56\ ).
8. Click en Apply Changes.
Ver tambien: "Supported Calendar Substitution Strings"

Para crear un enlace de columna a una URL:


1. Navegar a la correspondiente página de atributos de calendario.
2. Bajar a Column Link.
3. En Target is a, seleccionar URL.
-57-
Application Express User's Guide Building an Application

4. En URL, ingrese la dirección que corresponda.


5. Click en Apply Changes.

Day Link
Utilice Day Link para crear un link sobre un día del calendario. Este atributo crea un link
sobre el día actual sobre el calendario.
Para crear un day link a otra página:
1. Navegar a la correspondiente página de atributos del calendario.
2. Bajar a Day Link.
3. En Target is a, seleccionar Page in this Application.
4. En Page, especificar el ID de la página destino. Para resetear la paginación de dicha
página, seleccionar reset pagination for this page.
5. En Request, especificar la respuesta que se usará.
6. En Clear Cache, especificar las páginas (es decir los ID) en las cuales limpiar la
cache. (Se especifica como una lista de ID separados por comas). Se puede
establecer los valores para la sesión utilizando los atributos Set these items y With
these values.
7. Para establecer los valores de la sesión:
a. Set these items – Ingresar una lista de nombres de items separados por comas
sobre los cuales establecer los valores para la sesión.
b. With these values – Ingresar una lista de valores, separados por comas, para
los items indicados en a. Tener en cuenta que los valores no pueden comas al
menos que estén entre backslashes (por ejemplo: \1234,56\.
8. Click en Apply Changes.

Para crear un day link a una url:


1. Navegar a la correspondiente página de atributos del calendario.
2. Bajar a Day Link.
3. En Target is a, seleccionar url.
4. En url, ingresar la dirección URL que corresponda.
5. Click en Apply Changes.

-58-
Application Express User's Guide Building an Application

Creating Charts ( Creación de Gráficos ).

El generador de aplicaciones Application Builder incluye wizards para generar HTML y


gráficos SVG (Scalable Vector Graphics). Oracle Application Express soporta dos tipos de
gráficos:
• HTML
• SVG
SVG es un lenguaje basado en XML para gráficos Web de la W3C (World Wide Web
Consortium. Los gráficos SVG se definen utilizando etiquetas Html. Cuando se evalue si los
gráficos SVG son apropiados para determinada aplicación téngase en cuenta que:
• Algunos browser no soportan gráficos SVG.
• La mayoría de los browser que soportan SVG requieren realizar download del plug-in
correspondiente.

Temas:

• About SVG Plug-in Support


• About Creating Charts
• Creating a New Chart
• Editing Chart Attributes
• Understanding Chart Cascading Style Sheet Classes
• Referencing a Custom Cascading Style Sheet
• Specifying Custom CSS Styles Inline
• Enabling Asynchronous Updates
• Displaying Charts in Other Languages

About SVG Plug-in Support

El plug-in SVG de Adobe puede gestionar datos codificados en UTF-8, UTF-16, ISO-8859-1,
y US-ASCII. La codificación de un gráfico SVG se determina por el DAD (database access
descriptor) del conjunto de caracteres de la base de datos. Si el conjunto de caracteres del
DAD no es UTF8, AL32UTF8, AL16UTF16, WE8ISO8859P1, o US7ASCII, los gráficos SVG
no pueden ser interpretados por el plug-in de Adobe SVG.

About Creating Charts

En el Application Builder, un gráfico, se define mediante un wizard. En la mayoría de los


wizards gráficos, se selecciona un tipo de gráfico y se provee una consulta SQL usando la
sintaxis siguiente:

SELECT link, label, value


FROM ...

Donde:
• link es una URL
• label es el texto que se displaya en la barra.
• Value es la columna numérica que define el tamaño de la barra.

Por ejemplo:
SELECT null, ename, sal

-59-
Application Express User's Guide Building an Application

FROM scott.emp
WHERE deptno = :P101_DEPTNO

Para crear un gráfico dial (dial chart), seleccionar un tipo de gráfico dial y escribir la consulta
necesaria usando la siguiente sintaxis:

SELECT value , maximum_value [ ,low_value [ ,high_value] ]


FROM ...

Donde:
• Value es el punto de comienzo del gráfico dial.
• Maximum_value es el punto más alto posible del gráfico dial.
• Low_value y high_value son los valores históricos mas alto y bajo.

Por ejemplo:

SELECT dbms_random.value(500, 1200), 1300, dbms_random.value(100, 200)


FROM DUAL

Table: Available Chart Types Esta tabla describe los tipos de gráficos disponibles en el
generador de aplicaciones Application Builder.

Plug- Tipo de gráfico Descripción


in
Bar (HTML) Gráfico de barras que muestra una serie de datos representando
cada punto con una barra.
* Bar, Horizontal Gráfico de barras simple basado en series, orientado
horizontalmente con cada punto de la serie representado por una
barra.
* Bar, Vertical Gráfico de barras simple basado en series, orientado
verticalmente con cada punto de la serie representado por una
barra.
* Cluster Bar, Gráfico de barra múltiple basado en series orientado
Horizontal horizontalmente y dividido por una variable común, con cada
punto de la serie representado por una barra. (Por ejemplo, Total
de ventas por departamento dividido por meses del año).
* Cluster Bar, Gráfico de barra múltiple basado en series orientado
Vertical verticalmente y dividido por una variable común, con cada punto
de la serie representado por una barra. (Por ejemplo, Total de
ventas por departamento dividido por meses del año).
* Dial – Sweep También conocido como indicador angular: este gráfico muestra
el porcentaje del valor máximo y/o el valor absoluto comparado al
valor máximo representado como un área sólida.
* Dial También conocido como indicador angular: este gráfico muestra
el porcentaje del valor máximo y/o el valor absoluto comparado al
valor máximo representado como una línea.
* Line Gráfico de líneas múltiples basado en series con cada línea
representando todos los puntos de la serie
* Pie Gráfico de torta simple basado en series con cada lonja
representando un punto de la serie.
* Stacked Bar, Gráfico de barra múltiple basado en series orientado
Horizontal horizontalmente donde cada punto en valor absoluto representa

-60-
Application Express User's Guide Building an Application

un segmento de una sola barra.


* Stacked Bar, Idem Stacked Bar, Horizontal, pero en dirección vertical
Vertical
* Stacked Idem Stacked Bar, Horizontal, pero cada punto es un porcentaje
Percentage Bar, del 100% de la serie representada.
Horizontal
* Stacked Idem Stacked Bar, Vertical, pero cada punto es un porcentaje del
Percentage Bar, 100% de la serie representada.
Vertical
* Basado en SVG. (Requiere plug-in).
Basado en HTML (No requiere plug-in).

Nota: No cambie el tipo de gráfico de un gráfico existente. En vez de ello, borre el gráfico
existente y crear nuevamente con el tipo adecuado.

Creating a New Chart

La creación de gráficos depende de si estamos agregando un gráfico a una página existente


ó si estamos agregando un gráfico a una nueva página.

Adding a Chart to an Existing Page


Para agregar un gráfico a una página existente:
1. Navegar a la Page Definition.
2. En Regions, click en el icono Create. Aparece el wizard de Create Region.
3. Seleccionar Chart
4. Seleccionar el tipo de gráfico. Ver tabla: Table: Available Chart Types.
5. Continuar con las instrucciones dadas en pantalla.
Ver también: "About Creating Charts"

Adding a Chart to a New Page


Para crear un gráfico sobre una nueva página:
1. En la Database Home Page, click en App. Builder.
2. Seleccionar una aplicación.
3. Click en Create Page.
4. Seleccionar Chart.
5. Seleccionar el tipo de gráfico. Véase : Table: Available Chart Types.
6. Continuar con las instrucciones de pantalla.
Véase también: "About Creating Charts"

Editing Chart Attributes

Una vez creado el gráfico se puede modificar la forma de mostrarlo editando sus atributos en
la página de atributos del gráfico.

Para acceder a la página de atributos del gráfico:


1. Navegar a la Page Definition.
a. Navegar a la Database Home Page.
b. Click en App. Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparece la definición de la página.
-61-
Application Express User's Guide Building an Application

2. En Regions, click en Chart luego del nombre de gráfico que se quiere editar. Aparece
la página de atributos gráficos. Note que removiendo un titulo del gráfico (es decir, el
atributo Chart Title podría impactar negativamente en la ubicación y display de la
forma en que se muestra el gráfico.

Understanding Chart Cascading Style Sheet Classes

Cuando se crea un nuevo gráfico, Oracle Application Express lo interpreta basándose en la


clase Cascading Style Sheet (CSS) asociada con el contexto actual. Cascading Style Sheet
es una hoja HTML con diferentes estilos que pueden ser cambiados entre si permitiendo
mayor flexibilidad. Se puede cambiar la apariencia de un gráfico si se referencia a otro CSS
ó si se re-escribe una clase en la sección CSS de la página Edit Attributes.

El siguiente ejemplo contiene las clases CSS para el gráfico tipo dial en Sample Application.
Este ejemplo contiene todas las clases CSS disponibles. Los nombres de clases aparecen
en negritas.

text{font-family:Verdana, Geneva, Arial, Helvetica, sans-


serif;fill:#000000;}
tspan{font-family:Verdana, Geneva, Arial, Helvetica, sans-
serif;fill:#000000;}
text.title{font-weight:bold;font-size:14;fill:#000000;}
text.moredatafound{font-size:12;}
rect.legend{fill:#EEEEEE;stroke:#000000;stroke-width:1;}
text.legend{font-size:10;}
#background{fill:#FFFFFF;stroke:none;}
rect.chartholderbackground{fill:#ffffff;stroke:#000000;stroke-
width:1;}
#timestamp{text-anchor:start;font-size:9;}
text.tic{stroke:none;fill:#000000;font-size:12}
line.tic{stroke:#000000;stroke-width:1px;fill:none;}
#dial{stroke:#336699;stroke-width:2px;fill:#336699;fill-opacity:.5;}
#dial.alert{fill:#FF0000;fill-opacity:.5;}
#dialbackground{stroke:#000000;stroke-
width:none;fill:none;filter:url(#MyFilter);}
#dialcenter{stroke:none;fill:#111111;filter:url(#MyFilter);}
#dialbackground-border{stroke:#DDDDDD;stroke-
width:2px;fill:none;filter:url
(#MyFilter);}#low{stroke-width:3;stroke:#336699;}
#high{stroke-width:3;stroke:#FF0000;}
#XAxisTitle{letter-spacing:2;kerning:auto;font-
size:14;fill:#000000;text-anchor:middle;}
#YAxisTitle{letter-spacing:2;kerning:auto;font-
size:14;fill:#000000;text-anchor:middle;writing-mode:tb;}
.XAxisValue{font-size:8;fill:#000000;}
.YAxisValue{font-size:8;fill:#000000;text-anchor:end;}
.nodatafound{stroke:#000000;stroke-width:1;font-size:12;}
.AxisLine{stroke:#000000;stroke-width:2;fill:#FFFFFF;}
.GridLine{stroke:#000000;stroke-width:0.3;stroke-
dasharray:2,4;fill:none;}
g.dataholder rect{stroke:#000000;stroke-width:0.5;}
.legenditem rect{stroke:#000000;stroke-width:0.5;}

-62-
Application Express User's Guide Building an Application

Table: Available Chart CSS Classes Esta tabla describe todas las clases CSS soportadas.
Notar que ciertas clases solo se aplican a tipos de gráficos específicos.

Class Description
text Defines the appearance of text that displays in a chart.
tspan Defines the appearance of text that displays in a chart. tspan should match the
definition of text.
text.title Overrides the default chart text. Use this class for title text.
text.moredatafou Defines the appearance of more datafound text.
nd
rect.legend Creates the rectangular box that holds the chart legend.

To a remove the legend border, change rect.legend to the following:

rect.legend{fill:#CCCC99;stroke:none;}

text.legend Defines the text that appears in the chart legend.


#background Creates the entire background for the SVG plug-in.

For a solid white background with no border, change #background to the


following:

#background{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:2;}

rect.chartholderb Not applicable to pie and dial charts. Creates the background of the rectangle that
ackground holds the chart data.

For a clear background, change rect.chartholderbackground to the following:

rect.chartholderbackground(display:none;)

#timestamp Only applicable if the Asynchronous Update chart attribute is set to Yes. Controls
the appearance of the update timestamp test.

To disable the display of the timestamp, use defines #timestamp as follows in the
Custom CSS, Inline attribute.

"#timestamp{display:none;}"

Ver también: "Enabling Asynchronous Updates"


text.tic Dial charts only. Defines the numbers on a dial chart.
line.tic Dial charts only. Defines the graduation mark that displays directly beneath the
number on a dial chart.
#dial Dial charts only. Defines the value that displays on the dial chart.
#dial.alert Dial charts only. Defines a value (called an alert value) that renders on in a dial
chart using a different display.
#dialbackground Dial charts only. Creates the background of a dial chart.
#dialcenter Dial charts only. Creates the center of the dial on a dial chart.

-63-
Application Express User's Guide Building an Application

Class Description
#dialbackground- Dial charts only. Works in conjunction with #dialbackground to create specific
border graphic effect.
#low Dial charts only. Defines a historical low watermark of the data being displayed on
a chart.
#high Dial charts only. Defines historical high watermark of the data being displayed on
a chart.
#XAxisTitle Defines the title that appears on the x-axis
#YAxisTitle Defines the title that appears on the y-axis.
.XAxisValue Defines the value that appears on the x-axis.
.YAxisValue Defines the value that appears on the y-axis.
.AxisLabel Similar to the axis value.
.nodatafound Defines the text element that displays if no information is available.
.AxisLine Indicates zero on charts that have negative values.
.GridLine Creates the horizontal and vertical lines on the chart.
g.dataholder rect Applies a blanket style to all data that displays in the chart.
.legenditem rect Applies a blanket style to all rectangular items in the legend.

Referencing a Custom Cascading Style Sheet

Se puede referenciar un Cascading Style Sheet castomizado para un gráfico utilizando la


sección CSS de la página Chart Attributes. Cuando se referencia un CSS externo, se lo
referencia completamente ó simplemente se sobreescribe el estilo específico.

Para referenciar un gráfico CSS castomizado:


1. Subir la CSS al Application Builder. Vease: "Uploading Cascading Style Sheets".
2. Crear un gráfico. Véase: "Creating a New Chart".
3. Navegar a la Page Definition:
4. En Regions, click en Chart luego del nombre de la región. Aparece la página de Chart
Attributes.
5. Bajar hasta la sección CSS.
6. En Use Custom CSS, seleccionar Yes.
7. Para referenciar un CSS externo exclusivamente:
a. En Custom CSS, Link, ingresar un link a un CSS
castomizado. Por ejemplo:
#IMAGE_PREFIX#themes/theme_4/svg.css
b. Especificar que el CSS debería ser usado exclusivamente.
En Custom CSS,Inline ingresar lo siguiente: /**/.
8. Para referenciar un CSS castomizado y re-escribir un estilo específico:
a. En Custom CSS,Link, ingresar un link a una hoja de estilo
castomizada. Por ejemplo:
#IMAGE_PREFIX#themes/theme_4/svg.css
b. En Custom CSS,Inline, ingresar el estilo CSS castomizado
que se desea sobre-escribir.

-64-
Application Express User's Guide Building an Application

Specifying Custom CSS Styles Inline

Se pueden sobre-escribir estilos específicos dentro del CSS dado por default, utilizando las
CSS castomizadas, atributo Inline sobre las página de atributos de gráficos.

Para sobre-escribir un estilo específico dentro del default CSS:


1. Crear un grafico. Vease: "Creating a New Chart".
2. Navegar a la Page Definition.
3. En Regions, click en Chart luego del nombre de la región. Aparece la página de Chart
Attributes.
4. Bajar hasta CSS.
5. En Use Custom CSS, seleccionar Yes.
6. En Custom CSS,Inline, ingresar el estilo CSS que se desea sobre-escribir para
castomizarlo.

Enabling Asynchronous Udates

Se pueden crear gráficos que monitorean información estableciendo el atributo


Asynchronous Update (de actualización asincrónica) en la página de atributos del gráfico
(Chart attributes page). Al establecer este atributo actualiza el gráfico para reflejar los
cambios dados en los datos subyacentes, a intervalos de tiempos predefinidos.

Para habilitar la actualización asincrónica:


1. Crear un gráfico. See Creating a New Chart.
2. Navegar a la Page Definition. Aparece la Page Definition.
3. En Regions, click Chart luego del nombre de la región. Aparece la página de atributos
del gráfico.
4. Bajar a Refresh.
5. En Asynchronous Update, seleccionar Yes.
6. En Update Interval (Seconds), ingresar el intervalo expresado en segundos entre
actualización. Para una óptima performance, seleccionar un intervalo que sea mayor
a los 2 segundos.

Cuando se habilita la actualización asincrónica, se displaya un timestamp sobre el gráfico


indicando la última actualización. Para deshabilitar el timestamp que aparece cada vez que
se actualiza:
1. Navegar a la página Chart Attributes.
2. Localizar la sección CSS.
3. En Use Custom CSS, seleccionar Yes
4. En Custom CSS,Inline editar #timestamp como sigue:
#timestamp(display:none;)

Displaying Charts in Other Languages

Para mostrar un gráfico en otro lenguaje, editar las clases text y tspan para reflejar el
lenguaje correcto.

Para mostrar un gráfico en otro lenguaje:


1. Navegar a la página Chart Attributes.Véase:"Editing Chart Attributes".
2. Bajar al CSS.
3. En Use Custom CSS, seleccionar Yes.
-65-
Application Express User's Guide Building an Application

4. En Custom CSS,Inline, editar las clases text y tspan para reflejar el correcto
lenguaje. El siguiente ejemplo muestra como cambiar un gráfico a lenguaje Coreano:

text{font-family:Batang;fill:#000000;}
tspan{font-family:Batang;fill:#000000;}

-66-
Application Express User's Guide Building an Application

Creating Buttons

Al diseñar las aplicaciones, se pueden usar Buttons para que los usuarios naveguen a una
página específica ó a determinada URL, ó al correo ó a procesar información (por ejemplo,
para crear botones Create, Cancel, Next, Previous ó Delete).

Los Buttons pueden ejecutar dos tipos diferentes de acciones. Un Buttone puede submitir
una página y luego navegar a una URL. O bien, un Button, puede bifurcar a una URL sin
submitir la página.

Temas:

• Creating a Button Using a Wizard


• Creating Multiple Buttons
• Understanding the Relationship Between Button Names and REQUEST
• About Branching with Buttons
• Displaying Buttons Conditionally

Creating a Button Using a Wizard

Se puede crear un botón utilizando el Wizard Create Button de la Page Definition. Cada
Button reside en una región. Una región es un área sobre una página que sirve de
contenedor.

Para crear un nuevo botón:


1. Navegar a la correspondiente Page Definition.
2. Si es necesario, crear una región HTML. Ver: "Customizing Regions".
3. En Buttons, click en el icono Create. Aparece el wizard Create Button.
4. Seleccione la región que contendrá al botón.
5. Selecciona una posición para el botón:
a. Crear un botón mostrandolo entre los items de la región.
b. Crear un botón en una posición específica de la región.
Seleccione (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).
6. Si se selecciona (b. Crear un botón en una posición específica de la región.) :
a. Especificar la etiqueta y el nombre del botón.
b. Seleccionar el tipo de botón: HTML Button (Default), Image, or Template
Driven. Seleccionar Button is Reset para crear un botón Undo. Cuando
habilita, este tipo de botón resetea la páginas a valores nulos al estado que
ellos estaban cuando la página fue inicialmente interpretada.
c. Seleccionar una Acción.
1. Seleccionar Submit page and redirect to URL lo cual submite la
página actual al motor del Application Express cada vez que el usuario
hace click en el botón.
2. Seleccionar Redirect to URL without submiting page evita submitir
la página. Elija esta acción cuando no sea necesario submitir la página
para procesarla (por ejemplo, un botón Cancel). Esta acción evita
procesamiento en la base de datos y reduce la carga.
7. Si se selecciona Create a button displayed among this region's items
a. Especificar un nombre de botón y una secuencia.
b. Especificar si el botón mostrón se muestra al comienzo de una nueva linea ó
nuevo campo.
-67-
Application Express User's Guide Building an Application

c. Especificar una etiqueta.


d. Ingresar el valor de la petición (value of Request).
e. Seleccionar el estilo del botón.
8. Continuar con las instrucciones de la pantalla.
Ver también:"Understanding the Relationship Between Button Names and REQUEST"

Creating an HTML Button

Los botones pueden ubicarse en una posición del template de la región predefinida ó entre
los items del form. Para crear un botón HTML, seleccione uno de los siguientes:
• Under Task, crea un botón en una posición de la región.
• Under Button Type, selecciona un tipo de botón y luego crea un botón HTML (es la
opción por default).

Creating Multiple Buttons

Se pueden crear botones múltiples dentro de una misma region, en un solo paso, utilizando
el wizard Create Multiple Buttones. Para crear varios botones de una sola vez:
• Navegar a la correspondiente Page Definition.
• Si es necesario, crear la HTML region. Ver: "Customizing Regions".
• En Buttons, click en el ícono Create. Aparece el wizard Create Button.
• Seleccionar Create Multiple Buttons al final de la página. Aparece el wizard
correspondiente.
• En Place Buttons in Region, seleccionar la región que contendrá los botones.
• En Template, seleccionar uno.
• En HTML Attributes, especificar los atributos HTML para estos botones. Estos textos
serán agregados a la definición HTML. Por ejemplo, se pude indicar que la clase de
un text button como: class=”myclass”
• Para completar rapidamente el resto de los campos, hacer una selección desde la
lista Quick Button a la derecha de la página.
• Click en Create Buttons.

Understanding the Relationship Between Button Names and REQUEST

El nombre que se da a un botón determina el valor del atributo REQUEST del botón. Se
puede referenciar el valor de REQUEST desde un PL/SQL usando la variable bind
:REQUEST. Al usar esta variable bind, se puede condicionar procesos, validar ó bifurcar
basado sobre que botón el usuario hizo clicks. Se pueden crear procesos que se ejecuten
cuand el usuario hace click en un botón. Se puede también usar una condición mas
compleja como se muestra en los siguientes ejemplos:

If :REQUEST in ('EDIT','DELETE') then ...


If :REQUEST != 'DELETE' then ...

Estos ejemplos asumen la existencia de los botones EDIT y DELETE. Se puede usar
también esta sintaxis en condiciones pl/sql. Tener cuidado con los nombres de los botones
pues se preservan las mayúsculas. Si un botón se denomina LOGIN y luego un request
buscan por Login, no lo encontrará. Por Ejemplo:
<input type="BUTTON" value="Finish" onClick="javascript:doSubmit('Finish');">
-68-
Application Express User's Guide Building an Application

Notar que en este ejemplo Finish es el nombre del REQUEST y este ejemplo es case-
sensitive.

About Branching with Buttons

Cada página puede incluir varias bifurcaciones. Una bifurcación navega a otra página ó una
URL. El motor del Application Express considera supone que bifurcara en algún momento
durante el proceso de la página. Se puede elegir bifurcar antes de procesar, antes de
calcular, antes de validar y despúes de procesar. Al igual que cualquier otro control en
Application Builder, la bifurcación puede ser condicional. Por ejemplo, se puede bifurcar
cuando un usuario hace click a un botón. Cuando se crea una bifurcación, se puede asociar
con un botón específico. La bifurcación solo será considerada si el usuario hace click en el
botón.
Ver también: "Controlling Navigation Using Branches"

Displaying Buttons Conditionally

Se puede elegir tener condicionado el display de un botón editando los atributos en la página
Edit Pages Button.

Para condicionar el display de un botón:


1. Crear el botón. "Creating a Button Using a Wizard".
2. Navegar a la correspondiente Page Definition.
3. En Buttons, seleccionar el nombre del botón. Aparece la página de atributos del
botón.
4. Bajar hasta la opción Conditional Button Display.
5. Seleccionar en la lista Condition Type una condición.
6. Ingresar una expresión en los campos propuestos.
7. Click en Apply Changes.
Ver: "About Bind Variables"

-69-
Application Express User's Guide Building an Application

Creating Items

Un item es una parte de un formulario HTML. Un item puede ser un campo de texto, un área
de texto, una password, una lista de selección, una chexk box, etcétera. Los atributos de los
items afectan la forma en que se displaya el item sobre la página. Por ejemplo, dichos
atributos pueden impactar sobre como se mostrarán las etiquetas, como de largo será el
item y si ellos serán mostrados a continuación ó debajo del item previo.

Hay dos tipos de items: page items y application items. Los page items son ubicados sobre
la página y tienen asociados propiedades de la interfase de usuario, tales como Display As,
Label y Label Template. Los application items no están asociados con una página y además
no tienen propiedades de lla interfase de usuario. Se puede utilizar un application items
como una variable global.

Temas:

• Creating a Page-Level Item


• Referencing Item Values
• Editing Page Item Attributes
• Displaying Conditional or Read-Only Page Items
• Working with a Multiple Select List Item
• Creating an Application-Level Item
• Populating an Alternative Date Picker Format

Ver: "How Item Attributes Affect Page Layout" y "Using Substitution Strings"

Creating a Page-Level Item

Se puede crear un item a nivel de página ejecutando el wizard Create Item desde la Page
Definition.
Para crear un nuevo item a nivel de página:
1. Navegar a la correspondiente Page Definition.
2. Si es necesesario, crear una región HTML. Ver: "Customizing Regions".
3. En Items, click en el ícono Create.
4. Seleccionar un tipo de item. Ver:"About Item Types".
5. Seguir las instrucciones del wizard.

About Item Naming Conventions


Cuando se especifíca un nombre de item, recordar las siguientes reglas. Los items deben:
• No pueden tener comillas.
• Comenzar con una letra ó un número, y los caracteres siguientes pueden ser: letras,
números, y el carácter de subrayado.
• Son case-insensitive.
• No deben exceder los treinta caracteres.
• Las letras deben pertenecer al conjunto de caracteres ASCII.

About Item Types


Cuando se crea un item, se especifica el tipo del item. Una vez que se crea un item, aparece
sobre la página Edit Page Item, una lista Display As. Para ver los tipos de items acceder a la
tabla: Table: Available Item Types

-70-
Application Express User's Guide Building an Application

Tipos de Items Disponibles


Tipo Item Descripción
Check Muestra una lista de valores para seleccionar. Se necesita una lista de valores
box para mostrar los check boxes. El valor correspondiente a un check box
seleccionado es retornado en un solo string delimitado por dos puntos.
El siguiente ejemplo muestra como crear un simple check box que retorna YES.
Este ejemplo muestra ambos un check box y una etiqueta de campo.

SELECT NULL display_text, ‘YES’ return_value FROM DUAL;

Este ejemplo incluye el texto click to select.

Select ‘click to select’ display_text, ‘YES’ return_value from dual;

Ver también: "HTMLDB_UTIL"


Date Muestra un campo de texto con un ícono de calendario. Cuando se selecciona,
Picker este icono displaya un pequeño calendario desde el cual se puede seleccionar la
fecha y opcionalmente la hora.
Si el formato que necesita no está incluido en la lista “Display As”, seleccionar
Date Picker (para seleccionar la máscara). Cuando se utiliza un formato de
máscara, la aplicación busca el formato en un item denominado
PICK_DATE_FORMAT_MASK. Notar que es necesario completar este
item antes de usarlo a este item para trabajar.
Ver: "Populating an Alternative Date Picker Format"
Display Display as Text incluye los siguientes subtipos:
As Text • Display as Text (based on LOV, does not save state). Muestra el valor
desde una LOV haciendo corresponder los valores con el valor retornado
por la LOV, pero no guarda el estado en la sesión.
• Display as Text (based on LOV , saves state). Idem, pero también
genera un item que se submite con la página para pasar el valor retornado
en el estado de sesión.
• Display as Text (based on PL/SQL, does not save state). Muestra la
salida de un bloque PL/SQL, sin guardarlo en la sesión.
• Display as Text (does not save state). Muestra el valor del item sobre la
página sin crear in item en el formulario.
• Display as Text (escape special characters, does not save state).
Muestra el valor del item con caracteres especiales ('<','>','&')
• Display as Text (saves state). Muestra los vores de los items y crea un
item en el formulario el cual se submite con la página para pasar el valor al
estado de sesión.
File Muestra un campo de texto con un botón Browse. Esto permite al usuario
Browse localizar un archivo sobre el sistema local de archivos y subirlo. Oracle
Application Express provee una tabla para estos archivos que son subidos como
así también las API para recuperar (abrir) los archivos.
Véase: "Understanding the Security Risks of File Upload Tables"
Hidden Crear un elemento de formulario (HTML) oculto. Se le puede asignar un estado
de sesión y ser referenciado como un campo de texto.
List Se basa en una lista de valores. Este item permite gestionar una lista de items
Managers mediante selección y adición a la lista. La lista de valores se muestra como una
popup.
Multiple Se crea un elemento multiselect HTML en el form. Cuando se submite, los
Select valores seleccionados son retornados en un string delimitado. Se puede procesar
-71-
Application Express User's Guide Building an Application

el string mediante la API HTMLDB_UTIL


Ver también: "Working with a Multiple Select List Item" y "HTMLDB_UTIL"
Password Crea un elemento HTML password en el form.
Popup Crea un campo de texto con un ícono. Cuando el usuario cliquea en el ícono,
List of aparece una ventana popup con una lista de valores mostrando una serie de
Values links. Cuando el usuario hace una selección desde la lista, el valor seleccionado
será ubicado en el campo de texto. El control de la LOV popup se hace a través
del template. Se puede solo especificar una LOV popup template por cada
aplicación.
Utilizando una LOV popup es una buena práctica para listas de valores que son
muy grandes para retornarlas sobre una sola página.
Hay dos tipos de LOV Popup: Uno que procesa un conjunto de filas cuando la
ventana se abre y otro que no.
La LOV Popup debe estar basada sobre una consulta que selecciona dos
columnas con diferentes alias. Por ejemplo:
SELECT ename name, empno id
FROM emp
Si una de las columnas es una expresión, hay que utilizar un alias. Por ej:
SELECT ename||' '||job display_value, empno FROM emp
Radio Crea un elemento radio group en el form, basado en una lista de valores. Elija
Radiogroup with Submit para que sea submitida la página cuando se
seleccione una opción en el radio button.
El siguiente ejemplo muestra los nombres de los empleados, pero retorna el nro
de empleado:
SELECT ename, empno FROM emp
Select Muestra una lista de valores. Se requiere una lista de valores para los items que
List sean listas de selección. Las listas de selección son creadas usando elementos
HTML <select> en el form. Los valores en una lista de selección son
determinados utilizando un nombre de LOV ó definiendo una LOV a nivel de item.
Se puede especificar el valor NULL y que retorne el valor NULL.

El siguiente ejemplo retorna los nombres de los empleados (ename) y los


números de los empleados (empno) desde la tabla emp. Notar que los alias de
las columnas no son requeridos pero se incluyen para claridad.

SELECT ename display_text, empno return_value FROM emp

Oracle Application Express provee mejoras adicionales que en las listas de


seleccion HTML standard:

• Select List with Submit – Submite la página cuando el usuario cambia el


valor seleccionado en la lista. En submite, el REQUEST será el nombre
del item que representará a la lista, para permitir utilizarlos en los procesos
(calculos, condiciones, validaciones, y bifurcaciones).
• Select List with Redirect – Redirige al usuario volver a la misma página,
colocando ONLY al valor seleccionado en la lista.
• Select List Returning URL Redirect – Se basa en una lista de valores
con urls como valores de retorno. Al cambiar el valor de la lista causa que
el browser se dirija a la correspondiente URL seleccionada.
• Select List with Branch to Page – Se basa en una lista de valores con
Ids de páginas. Al seleccionar un valor de la lista, el motor del Application
Express se dirige a la página seleccionada.
-72-
Application Express User's Guide Building an Application

Nota: Si la lista de selección es muy larga puede causar un error. Si se espera


una larga lista es preferible utilizar una Popup List de valores ( en lugar de la
select list).
Stop and Se fuerza el cierre de una tabla HTML al utilizar el tag </table> y crea una nueva
Start tabla HTML. Se puede usar este tipo de item para resetear el ancho de una
Table columna en la mitad de una región.
Notar que un item Stop y Start Table solo muestra su etiqueta. Se puede impedir
que muestre la etiqueta si se setea la etiqueta a null. Eso se logra removiendo el
label que propone el wizard.
Text Se muestra como un campo de texto HTML que puede contener hasta 30.000
bytes de text. Se puede controlar el ancho y alto editando los atributos Height y
Width del item.
Las opciones disponibles de items Text son:
• Text Field – Se muestra como un campo de texto.
• Text Field (Disabled, does not save state) – Muestra una versión de solo
lectura de una lista de valores, utilizando los valores de la sesión para
buscar el valor asociado. El valor mostrado en pantalla no es guardado al
submitir la página.
• Text Field (Disabled, saves state) – Muestra una versión de solo lectura
de una lista de valores, utilizando los valores de la sesión para buscar el
valor asociado.
• Text Field (always submits page when Enter pressed) – Muestra una
versión de solo lecutra. Al submitir, salva el valor mostrado en pantalla en
el estado de sesion.
• Text Field with Calculator Popup – Se muestra como un campo de texto
junto con un ícono. Cuando cliquea el ícono muestra una pequeña ventana
mostrando una calculadora. Los cálculos son dejados en el item.
Text Area Muestra un área de texto HTML. No hay longitud máxima para un item mostrado
en un Text Area. Se controla el ancho y el largo editando los atributos height y
width. La opción Display As incluye:

• Text Area (auto height) – Ajusta el ancho de acuerdo a la cantidad de


texto. Se utiliza cuando se necesita una Text Area de grandes
dimensiones pero no hay lugar en el form ó si no hay datos para mostrar.
• Text Area with Counter – Muestra un contador que indica la cantidad de
bytes ingresados al campo.
• Text Area with Spell Checker – Provee un popup corrector ortográfico
(idioma inglés).
• Text Area with HTML Editor – Provee controles de formato de texto
básicos. Notar que estos controles podrian no trabajar con todos los web
browsers.

Referencing Item Values

Se pueden referenciar valores de items en una región del estado de sesión, cálculos,
validaciónes y bifurcaciones. Se puede consultar la sintaxis soportada para referenciar los
valores de los items en Syntax for Referencing Item Values
Ver:"Managing Session State Values"

-73-
Application Express User's Guide Building an Application

Syntax for Referencing Item Values

Type Syntax Description


SQL :MY_ITEM Sintaxis standard para variables internas (el nombre no debe
pasar los 30 bytes). Se utiliza en consultas SQL y en código
PL/SQL.
PL/SQL V('MY_ITEM') Sintaxis PL/SQL para referenciar el valor de un item utilizando
la función V( ). Ver:"Oracle Application Express APIs"
PL/SQL NV('MY_ Sintaxis PL/SQL para referenciar el valor de un item numérico
utilizando la función NV( ).
NUMERIC_ITEM') Ver: "Oracle Application Express APIs"
Static &MY_ITEM Texto estático.
Text

Static &MY_ITEM Texto extático. Sustitución exacta.


Text
(exact)

Se puede cambiar el valor de un item utilizando cualquiera de los siguientes métodos:


• Para los items de la página, utilice el atributo Source para indicar el valor de dicho
item. En la Page Definition, seleccionar el nombre del item para ver la página Edit
Page Item. Bajar con el scroll hasta Source y editar el campo.

Tambíen se puede cambiar el valor de un item en cualquier región ó procedimiento


PL/SQL utilizando la siguiente sintaxis:
BEGIN
:MY_ITEM := ‘new value’;
END;

• Pasar el valor de una referencia URL usando la sintaxis f?p. Por ejemplo:
f?p=100:101:10636547268728380919::NO::MY_ITEM:ABC

• Establecer el valor a través de un cálculo. Los cálculos están destinados a cambiar el


valor de los items. Por ejemplo:
TO_CHAR(SYSDATE,'Day DD Month, YYYY');

• Se puede usar las PL/SQL API para cambiar el valor de un item dentro del código
PL/SQL:
HTMLDB_UTIL.SET_SESSION_STATE('MY_ITEM',SYSDATE);

Ver: "Clearing Session State", "Oracle Application Express APIs", y "About Cross-Site
Scripting Protection"

Editing Page Item Attributes

Una vez que se crea un item, se puede editar sus atributos en la página Edit Page Item.
1. Navegar a la correspondiente Page Definition
a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Aparece la Page Definition

-74-
Application Express User's Guide Building an Application

2. En Items, seleccionar el nombre del ítem.


Aparece la página de atributos de dicho item.
3. Editar el item correspondiente. Para ver información acerca de un atributo específico,
seleccionar el item Help.
4. Click en Apply Changes.
Ver: "About Cross-Site Scripting Protection"

Displaying Conditional or Read-Only Page Items

Se puede elegir que un item se displaye condicionalmente ó bien sea solo lectura editando
sus atributos.
1. Crear el item.
2. Navegar a la correspondiente Page Definition.
3. En Items, seleccionar el item que interesa. Aparece la página de atributos del item.
4. Para displayar condicionalmente un item:
a. Bajar con el scroll hasta Conditions.
b. Seleccionar el tipo de condición desde la lista Condition Type.
c. Ingresar las expresiones que correspondan para condicionar.
5. Para hacer un item de solo lectura:
a. Bajar con el scroll hasta Read Only Display Settings
b. Seleccionar desde la lista Read Only Condition Type.
c. Ingresar las expresiones que correspondan para condicionar.
6. Click en Aplicar Cambios.

Working with a Multiple Select List Item

Un item multiple select se muestra como una lista de multiples elementos select. Cuando
se submite, los valores seleccionados son retornados en un solo string separados por dos
puntos. Se pueden manejar los valores dados en este formato de dos formas:
• Usando la función INSTR
• Usando la función HTMLDB_UTIL.STRING_TO_TABLE

Using HTMLDB_UTIL.STRING_TO_TABLE to Convert Selectd Values


Supongase que se tiene un reporte sobre las tablas emp y dept que están acotadas a los
departamentos seleccionados desde un lista de departamentos (multiple select), a tal fin se
crea el item (multiple select), P1_DEPTNO, utilizando la siguiente consulta:

SELECT dname, deptno


FROM dept

En segundo lugar, se retornan solo aquellos empleados que pertenecen a los departamentos
seleccionados, asi:

SELECT ename, job, sal, comm, dname


FROM emp e, dept d
WHERE d.deptno = e.deptno
AND instr(':'||:P1_DEPTNO||':',':'||e.deptno||':') > 0

Luego, se desea pasar los valores seleccionados en el item (multiple select) a una tabla,
P1_DEPTNO. Para lograr esto, se debe convertir la cadena de strings delimitados por dos
puntos en una matriz PL/SQL utilizando la función HTMLDB_UTIL.STRING_TO_TABLE. El
-75-
Application Express User's Guide Building an Application

siguiente ejemplo muestra como insertar los departamentos seleccionados en una tabla de
auditoria conteniendo la fecha de la consulta.

DECLARE
l_selected HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
--
-- Convierte una cadena de strings,delimitados por dos puntos, en una
-- matriz PL/SQL

l_selected := HTMLDB_UTIL.STRING_TO_TABLE(:P1_DEPTNO);

--
-- Loop sobre la matriz para insertar los números de departamentos
-- y la fecha del sistema (sysdate).
--

FOR i IN 1..l_selected.count
LOOP
INSERT INTO report_audit_table (report_date, selected_department)
VALUES (sysdate, l_selected(i));
END LOOP;
END;

Ver: "STRING_TO_TABLE Function"

Creating an Application-Level Item

Los items a nivel de aplicación no se displayan, pero son usados como variables globales de
la aplicación.

Para crear un nuevo item a nivel de aplicación:


1. Navegar a la Database Home Page.
2. Click en el ícono Application Builder.
3. Seleccionar una aplicación.
4. Cuando aparece Application Builder, click en Shared Components.
5. En Logic, seleccionar Items. Aparece la página de Application Items.
6. Para crear un nuevo item, click en Create.
7. Continuar con las indicaciones de pantalla.

About the Application Items Page


Una vez que se tiene creado un item a nivel de aplicación, este aparecerá en la página de
items a nivel de aplicación. Se puede controlar como se muestra la página de items (a nivel
de aplicación) seleccionando una opción desde la lista View. Las opciones disponibles son:
• Icons (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).

Accessing Application Item History


Se puede ver la historia de los cambios de los items, a nivel de aplicación, con un click en
History, al tope de la página de items a nivel de aplicación.

-76-
Application Express User's Guide Building an Application

Populating an Alternative Date Picker Format

Si se necesita crear un item Date Picker, pero el formato que necesitas no aparece en la
lista Display As, seleccionar Date Picker (use application format mask). Cuando la
aplicación usa este tipo de fecha (Date Picker), el motor del Application Express deriva el
formato de la fecha desde un item denominado PICK_DATE_FORMAT_MASK. Se puede
definir (cambiar el valor), este item de dos formas:
• Al definir un string de sustitución llamado: PICK_DATE_FORMAT_MASK
• Al crear un item a nivel de aplicación llamado: PICK_DATE_FORMAT_MASK

Defining PICK_DATE_FORMAT_MASK as an Application Substitution String


Un método para definir el PICK_DATE_FORMAT_MASK es crear un string de sustitución. Los
strings de sustitución, a nivel de aplicación, se definen en la página de Edit Application
Attribuites. Tener en cuenta que un string de sustitución, a nivel de aplicación, es un valor
estático y no puede ser alterado en tiempo de ejecución.

Para definir un string de sustitución (a nivel de aplicación)PICK_DATE_FORMAT_MASK :


1. En la página Database Home Page, click en Application Builder.
2. Seleccionar una aplicación. Aparece el Application Builder.
3. Click en el ícono Edit Attributes.
4. Click en Edit Standard Attributes.
5. Bajar con scroll hasta Static Substitution Strings.
6. Crear un nuevo string de sustitución estático PICK_DATE_FORMAT_MASK :
a. En Substitution String, ingresar “PICK_DATE_FORMAT_MASK”.
b. En Substitution Value, ingresar un valor (ej., Month DD, YYYY).

Defining an Application-Level Item Named PICK_DATE_FORMAT_MASK


Otro método para indicar el valor de PICK_DATE_FORMAT_MASK es crear un item a nivel de
aplicación denominado PICK_DATE_FORMAT_MASK. Esto forma permite tener el control del
formato de fecha, de la aplicación, en tiempo de ejecución, de cualquier item mostrado como
PICK_DATE_FORMAT_MASK, al setear, simplemente, el valor de la máscara. Además se
puede setear el valor de PICK_DATE_FORMAT_MASK a través de cálculos, en cualquier
lugar, dentro de la aplicación.

Si se desea prover al usuario una lista de formatos de fechas como preferencias de la


aplicación, se necesitará crear un item a nivel de aplicación denominado
PICK_DATE_FORMAT_MASK y luego utilizar programación para setear el valor de este item
basado en la selección del usuario.

Ver: "Creating an Application-Level Item"

-77-
Application Express User's Guide Building an Application

Creating Lists of Values

Una lista de valores (LOV) es conjunto de valores estáticos ó dinámicos utilizados para
mostrar un item de página específico, tal como una lista popup de valores, una select list,
una check box, un radio group, ó lista multiple select.

Temas:

• Creating Named LOVs at the Application Level


• About Static LOVs
• Editing an Existing LOV
• Referencing Session State Within a LOV
• Referencing a Null Value in an Item Based on a LOV
• Accessing LOV Reports

Ver también: "Creating Items"

Creating Named LOVs at the Application Level

Se definen LOVs a nivel de aplicación mediante la ejecución del wizard Create LOV y
agregandolas a la lista de valores del repositorio. Todas las LOVs pueden ser definidas
como estáticas ó dinámicas. Las listas estáticas están basadas sobre pares predefinidos de
valores a mostrar y retornar. Las listas dinámicas están basadas sobre consultas SQL sobre
una tabla.

Para crear una LOV:


1. En la Database Home Page, click en Application Builder.
2. Seleccionar una aplicación. Aparece la home page de la aplicación.
3. Click en el ícono Shared Components.
4. En User Interface, seleccionar Lists of Values.
5. Para crear una nueva LOV, click en Create.
6. Seguir las instrucciones de la pantalla. Las nuevas LOVs son agregadas al repositorio
de List of Values.

About the List of Values Page


Una vez que se creo la LOV, aparece sobre la página de List of Values. Se controla la forma
en que se muestra la página mediante una selección desde la lista View. Las opciones
disponibles son:
• Icons (el default) muestra cada LOV como un gran ícono. Para editar la LOV, click
sobre el ícono correspondiente.
• Details muestra cada LOV como una línea de reporte. Para editar un LOV, click sobre
el nombre de la misma.

About Static LOVs

Las LOVs estáticas se basan sobre una lista estática de valores a mostrar y retornar que se
especifican cuando se crea la misma con el wizard. Para crear una LOV estática, se ejecuta
el wizard Create LOV y se selecciona Static en LOV type. Oracle Application Express
guarda los valores a mostrar, los valores a retornar y la secuencia de ordenación que se
especifica en el repositorio de listas de valores. Una vez que se agregó la LOV estática al
-78-
Application Express User's Guide Building an Application

repositorio, se puede crear un item y displayar esta LOV como un check box, un radio group,
una select list ó una popup list.

Editing an Existing LOV

Para editar una LOV existente, seleccionar la LOV en la página de List of Values.
1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
3. Click en Shared Componentes.
4. En User Interface, seleccionar Lists of Values
5. Seleccionar una LOV. Aparece la página de edición de la LOV.
6. Editar los atributos apropiados y click en Apply Changes.

Bulk Edit of Static LOVs


Se pueden editar los valores a mostrar de todas las LOVs estáticas al cliquear en el botón
Grid Edit sobre la página Edit List of Values.

Para ejecutar una edición de todas las LOVs estáticas:


1. En la Database Home Page, click en App.Builder.
2. Seleccionar una aplicación.
3. Click en Shared Components.
4. En User Interface, seleccionar Lists of Values. Por default, las LOVs se muestran
como íconos.
5. Cambiar el display por default. Seleccionar Details desde la lista View y click en Go.
6. Elegir Static LOV y seleccionar el nombre de la LOV.
7. Click en el botón Grid Edit ubicado debajo de Subscription.
8. Editar los correspondientes valores a displayar y click en Apply Changes.

Referencing Session State Within a LOV

Se puede referenciar el estado de sesión al utilizar variables bind. En el siguiente ejemplo, la


LOV solo trabaja si el item my_deptno contiene un número de departamento váldio:

SELECT ename, empno FROM emp WHERE deptno = :my_deptno

Referencing a Null Value in an Item Based on a LOV

Las LOVs tienen la opción de mostral el valor null y la opción de retornar el valor null. El
valor null a mostrar es el valor que el usuario vé en la lista y le indica que no ha
seleccionado un valor apropiado (non-null) desde la lista. Cuando un usuario selecciona un
valor null, ó empty (vacío), el valor que se transmite no es un string vacio ó un Oracle null,
sino un literal %null%. La aplicación debe estar preparada para procesar este literal y tratar
esta selección como valor null.

Hay que tener en cuenta este comportamiento cuando se escribe el código para procesar los
valores submitidos. Por ejemplo, sea una evaluación al submitir el item P1_X y se necesita
usar la expresión PL/SQL replace(:P1_X,'%'||'null%',null)para preparar el item
para guardar permanentemente en estado de sesión o para pasar a una DML ó a otra APIs.

-79-
Application Express User's Guide Building an Application

Para evitar problemas, tener en cuenta la forma apropiada de codificar %null% en


expresiones que ocurren en los cálculos, procesos, y validaciones en la página. Se debe
separar el string %null% asi la aplicación no replaza por un valor null en la página cuando
este es salvado. Considere el siguiente ejemplo:

'%'||'null%'

Accessing LOV Reports

El Application Builder incluye varios reportes ya diseñados para ayudar manejar mejor las
LOVs.
Para acceder a los LOV reports:
1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
3. Cuando aparece App.Builder, click en Shared Components.
4. En User Interface, seleccionar Lists of Values.
5. Seleccionar una de los siguientes tabs al tope de la página:
• Search
• Subscription
• Utilization
• History
6. Continuar con las instrucciones dadas en pantalla.

Search
Click Search para mostrar la página de Search Dynamic Lists of Values. Utilizar esta página
para buscar las consultas que soportan a las LOVs dinámicas. Ingrese una consulta en el
campo uery Contains y click en Go.

Subscription
Click en Subscription para mostrar la página de List of Values Subscription. Esta página
muestra todas las LOVs de la aplicación.

Utilization
Click en Utilization para mostar la página List of Values Utilization. Esta página muestra las
LOVs utilizadas en la actual aplicación. Para editar una LOV, click sobre el nombre de la
misma.

History
Click en History para mostrar la página List of Values History. Esta página muestra la history
reciente de los cambios de la LOVs por fecha.

-80-
Application Express User's Guide Building an Application

Using Shortcuts

Utilizando shortcuts se puede evitar repetir códificar funciones HTML ó PL/SQL. Se pueden
usar shortcut para definir una página de control, un botón, un texto HTML, un procedimiento
PL/SQL, ó HTML. Una vez definido, se puede invocar un shortcut usando la sintaxis
específica para localizarlo. Shortcuts pueden ser referenciados muchas veces, además
reducen redundancia de código.

Temas:

• About Shortcut Types


• Defining Shortcuts
• Accessing Shortcut Reports

About Shortcut Types http://127.0.0.1:8080/i/doc/bldapp_cut_about.htm#CEGBDBAE

Cuando se crea un nuevo shortcut, se debe especificar el tipo de shortcut que se desea
crear. Oracle Application Express soporta los siguientes tipos de shortcut:

• PL/SQL Function Body


• HTML Text
• HTML Text with Escaped Special Characters
• Image
• Text with JavaScript Escaped Single Quotes
• Message
• Message with JavaScript Escaped Special Quotes

Text with JavaScript Escaped Single Quotes


Use este tipo de shortcut para referenciar un shortcut dentro de un string literal de
JavaScritp. Este shortcut define un string de texto. Cuando el shortcut es referenciado, este
evita las comillas simples requereidas para JavaScript.

Message
Use este tipo de shortcut para referenciar un mensaje traducible en tiempo de ejecución.
Notese 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 expande al texto del mensaje traducido al lenguaje actual.

Message with JavaScript Escaped Single Quotes


Use este tipo de shortcut para referenciar un shortcut dentro de un string literal de JavaScript
y referenciar un mensaje traducible en tiempo de ejecución.

Ver: "About Translating an Application and Globalization Support"

Defining Shortcuts

Antes que se pueda incorporar un shortcut en la aplicación, se debe definirlo y agregarlo al


repositorio de Shortcuts. Los nuevos shortcuts se referencian utilizando la siguiente sintaxis:

"MY_SHORTCUT"

-81-
Application Express User's Guide Building an Application

Note que el nombre del shortcut debe ser capitalizado y encerrado entre comillas.

Para definir un nuevo shortcut:


1. En la Database Home Page, click en App.Builder.
2. Seleccionar una aplicación.
3. Cuando aparece el Application Builder, click en Shared Components.
4. En User Interface, seleccionar Shortcuts.
5. Click en Create.
6. Seleccionar uno de los siguientes métodos de creación:
a. From Scratch
b. As a Copy of an Existing Shortcut
7. Continuar con las instrucciones de pantalla.

Los nuevos shortcuts son agregados al repositorio y están disponibles para usarlos en:
• El atributo Region Source de regiones definidas como HTML Text (con shortcuts).
Ver: "Customizing Regions".
• En los textos de los atributos Header y Footer de una Región. Ver: "Specifying a
Region Header and Footer"..
• En los atributos Label y Default Value de un item. Ver: "Items".
• En el atributo Templates de una Región. Ver: "Editing Templates"..

About the Shortcuts Page


Una vez que se creo un shortcut, este aparecerá en la página de Shortcuts. Se controla la
vista de la página haciendo click en la lista View. Las opciones disponibles son:
• Icons (el default) muestra cada shortcut como un gran ícono.
• Details muestra cada uno como una linea de reporte.

Accessing Shortcut Reports

El Application Builder incluye varios reportes diseñados para ayudar a una mejor gestión de
las LOVs. Para acceder a los Shortcut Reports:
1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
3. Cuando aparezca Application Builder, click en Shared Componentes.
4. En User Interface, seleccionar Shortcuts.
5. Click en uno de los siguientes botones:
a. Subscription
b. History

Nota: Los botones Subscription y History solo aparecen después de que se crea el shortcut.

Subscribed Shortcuts
Click en Subscription para mostrar la página de Subscribed Shortcuts. Esta página muestra
todos los shortcuts (subscirbed) de la aplicación.

Shortcut History
Click en History para mostrar la página de Shortcut History. Esta página muestra la historia
reciente de los cambios de shortcuts por fecha.

-82-
Application Express User's Guide Building an Application

Incorporating JavaScript into an Application

Una buena forma de agregar características que imitan los atributos de las aplicaciones
client/server es incorporando JavaScript a las aplicaciones Web, sin sacrificar los beneficios
de los desarrollos Web. Oracle Application Express incorpora múltiples interfaces integradas
y especialmente diseñadas para incorporar JavaScript.

Tener en cuenta que JavaScript no es apropiado para validaciones intensivas de datos. Por
ejemplo para verificar que el nombre está contenido dentro de una tabla grande de base de
datos ya que se debería crear un enorme documento HTML con los registros de los clientes.
En general, las operaciones complejas de validación se ubican mejor del lado de las
validaciones del servidor Application Express en vez de hacerlo con JavaScript.

Temas:

• Referencing Items Using JavaScript


• Incorporating JavaScript Functions
• Calling JavaScript from a Button

Ver: "Understanding Validations"

Referencing Items Using JavaScript

Cuando se referencia un item, la mejor forma es hacerlo por el ID. Si se observa el fuente
HTML de una página del Oracle Application Express en un Web 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 P1_FIRST_NAME y una etiqueta
First Name el id será P1_FIRST_NAME.

Conocer el ID del item, permite al desarrollador utilizar el método getElementById() para


obtener y para setear los valores y atributos del item. El siguiente ejemplo muestra como
referenciar un item mediante su ID y mostrar su valor en un mensaje de alerta (alert box).

<script language="JavaScript1.1" type="text/javascript">


function firstName(){
alert('First Name is ' + document.getElementById('P1_FIRST_NAME').value );
}
// or a more generic version would be
function displayValue(id){
alert('The Value is ' + document.getElementById(id).value );
}
</script>

// Then add the following to the "Form Element Attributes" Attribute of the item:
onchange="displayValue('P1_FIRST_NAME');"

Incorporating JavaScript Functions

Hay dos lugares para incluir funciones JavaScript:


• En el atributo Header de la página HTML.

-83-
Application Express User's Guide Building an Application

• En un archivo .js en el template de la página.

Ver para mayor información acerca de cómo referenciar un shortcut dentro de un string literal
de JavaScript, en "Text with JavaScript Escaped Single Quotes"

Incorporating JavaScript in the HTML Header Attribute


Una forma de incluir JavaScript dentro de la aplicación es agregandolo en el atributo Header
de la página HTML. Esta es una buena forma para funciones que son muy específicas de
una página asi como también una conveniente forma de testear una función antes de
incluirla en un archivo .js.

Se puede agregar funciones JavaScript, a una página, simplemente mediante el ingreso de


código en el atributo HTML Header de la Page Attributes de la página en cuestión. Por
ejemplo, agregar la función test para que esté accesible desde cualquier lugar de la página.

Para agregar código JavaScript en el atributo HTML Header:


1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
3. Seleccionar una página.
4. Click en Edit Attributes
5. Bajar hasta el atributo HTML Header.
6. Ingresar el código y click en Apply Changes.

Por ejemplo, agregando lo que sigue testea que una función este accesible desde cualquier
lugar de la actual página.

<script type="text/javascript">
function test(){
window.alert('This is a test.');
}
</script>

Ver también: "HTML Header"

Including JavaScript in a .js File Referenced by the Page Template.


En Oracle Application Express se puede referenciar a un archivo .js en el template de la
página. De esta forma todo el código JavaScript del .js queda accesible a la aplicación. Esta
no es la forma más eficiente, dado que, un .js se carga en la primer página que se vé de la
aplicación y luego queda cacheado por el browser.
El siguiente código muestra como incluir un .js en la sección del header del page template.
Notar la linea script src= que aparece en negrita.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<HTML>
<head>
<title>#TITLE#</title>
#HEAD#
<script src="http://myserver.myport/my_images/custom.js" type="text/javascript"></script>
</head>
<body #ONLOAD#>#FORM_OPEN#

-84-
Application Express User's Guide Building an Application

Ver tambien: "Page Templates"

Calling JavaScript from a Button

Llamar a un JavaScript desde un botón es una buena forma de confirmar una pantalla.
Oracle Application Express 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 JavaScript aparece
consultando al operador para que confirme la acción. Considerese el siguiente ejemplo:

<script type="text/javascript">
function deleteConfirm(msg)
{
var confDel = msg;
if(confDel ==null)
confDel= confirm("Would you like to perform this delete action?");
else
confDel= confirm(msg);

if (confDel== true)
doSubmit('Delete');
}
</script>

Este ejemplo crea una función para confirmar una acción de borrar y luego invoca a la
función desde un botón. Note que la función opcionalmente submite la página y setea el
valor de la variable interna :REQUEST a Delete, además ejecuta el delete usando un
proceso que condiciona la ejecución vasado en el valor de la respuesta.

Nótese que cuando se crea un botón se necesita seleccionar Action Redirect to URL
without submitting page. Luego se especifica una URL destino tal como la siguiente:

confirmDelete('Would you like to perform this delete action?');

Ver también: "Creating a Button Using a Wizard"

Creating Dependent Select Lists

Se puede usar una “select list” (lista de selección) para determinar el rango de valores de
otra “select list” de la misma página. Se puede lograr esta funcionalidad por medio de una
“select list” que controle los valores submitidos a la siguiente “select list”. Se incorporan
estos valores en la siguiente “select list” como una variable bind en la clausula WHERE de la
consulta.

Se tiene una LOV que controla a otra LOV:


• Crear un form básico.
• Definir dos listas de valores. Notar que la LOV controladora debe submitir la página
después de que se elige un valor.
• Definir un bifurcación que retorne a la página actual

Considérese el siguiente ejemplo. La primera LOV permite al usuario elegir una pais (ó
estado nacional)
-85-
Application Express User's Guide Building an Application

SELECT state_name d, state_id v


FROM states

La segunda LOV selecciona el nombre de una provincia y el ID (de la provincia) desde una
lista condicionada por el id del pais seleccionado en la primera LOV.

SELECT county_name d, county_id v


FROM counties
WHERE state_id = :Px_STATE_ID

Ver también:

• "Creating Forms"
• "Creating Lists of Values"
• "Controlling Navigation Using Branches"

Creating a Help Page

El generador de aplicaciones incluye atributos predefinidos para crear el “Ayuda” de la


aplicación. Crear la “Ayuda” de la aplicación consiste sencillamente en los siguientes pasos:
• Crear una página de ayuda específica y una regíon de ayuda.
• Definir el texto de la página de ayuda.
• Definir el texto del item de ayuda.
• Crear un ícono en la barra de navegación para enlazarlo con la página de ayuda.

Las ayudas creadas en Application Builder se muestran sobre una página de ayuda
específica. Para acceder a la ayuda, los usuarios hacen click en un enlace que los conduce
a la página de ayuda específica. Esta página de ayuda muestra una página e items de ayuda
con tópicos específocos de la página que se está viendo.
Temas:

• Creating a Help Page and Region (Crear una región y página de ayuda)
• Defining Help Text (Definir el texto de la ayuda)
• Creating a Help Navigation Bar Entry (Crear un ícono, de ayuda, en la barra )

Creating a Help Page and Region

El primer paso, en la creación de la ayuda de una aplicación, es crear una página especial y
una región de texto de ayuda.
Para crear una nueva región de texto de ayuda:
1. Crear una nueva página para la ayuda. Ver "Adding Pages to an Application".
2. Navegar a la Page Definition de la página creada. Ver "Accessing a Page Definition".
3. Bajar a Regions, seleccionar el ícono Create
4. Cuando aparezca para seleccionar el tipo de región, seleccionar Help Text
5. Seguir las instrucciones de la pantalla.

Defining Help Text http://127.0.0.1:8080/i/doc/bldapp_hlp_text.htm

-86-
Application Express User's Guide Building an Application

Se define el texto de ayuda para la página ó un solo item mediante la edición de sus
atributos. Idealmente se debería definir estos atributos cuando se crea la aplicación. Sin
embargo por simplicidad, el siguiente procedimiento describe como definir este texto
despues de que se ha creado la aplicación.

Para definir una página de ayuda:


1. Navegar a la Page Definition de la página a la que se le desea agregar una pagina de
ayuda.
2. Clic en Edit Attributes para ver la página de atributos existentes.
3. Bajar hasta Page Help Text.
4. Ingresar el texto de ayuda en el campo que se muestra.
5. Clic en Apply Changes.

Repetir el procedimiento previo para cada página que se requiere texto de ayuda.
Para definir el texto de ayuda de un item de una página:
1. Navegar a la Page Definition de la página a la cual se desea agregar ayuda a un item.
2. En Items, click en el nombre del item que se desea editar.
3. Bajar hasta Help Text.
4. Ingresar el texto de ayuda en el campo provisto.
5. Click en Apply Change.

Repetir este proceso para cada item que requiere texto de ayuda.

Editing Múltiple Item Help Topics at Once


Si se trata de incluir texto de ayuda a los items de la aplicación, se pueden editar múltiples
textos de ayuda de items a la vez usando el reporte Bulk Edit Item Help.

Accessing the Bulk Edit Item Help Report


Para ver el reporte Bulk Edit Item Help:
1. En la Database Home Page, click en el ícono Application Builder
2. Seleccionar una aplicación.
3. Sobre la lista de tareas (Tasks list), click en View Application Reports.
4. Click en Page Componentes.
5. Seleccionar Item Help Text. Se displaya un reporte en la parte inferior de la página.
6. En el reporte Bulk Item Help se puede:
a. Actualizar el texto de una ayuda existente (update existing help topics). Se
edita el texto que se está mostrando y se hace click en Apply Changes.
b. Conectar a la Page Definition que contiente el item mediante un click en el ID
de la página.
c. Conectar a la Page Item mediante un click en el nombre del item.

Seeding Item Help Topics


Si la aplicación todavía no tiene texto de ayuda, se puede ejecutar una actulización masiva
del texto de ayuda por default.
Para setear los temas de ayuda de los items:
1. Acceder al reporte Bulk Edit Item Help.
2. Click en Seed Item Help Text
3. En Default Help Text, ingresar el texto de ayuda por omisión que aparecerá en todos
los casos.
4. Click en Apply Changes.

-87-
Application Express User's Guide Building an Application

Searching for Existing Item Help Topics.


Se puede buscar ayuda por texto o por la etiqueta del item.
Para buscar ayuda por texto:
1. En Help contains, ingrese las palabras claves.
2. Click en Go.

Searching for an Item Label


Para buscar por la etiqueta de un item:
1. En Help contains, ingresar las palabras claves (la etiqueta).
2. Click Go.

Ver también: "Viewing Application Reports"

Creating a Help Navigation Bar Entry

Una vez que se ha creado la ayuda, el paso siguiente es crear una entrada en la barra de
navegación de forma tal que los usuarios puedan accederla.
Para crear una entrada en la barra de navegación:
1. Navegar a la Page Definition:
a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.
c. Seleccionar una aplicación.
d. Selección una página. Aparece la definición de la página.
2. En Navigation Bar, click en el ícono Create.
3. Especificar las entradas que correspondan a los atributos de la barra.
a. Séquense
b. Alt Tag Text
c. Icon Image Name
d. Image Height and Image Width
e. Text
4. Especificar la ubicación destino, para ello:
a. En Target type, seleccionar Page in this application.
b. En Page, especificar el id de la página.
c. En Request, escribir: &APP_PAGE_ID

Al especificar el string de sustitución &APP_PAGE_ID como Request (petición), se instruye


al motor del Application Express a mostrar el texto de ayuda la página actual cuando el
usuario hace click en este ícono.

-88-
Application Express User's Guide Building an Application

Controlling Page Layout and User Interface

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 imágenes y cascading style sheets.

Temas:

• Understanding Page Layout


• Displaying Components on Every Page of an Application
• Customizing Regions
• How Item Attributes Affect Page Layout
• Incorporating Content from Other WebSites
• Managing Themes
• Customizing Templates
• Optimizing a Page for Printing
• Using Custom Cascading Style Sheets
• Managing Images
• Managing Static Files
• Creating a Multiple Column Layout
• Rendering HTML Using Custom PL/SQL

Ver también: "Adding Navigation" para mayor información sobre creación de bars, tabs,
breadcrumbs, lists y trees.

Understanding Page Layout

El motor del Application Express genera páginas por la combinación de templates con
componentes definidos por el desarrollador y datos de la base.
La estructura de la página es deterimnada por el template de la página. Por ejemplo, el
template de la página controla si una página utiliza tabs y una barra de navegación. También
puede definir si la página incluye una barra del lado izquierdo que sirve como un contenedor
de enlaces de navegación a páginas secundarias. Finalmente, 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 HTML ó style sheet. El template de página esta
compuesto de una combinación de HTML con strings de sustitución los cuales se sustituirán
con el componente apropiado en tiempo de ejecución.

Como desarrollador, se agrega contenido sobre una página mediante la creación de


regiones. Una región es un área de una página que sirve como un contenedor. Cada región
contiene un tipo diferente de contenido, tal como, HTML, report, form, chart, list, breadcum,
pl/sql, un arbol, una url, ó un calendario. Se posiciona la región en forma relativa a otras
regiones (es decir, basado sobre una secuencia de números 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. Al igual que el page template, el region template define la estructura del
area que la región toma como una página. Esto define si el título de la región es mostrado y
donde este es displayado relativo al contenido principal, ó al cuerpo de la página. Una región
puede también definir posiciones absolutas para los botones.

Ver también: "Creating a Region"

-89-
Application Express User's Guide Building an Application

Displaying Components on Every Page of an Application

La página cero de la aplicación funciona como la página principal ó maestra. El motor del
Application Express genera todos los componentes que se agregan a la página cero sobre
cada página dentro de la aplicación. Se puede además controlar si el motor del Application
Express genera un componente, ó ejecuta un cálculo, validación ó procesos mediante la
definición de condiciones.
Para crear una página cero:
1. Crear una nueva página.
2. Especificar el ID de la página en cero.
Ver también:"Adding Pages to an Application", "Understanding Conditional Rendering and
Processing", and "Available Conditions"

Customizing Regions

Una región es una área de una página que sirve para contener algún componente. Cada
página puede tener cualquiér cantidad de regiones. Se puede controlar la apariencia de una
región a través de especificaciones en el template de la region. El template de la región
controla el aspecto, el tamaño, 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.

Se pueden usar regiones para agrupar controles de páginas (tales como items ó botones).
Se puede crear una región simple que no genera código HTML adicional, o crear regiones
elaboradas que enmarcan el contenido de tablas HTML ó imágenes.

Las regiones se muestran en secuencia dentro de las columnas de una tabla HTML. Se
puede especificar también ubicaciones específicas para una región, en posiciones definidas
en el template de la página. También se puede condicionar el display de una región.

Temas.
Creating a Region

Se puede crear una nueva región ejecutando el Create Region Wizard.


1. Navegar a la correspondiente Page Definition:
a. Navegar a la Database Home Page.
b. Click en el ícono Application Builder.
c. Seleccionar una aplicación.
d. Seleccionar una página. Con lo cual aparece la definición de la página.
2. En Regions, click en el ícono Create. Aparece el wizard que crea una región.
3. Seleccionar un tipo de región y continuar con las instrucciones de pantalla.

Cuando se crea una región se selecciona de que tipo es. El motor del Application Express
interpreta la región basándose en el tipo que fue definida. La tabla de tipos de regiones está
disponible a continuación.

Region Type Description


HTML Cuando se selecciona HTML, el wizard solicita se seleccione uno de los
siguientes:

• HTML – Funciona como un contenedor de items y contiene el


-90-
Application Express User's Guide Building an Application

Region Type Description


HTML que se le provee. Admite strings de sustitución en el código
HTML que se le escriba.
• HTML Text (escape special characters) – Es igual al anterior, pero
el motor convierte los caracteres especiales antes que ellos sean
generados.
• HTML Text (with shortcuts) – Soporta shortcuts.

Ver también: "Using Shortcuts"


Report Las regiones reports se pueden definir mediante una consulta sql, ó
mediante la utilización de un wizard que guie la escritura de la consulta sql.

Ver también: "Creating Reports"


Form Son utilizadas para contener formularios.

Ver también: "Creating Forms"


Chart Una región gráfica contine graficos de lineas, barras, ó torta basados en
consultas sql.

Ver también: "Creating Charts"


List Una región del tipo List, contiene una colección de links denominada lista.

Ver también: "Creating Lists"


Breadcrumb Contiene una lista jerárquica de links denominada breadcrumb.

Ver también: "Creating Breadcrumbs"


PL/SQL Este tipo permite generar cualquier HTML o texto usando el PL/SQL Web
Dynamic Toolkit.
Content
Tree Los árboles son controles de navegación jerárquicos basados en consultas
sql en tiempo de ejecución. Permite al usuario expandir / colapsar nodos.

Ver también: "Creating Trees"


URL Este tipo de regiones obtiene su contenido mediante un llamado a un
servidor web usando una URL predefinida.

Ver también: "Incorporating Content from Other WebSites"


Calendar Se utilizan para contener un calendario mensual.

Ver también: "Creating Calendars"


Multiple HTML Se utiliza esta opción para crear múltiples regiones HTML de una sola vez.
En los campos provistos, se especifica la secuencia, el titulo, punto de
display, template del report y la columna de cada región.
Help Text Las regiones Help Text permite crear ayudas a nivel de página.

Ver también: "Creating a Help Page"

-91-
Application Express User's Guide Building an Application

Ver también:

• Oracle Database Application Developer's Guide - Fundamentals para más información


sobre desarrollo de aplicaciones web con pl/sql.
• Oracle Database PL/SQL Packages and Types Reference para más información
sobre paquetes htp.
• "How Region Attributes Affect Page Layout"

How Region Attributes Affect Page Layout

Se puede alterar la apariencia de una página cambiando los atributos de la región. Para
editar los atributos de la región.
1. Navegar a la correspondiente Page Definition.
2. En Regions, seleccionar un nombre de región, con lo cual aparece la definición de la
región.

La siguiente tabla describe los atributos que afectan el layout de una página.

Table: Region Attributes Affecting Page Layout


Attribute Description
Conditions Define condiciones que determinan si la región se muestra. Las
condiciones pueden hacer referencia al estado de la sesión, al usuario
actualmente loggeado, ó a las preferencias de entorno tales como si la
página está en modo Print View.

Ver También: "Understanding Conditional Rendering and Processing"


y "Optimizing a Page for Printing"
Header and Footer Especifica el texto HTML que se mostrará en la región de tope de
página (justo antes del contenido de #BODY#).
Customization Habilita al usuario final a utilizar las preferencias. Para ello se debe
incluir el string de sustitución #CUSTOMIZE# en la sección del
Header, Body, ó Footer del template de la página.

Ver También: "Enabling Users to Customize a Page"


User Interface, Determina la columna en la cual se muestra la región. Si dos regiones
Column 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 2.
Muchas regiones se pueden displayar en cada columna y el orden de
display de la región es controlado por el region display sequence
number.
User Interface, Determina como se muestra la región. Seleccionar desde los
Template templates definidos en la aplicación. Para ver los atributos de
template, click en el nombre del template sobre la Page Definition.

Ver También: "Customizing Templates" y "Region Templates"


User Interface, Especifica el orden de display de la región dentro de la página.
Sequence
User Interface, Identifica en que lugar dentro de la página se muestra la región. Las
-92-
Application Express User's Guide Building an Application

Attribute Description
Display Point regiones son generadas en el orden del número de secuencia en un
Display Point. Click en el ícono View para ver el layout de la página y
seleccionar una posición.

Los posibles Display Point para una región quedan determinados por
el atributo page-level del template (el cual es un atributo de la página).
Si no hay un template page-level seleccionado, se utiliza el default,
definido en la Application Definition.
User Interface, Define atributos adicionales a ser usados en las celdas de las tablas
Region HTML table HTML cuando la región se displaya en múltiples columnas. Los
cell attributes atributos controlan las celdas en las tablas que se usan para el lay out
de una región en múltiples columnas.

Controlling Region Positioning


Cuando se crea una región, se debe especificar su posición (ó Display Point) en la página.
Se puede elegir entre la posición por default (tal como Page Template Body) ó una posición
definida por el usuario en el template (tal como Page Template Region Position 1).
Además del Display Point, se puede especificar la columna en la cual la región será ubicada.
Cuando se ubican regiones en múltiples columnas, Oracle Application Express
automáticamente genera el HTML necesario para producir un layout con múltiples columnas.

Specifying a Region Header and Footer


Además del contenido en el cuerpo de la región (el cual puede ser un reporte, gráfico ó
HTML con elementos de formulario), se puede especificar código HTML adicional arriba ó
abajo de la región ó en su encabezado y pié. El pie de una región soporta los siguientes
strings de sustitución:

• #TIMING# muestra el tiempo transcurrido, en segundos, desde que se generó la


región. Se puede utilizar para propósitos de depuración.
• #ROWS_FETCHED# Muestra la cantidad de filas traidas por el motor del reporte del
Oracle Application Express (es el page size). Se puede usar este string de sustitución
para mostrar mensajes más apropiados a los usuarios. Por ejemplo:

Se trajeron #ROWS_FETCHED# filas en #TIMING# segundos.

• #TOTAL_ROWS# Muestra el número total de filas que cumplen con el where de la


consulta del reporte.
• #FIRST_ROW_FETCHED# y #LAST_ROW_FETCHED# Muestra el rango de filas
displayadas (del total), por ejemplo:
• displays the range of rows displayed. For example: Se muestran #ROWS_FETCHED#
filas, desde la #FIRST_ROW_FETCHED# a la fila #LAST_ROW_FETCHED#

Enabling Users to Customize a Page


Se puede usar el atributo Customization para permitir que los usuarios cambiar las regiones
cuando se ejecuta la aplicación. Para ello:
1. Navegar a la correspondiente definición de página (Page Definition).
2. En Regions, hacer click en el nombre de la región. Aparece la definición de la región.
3. Bajar hasta Customization y seleccionar uno de los siguientes:
a. Customizable y no se muestra el default.
b. Customizable y se muestra el default.
-93-
Application Express User's Guide Building an Application

4. En Customized Option Name, ingresar la etiqueta que representa esta región en la


página del usuari.
5. Incluir el string de sustitución #customize# en la sección correspondiente ( Header,
Body ó Footer ) del template de la página.

Para utilizar esta opción, se debe incluir el string de sustitución #CUSTOMIZE# en la


sección correspondiente ( Header, body ó Footer) del template de la página.
Si al menos una región soporta customization por el usuario, aparece un link denominado
Customize donde se incluya el string de sustitución #CUSTOMIZE# en el page template.
Cuando el usuario hace click en este link, se muestra una ventana al usuario permitiéndole
habilitar/deshabilitar regiones de la página.
Ver también: "Customizing Templates"

How Item Attributes Affect Page Layout

Un item es parte de un formulario HTML y puede ser un campo de texto, un área de texto,
una password, una lista de selección, un check box, etc. Se puede la apariencia de una
página cambiando los atributos de los items. Por ejemplo, estos atributos pueden afectar en
que lugar se displaya, que tamaño tendrá, si el item se displayará a la derecha ó debajo del
item previo.
Ver también: "Creating Items"
Para editar los atributos de un item:
1. Navegar a la definición de la página.
2. En Items, seleccionar el item deseado, con lo cual aparece la definición del item.

Table: Item Attributes Effecting Page Layout describe como afecta al layout cada atributo de
un item.

Heading Atributo Descripción


Displayed Sequence Determina el orden en el cual los items serán generados
dentro de la región.
Displayed Region Define la región en la cual se mostrará el item. Todos los
items están en una región.
Displayed Begin On New Determina si este item se muestra sobre la misma linea del
Line item previo ó si se muestra sobre la siguiente.
Displayed Begin On New Determina si este item se muestra en la próxima columna ó
Field en la misma columna del item previo.
Displayed ColSpan Los items son colcados en tablas html. Define el valor a ser
usado por el atributo COLSPAN de la celda que contendrá
al item.
Displayed RowSpan Los items son colocados en tablas html. Define el valor a
ser usado por el atributo ROWSPAN de la celda que
contendrá al item.
Label Label Registra la etiqueta para este item. Se pueden incluir html,
JavaScript, y shortcuts. Se puede también usar el string de
sustitución #CURRENT_ITEM_NAME# para obtener el
nombre del item asociado con esta etiqueta.
Label Horizontal/Vertical Controla la alineación horizontal y vertical de la etiqueta.
-94-
Application Express User's Guide Building an Application

Heading Atributo Descripción


Alignment Las etiquetas pueden ser mostradas arriba, abajo ó a la
izquierda del item.
Label Template Especifica el template de la etiqueta. Se utiliza cuando se
quiere dar una apariencia consistente, a las etiquetas de
toda la aplicación.
Label HTML Table Cell Define atributos adicionales para la celda que contiene a la
Attributes etiqueta de este item (por ejemplo, nowrap =
"nowrap").
Label Post Element Especifica atributos adicionales para la tabla de celdas
Texts HTML usada para mostrar cada opción individual en un
item radio group ó en un conjunto de check boxes. Se
puede incluir html, JavaScript, y shortcuts. Se pueden
referenciar los siguientes strings de sustitución:

• #CURRENT_FORM_ELEMENT# obtiene el nombre del


elemento del formulario HTML con el cual se asocia
este post element text.
• #CURRENT_ITEM_NAME# obtiene el nombre del
item con el cual este post element text se asocia.

List of Columns Se aplica a radio groups y a check boxes. Define el número


Values de columnas que se usan para mostrar los valores
definidos en la lista de valores. Por default, todos los
valores se muestran en una columna.
Conditions Condition Type Define la expresión condicional que determina si un item se
and Expressions muestra.

Ver también: "Understanding Conditional Rendering and


Processing"
Read Only Read Only Define la expresión condicional que determina si el item se
Display Condition Type mostrará como solo lectura. Se usa este atributo para
Settings 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.

Incorporating Content from Other WebSites

Generalmente, las páginas en una aplicación están basadas en datos alojados en una base
de datos Oracle. Para incorporar contenido desde otros servidores, se puede crear una
región basada en una URL para mostrar su contenido. Por ejemplo, supongase que se
desea referenciar los precios actuales de los productos Oracle:

http://quote.yahoo.com/q?d=b&s=ORCL

Luego se podría crear un item denominado STOCK_SYMBOL y basar la región en un precio


ingresado por el usuario. Por ejemplo:
-95-
Application Express User's Guide Building an Application

http://quote.yahoo.com/q?d=b&s=&STOCK_SYMBOL.

A veces (como es el caso del ejemplo previo) el HTML retornado a la región es más del que
se necesita. Para restringir el HTML mostrado se pueden usar los siguientes atributos de
región:

• URL (descarta hasta pero no incluye el texto)


• URL (descarta despues de pero incluye el texto)

Notar que el ejemplo anterior podría requerir que se establezca el atributo Proxy Server de la
aplicación. Si no se setea el atributo Proxy Server de la aplicación, se devuelve un mensaje
de error. Oracle Application Express utiliza la función utl_http.request_pieces, de
Oracle, para obtener el HTML generado desde una URL dada.
Ver también: "Configuring Standard Application Attributes" para ver más información acerca
del seteo del atributo Proxy Server de una aplicación.

Managing Themes

Themes (contextos) son colecciones de templates que pueden ser usados para definir el
layout y estilo de una aplicación completa. La idea de usar theme (contexto) es proveer un
conjunto completo de templates que acomode cada patrón de interfase de usuario que se
necesite en una aplicación.
Los templates están organizados primero por tipo (button, calendar, label, list, breadcrumb,
page, popup LOV, region, y report) y luego por clases de template, especializando el
propósito del template dentro del tipo. Cada tipo de template provee un grupo de clases
standard y ocho clases especializadadas. Estas clasificaciones permiten a ORACLE
APPLICATION EXPRESS mapear templates con los themes (contextos), haciendo sencillo,
cambiar rápidamente, el look and feel de una aplicación completa.

Temas:

• Accessing the Themes Page


• Changing Default Templates in a Theme
• Creating a New Theme
• Switching an Active Theme
• Copying a Theme
• Deleting a Theme
• About Exporting and Importing Themes
• Changing a Theme Identification Number
• Viewing Theme Reports

Ver también: Customizing Templates

Accessing the Themes Page

Se gestinan los themes sobre la Themes page.


Para acceder a la Themes page desde Shared Components:
1. En la Database Home Page, hacer click en el ícono de Application Builder.
2. Seleccionar una aplicación.
3. Click en Shared Components.
4. Bajar hasta User Interface y seleccionar Themes. Con ello aparece la Themes page.

-96-
Application Express User's Guide Building an Application

5. Para acceder a la vista de detalle (Details view), seleccionar Details desde la lista
View. El contexto actual seleccionado displaya una marca (check mark) en la columna
actual.

Para acceder a la Themes page desde la Page Definition:


1. En la Database Home Page, click en el ícono del Application Builder.
2. Seleccionar una aplicación.
3. Seleccionar una página. Con lo cual aparece la Page Definition.
4. Seleccionar el nombre del contexto (theme).

About the Themes Page


Una vez que se crea un contexto, este aparece sobre la Themes page. Se controla como se
displaya la página mediante la selección de las siguientes opciones desde la lista View:
• Icons (el default) displaya cada contexto como un ícono grande. Para editar uno
basta con hacer click en el ícono correspondiente.
• Details displaya cada contexto como una linea de reporte. Para cambiar el contexto ó
el template por default, click en el theme name. En la vista Details, se puede
seleccionar las siguientes opciones desde la lista Display:
o Summary View displaya los Id del contexto, el nombre, y el estado actual.
o Detailed View displaya el Id del contexto, el nombre, el estado actual, y el
número de templates en cada tipo de template.

Changing Default Templates in a Theme

El theme standard contiene templates para cada tipo de regiones y componentes. Se puede
cambiar el templates seleccionado por default de un theme (contexto) en la página de
definición del Theme.
Se pueden sustituir esos defaults, por otros seleccionando otro template cuando ya se hallan
creado nuevos componentes o regiones, o mediante el cambio del template en la página de
atributos de los componentes o regiones.
Entonces, para revisar ó cambiar el template por default en un theme (contexto):
1. Navegar a la Themes page:
a. En la Database Home Page, click en el ícono AB .
b. Seleccionar una aplicación.
c. Click Shared Components.
d. En User Inerface, seleccionar Themes.
2. Acceder al la vista Details. Para ello en View seleccionar Details.
3. Seleccionar el theme (por el nombre) que se desea. Con ello aparce la página que
Crea/Edita el Theme. Al tope de la página se displaya el Id asociado a la aplicación y
el número de identificación del Theme.
4. Para cambiar el nombre del Theme, ingresar un nuevo nombre en el campo Name.
5. Para cambiar un template por default, se debe hacer una nueva selección desde la
lista correspondiente.

Table: Default Templates by Component describe el template por default disponible en la


sección Default Templates by Component.

Attribute Description
Page Identifica el template por default para mostrar páginas. Si el desarrollador no
elige explícitamente un template, el motor del AE utiliza el template
especificado aquí.

-97-
Application Express User's Guide Building an Application

Attribute Description
Una vez definido, este template aparecerá sobre la página Edit Application
Attributes debajo del encabezamiento del Application Template Defaults.

Ver también: "Display Attributes" para mayor información acerca de sustituir


el page template en la página Page Attributes.
Error Page Opcional. Especifica un page template para usar en errores que se muestran
en una página separada a diferencia de aquellos que se displayan en linea.
Dejar este atributo en blanco si no se desea utilizar un template destinado a
mostrar errores.
Una vez definido, este template aparecerá sobre la página de edición de
atributos de la aplicación (Edit Application Attributes) debajo del Application
Template Defaults.
Printer Identifica el template que se usará cuando el motor del AE está en modo
Friendly Page printer friendly. Cuando se invoca al AE para armar una página se tiene la
opción de identificar el valor del atributo printer friendly en YES ó NO.
Si se selecciona YES, luego la página se mostrará usando un template
printer friendly. El motor del AE muestra todos los textos, de los campos html
del formulario, como texto. El template printer friendly no necesita tener el
tags #FORM_OPEN# ó #FORM_CLOSE#. El objetivo es tener la posibilidad de
mostrar información con unas pocas tablas y en un formato adecuado para
imprimir.
Una vez definido, este template por default aparecerá en la pagina Edit
Application Attributes debajo del encabezamiento Application Template
Defaults.

Ver también: "Optimizing a Page for Printing"


Breadcrumb Identifica el template por default para los breadcrumb que se utilizará en la
creación de nuevos breadcrumbs.
Button Identifica el template por default utilizado en la creación de botones.
Calendar Especifica el calendar template por default utilizado para crear calendarios.
Label Identifica el template por default para crear nuevas etiquetas.
List Especifica el template por default para crear nuevas listas.
Region Especifica el template por default para crear nuevas regiones.
Report Identifica el template por default para crear nuevos reports.

Table: Region Templates by Region Type describe el template por default disponible en la
sección Default Templates by Region Type.

Attribute Description
Breadcrumbs Template de región por default para crear un breadcrumb.
Charts Template de gráfico por default para crear gráficos.
Forms Template de formulario por default para crear formularios.
Lists Template de región por default para crear una lista.

-98-
Application Express User's Guide Building an Application

Attribute Description
Reports Template de región por default para crear un reporte.
Tabular Forms Template de región por default para crear un formulario tabular. (un browse)
Wizards Template de región por default para crear un nuevo wizard.

Creating a New Theme

Se puede crear un nuevo contexto (theme) a partir de uno en blanco ó seleccionando uno
existente desde el repositorio.
Para crear un nuevo contexto:
1. Navegar a la Themes page:
a. En la Database Home Page, click en el ícono de AB .
b. Seleccionar una aplicación.
c. Click en Shared Components.
d. Debajo de User Interface, seleccionar Themes.
2. Click en Create.
3. Especificar si se selecciona un contexto (theme) desde el repositorio, ó se crea uno
nuevo en blanco.
4. Si se selecciona From Repository:
a. Seleccionar un Theme desde el repositorio.
b. Click Create.
5. Si se selecciona From Scratch:
a. Especificar un nuevo nombre.
b. Click en Create. Aparece la página de Themes.
c. Definir los templates por default para el nuevo Theme:
i. Click en el ícono Edit (junto al nombre del nuevo Theme).
ii. Cambiar el nombre del theme, ingresar un nuevo nombre en el campo
Name.
iii. Cuando aparece la página Define Theme, seleccionar los templates por
default para el nuevo theme.

Switching an Active Theme

Cuando se cambia a un nuevo theme, todos los componentes que están asignados a un
template son asignados al template correspondiente en el nuevo theme. AB logra mapear el
template a través de la asignación del identificador de clase del template.

Nota: Se puede solo cambiar a un otro theme si ya existe previamente.

Para aplicar un theme a una aplicación:


1. Navegar a la Themes page.
2. Click en el ícono Switch Theme. Con lo cual aparece la página de Switch Theme.
3. En la lista de theme de Switch seleccionar un theme y click en Next.
4. Revisar el estado de la columna que identifica mapeos problemáticos:
a. Check indica que el mapeo fue exitoso.
b. Warning indica que hay más de un template en el theme con el mismo
identificador de clase. El mensaje de advertencia provee una lista para
seleccionar cual es el template apropiado.
c. Error indica que AB no pudo mapear la clase con los themes. Asegurese que
una sola clase está identificando a los templates en ambos themes.
-99-
Application Express User's Guide Building an Application

5. Click en Next para continuar.


6. Click en Switch Theme.

Ver tambien: "Creating a New Theme"

Copying a Theme

Cada theme es identificado por un ID. Cuando se copia un theme se especifica un nuevo ID.
Copiar un theme es util si se quiere experimentar con la edición de un theme existente ó bien
si se desea exportarlo con un ID diferente.

Para copiar un theme:


1. Navegar a la Themes page:
a. En la Database Home Page, click en el ícono de AB .
b. Seleccionar una aplicación.
c. Click en Shared Components.
d. En User Interface, seleccionar Themes.
2. En la lista Tasks (a la derecha de la pantalla), click en Copy Theme (es la primera
opción).
3. En la página de Copy Theme:
a. Copy from Theme: Es una lista donde se selecciona el theme origen (desde el
cual se copia). Por ejemplo: 6. Southwest.
b. Copy to this Theme Identification Number: Es un número, ID, que identifica
univocamente a los objetos del generador de aplicaciones. Del 1 al 100 están
reservados para Oracle. Elegir, por ejemplo 1006.
c. Click en Next.
d. Aparece la pantalla para confirmar la copia del theme.
e. Click en el botón Copy Theme.

Notar que el Theme generado tiene el mismo nombre que el original (cambia el ID). Se
puede cambiar el nombre, para ello véase: Creating a New Theme

Deleting a Theme

Solo se pueden eliminar themes que no estén referenciados (inactivos). Cuando se deletea
un theme, AB solo remueve los templates inactivos.
Para eliminar un theme:
1. Navegar a la páginas de Themes.
2. En la lista de tareas que está a la derecha, click en Delete Theme.
3. Seleccionar el Theme, que se desea eliminar, en la lista que se muestra.
4. Click en el botón Remove Theme.

About Exporting and Importing Themes

Se exporta un theme de la misma forma que se exporta cualquier archivo relacionado con la
aplicación. Exportar un theme desde una instancia de desarrollo a otra, involucra los
siguientes pasos:
1. Exportar el theme usando el Export Theme Utility.
2. Importar el archivo exportado en la instancia destino del OAE .
3. Instalar el archivo exportado desde el repositorio Export.

Ver también: "Exporting Themes" y "Importing Export Files"

-100-
Application Express User's Guide Building an Application

Changing a Theme Identification Number

Cada theme tiene asociado un ID. Se puede usar el utilitario Change Theme ID para cambiar
el número que identifica a un theme. Esto puede ser util cuando se desea exportar un
theme con un número diferente para lograr una importación exitosa en la instancia destino.
Para cambiar el ID de un theme:
1. Navegar a la Themes page.
2. En la lista de tareas que esta a la derecha, click en Change Identification Number.
3. Aparece la página Change Theme ID, y alli se debe:
a. Seleccionar un theme.
b. Especificar un nuevo número identificatiorio.
c. Click en Next.
d. Aparece la pantalla de confirmación. Click en Change Theme ID.

Viewing Theme Reports

Application Builder incluye un conjunto de reportes diseñados para colaborar en la gestión


de themes y templates.

Temas:
• Viewing All Templates in a Theme
• Viewing Theme Template Counts
• Viewing File References
• Viewing Class References
• Viewing Template Substitution Strings

Viewing All Templates in a Theme


Para ver todos los templates que componen un theme:
1. Navegar a la Themes page.
2. Click en Reports (está arriba a la izquierda).
3. En la página de Theme Reports:
a. En Report, seleccionar Application Templates.
b. En Theme, seleccionar un theme.
c. Click en Go. Con ello aparece un listado de templates catalogado por tipo,
nombre, theme asociado y clase (de template).
4. Para editar un template, seleccionar el nombre del template.

Viewing Theme Template Counts


El reporte Theme Template Count lista que clases (template classes) tienen actualmente
templates creados con ellas.
1. Navegar a la Themes page.
2. Click en Reports.
3. En la página de Theme Reports:
a. En Report, seleccionar el Theme Template Counts.
b. En Theme, seleccionar el theme.
c. Click en Go.
4. Si se está usando clasificación personalizada (custom), tildar Show Custom y click en
Go.

Viewing File References


Este reporte muestra un listado de todos los archivos asociados con templates,
componentes compartidos, ó componentes de página en la actual aplicación.
Para ver este reporte:
-101-
Application Express User's Guide Building an Application

1. Navegar a la Themes page.


2. Click en Reports.
3. En la página de Theme Reports:
a. En Report, seleccionar el File References.
b. En Theme, seleccionar el theme.
c. Click en Go.
4. En la página de File References:
a. En Show, seleccionar el tipo de componente a incluir en el reporte. Si no se
selecciona alguno, no se mostrará nada.
b. En Show Files, seleccionar uno de los siguientes:
i. With context muestra el componente, el ID del theme, el nombre del
componente, la imagen (si corresponde), y el ID de la página.
Seleccionar el page ID para enlazar a una Page Definition.
ii. Without context muestra solo el nombre de archivo y la imagen (si es
aplicable).
c. En File Extensions, seleccionar el tipo de extensiones para las cuales se
busca.
d. Click en Go.
5. Para bajarlo (download) como un archivo delimitado por comas (.csv), a este reporte,
hacer click en el botón Download CSV que está en la página.

Viewing Class References


Este reporte muestra un listado de clases asociadas con templates, componentes
compartidos ó componentes de páginas de la aplicación actual.
Para ver este reporte:
1. Navegar a la Themes page.
2. Click en Reports.
3. En la página de Theme Reports.
a. En Report, seleccionar Class References.
b. En Theme, seleccionar un theme.
c. Click en Go.
4. Muestra la página de Class References, y alli:
a. En Show, se seleccionan los componentes a chequear si referencias clases.
Sino se selecciona nada, nada se muestra.
b. En Show Class Names, selecione uno de los siguientes:
i. With context muestra el componente, el ID del theme, el nombre del
componente, la imagen y el ID de la página.
ii. Without context muestra solo las clases referenciadas.
c. Click en Go.
5. Para bajar como archivo delimitado por comas (.csv) a este reporte, se debe
seleccionar el botón Download CSV.

Viewing Template Substitution Strings


Este reporte muestra el template de los strings de sustitución para ver todos los strings de
sustitución soportados por los componentes.
Para ver este reporte:
1. Navegar a la Themes page.
2. Click en Reports.
3. En la página de Theme Reports:
a. En la opción Report list, seleccionar Template Substitution Strings.
b. En la opción Theme list, seleccionar que theme se debe incluir en el reporte.
c. Click en el botón Go.
4. Para enlazar a la definición del template, seleccionar un nombre de componente.
-102-
Application Express User's Guide Building an Application

Ver también: "Using Substitution Strings"

Customizing Templates

El motor del AE crea la interface de usuario de una aplicación basandose en una colección
de templates denominada theme. Los templates controla el look and feel (la apariencia) de
los componentes en la aplicación. Si se necesita crear un nuevo template personalizado, es
generalmente más simple arrancar con un template existente y luego modificarlo como se
desea. Una vez que se ha creado uno o más templates, se pueden modificar para ajustarlos
a las necesidades específicas.

Temas:

• Cascading Style Sheets


• Selecting a Default Page Template
• Viewing Templates
• Creating a New Template
• Viewing Template Reports
• Editing Templates
• Breadcrumb Templates
• Button Templates
• Calendar Templates
• Label Templates
• List Templates
• Page Templates
• Popup LOV Templates
• Region Templates
• Report Templates

Ver también: Managing Themes

Cascading Style Sheets


Una cascading style sheet (CSS-hoja con diferentes estilos) provee una forma de controlar el
estilo de una página web sin cambiar su estructura. Cuando se usa adecuadamente, una
CSS separa los atributos visuales tales como colores, margenes, y fonts de la estructura del
documento. OAE incluye themes (conj.de templates) que contiene templates que referencias
sus propias CSS. Las reglas de estilo definida en cada CSS para un theme particular
también determinan la forma en que se displayan las regiones y los reportes. Ver también:
"Using Custom Cascading Style Sheets"

Selecting a Default Page Template


Se puede especificar un template por default de dos formas.
• Seleccionando uno dentro del theme específico.
• Seleccionando uno en la pagina base.

Por default, el motor del AE utiliza el template de página especificado en el Themes.

Para seleccionar un Page-level Template dentro del Theme


1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
-103-
Application Express User's Guide Building an Application

3. Click en Shared Components.


4. En user interface, seleccionar Themes. Aparece la página de Themes.
5. En View seleccionar Details.
6. Seleccionar de la lista el theme correspondiente.
7. En Default Templates by Component, seleccionar lo deseado desde la Page list.

Ver también: "Changing Default Templates in a Theme"

Seleccionar un Page-Level Template para una página específica.


1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
3. Seleccionar una página.
4. Click en Edit Attributes.
5. Localizar la sección Primary Display Attributes.
6. Seleccionar lo deseado desde las listas en este Page Template.

Viewing Templates
Se pueden ver todos los templates disponibles en la página Templates. Otra alternativa es
ver el template que se utiliza para una página específica en la Page Definition. Ver también:
"Viewing All Templates in a Theme"

Para ver la página de los Templates:


1. En la Database Home Page, click en el ícono del Application Builder.
2. Seleccionar una aplicación.
3. Click en Shared Components.
4. En User Interface, seleccionar Templates. Con ello aparece la página de los
templates.
5. Se puede ajustar el display haciendo una selección desde las opciones siguientes y
luego click en Go.
a. Theme – Para ver solo templates de un theme específico.
b. Show – Para un tipo específico de template.
c. View - Para ver todos los templates, ya sean o no referenciados.
6. Para ver la definición de cualquiera de ellos hacer click en el nombre.
7. Para ver un preview de un template, click en el ícono Run en la columna Preview. (No
todos los tipos de template tienen la capacidad de la vista previa).

Para ver los templates desde la Page Definition


1. En la Database Home Page, click en el ícono Application Builder.
2. Seleccionar una aplicación.
3. Seleccionar una página. Aparece la Page definition de la misma. Los templates
asociados con la esta, se encuentran Templates en la columna que está más a la
derecha.
4. Para ver atributos de un template existente basta con un click en el nombre.

Creating a New Template


Si es el caso en que se necesita crear un template personalizado, generalmente es más
simple arrancar desde un template existente y luego modificar este según se desee.
Para crear un template personalizado:
1. Seleccionar la aplicación.
2. Seleccionar componentes compartidos.
3. Seleccionar templates.
-104-
Application Express User's Guide Building an Application

4. Click en Create.
5. Seleccionar el tipo de template que se desea crear.
6. Seleccionar el método de creación.
a. From Scratch (crear uno nuevo desde cero).
b. As a Copy of an Existing Template (crear a partir de uno existente)
7. Seguir las instrucciones de pantalla. Ser cuidadoso al asociar el template con el
correspondiente theme (layout ó modelo grafico).

Viewing Template Reports


El AB incluye reportes que describen donde se utilizan los templates, y su historia.
Para ver los reportes sobre template de la aplicación actual:
1. Seleccionar una aplicación.
2. Seleccionar componentes compartidos.
3. Seleccionar templates.
4. Se puede ajustar el display seleccionando desde las siguientes listas y haciendo click
en Go.
a. Theme – Muestra solo templates de un theme específico.
b. Show – Muestra un tipo específico de template.
c. View – Muestra todos los templates, aquellos que están actualmente
referenciados, ó aquellos que no están referenciados.
5. Para ver los reportes de template, click en los siguientes botones:
a. Utilization: Muestra la utilización en la actual aplicación de todos los tipos de
templates (page, report, region, label y list).
b. Subscription: Muestra los templates suscriptos por la aplicación.
c. History: Detalla los cambios recientes al template por el desarrollador y la
última fecha de actualización.

Editing Templates
Una vez que se creó un template (personalizado), se puede rapidamente editarlo desde la
página de templates ó desde la Page Definition.
Para editar un template existente desde la página de Templates, se debe:
1. Seleccionar una aplicación.
2. Seleccionar componentes compartidos.
3. Seleccionar Templates.
4. Se puede limitar el display seleccionando (filtrando) desde las siguientes listas y luego
haciendo click en Go.
a. Theme – Muestra solo los templates de un Theme específico.
b. Show – Muestra un tipo específico de template.
c. View – Muestra todos los templates, los que actualmente están referenciados y
aquellos que no están referenciados.
5. Localizar el template que se desea editar y hacer click en el nombre del template.
6. Seguir con las instrucciones dadas en pantalla.

Al editar templates, se puede estar editando el template en una página y ejecutarlo en otra.
Para ello se debe seleccionar el check box Return to Page, el cual guarda la página que se
está editando después que se haga click en Apply Changes.

Breadcrumb Templates
Un template de breadcrumb controla las entradas que se muestran. Se selecciona un
template breadcrumb cuando se crea una region.

-105-
Application Express User's Guide Building an Application

About Breadcrumb Style Navigation


Los breadcrumbs indican donde, la página actual, está en relación a las otras páginas por
las cuales ya se navegó. Los usuarios pueden hacer click en una página específica para
verla inmediatamente. La interface de usuarios de Database Home Page incluye breadcrumb
debajo de la linea estandar de tabs que se encuentra al tope de cada página por la cual se
navega. Por Ejemplo:

Ver también:
• Ayuda en linea para más información acerca de como editar la página de los
template de Breadcrumb.
• "Creating Breadcrumbs"

Breadcrumb Template Attributes


Esta sección describe aspectos específicos de la página de template de Breadcrumb.

Identification
Name identifica el nombre del template. Utilizar el check bok Translatable para indiciar que
el template contiene texto (strings) que requieren ser traducidos. Theme indica el theme del
cual el template es miembro.
Template Class identifica una utilización específica para el template. Cuando se cambia a
un nuevo theme, todos los templates miembros son mapeados al nuevo theme. Application
Builder logra este mapeo a través de la asignación de una clase template.

Breadcrumb Template Subscription


Para aplicar un template a la aplicación actual se utiliza Template Subscription. Cuando se
selecciona un template existente, la aplicación pasa a ser miembro del template.
Para cargar una nueva copia del template, click en Refresh.

Breadcrumb Template Styles


Seleccione uno de los siguientes estilos de template:
• Child Breadcrumb Entries muestra todas las entradas que son hijos del breadcrumb
padre de la página actual, es decir, los pares del breadcrumb actual.
• Current Breadcrumb muestra todas las entradas, en secuencia de navegación, con
un padre común.
• Parent Breadcrumb Entries muestra todas las entradas que son padre de la entrada
actual (es decir, un nivel arriba de la entrada actual).
• Parent to Leaf (breadcrumb style) muestra la entrada de la página actual, su padre
a la izquierda, y así sucesivamente hasta alcanzar el nodo raiz.

Breadcrumb Entry Control Attributes


Describe los atributos disponibles para las entradas breadcrumb.
Atributo Descripción
Before First Define el texto que se muestra antes de aparecer la primer entrada.
Current Page Define como se ve la entrada que corresponde a la página actual.
Breadcrumb Option Este atributo soporta los siguientes strings de sustitución:

• #NAME# especifica el nombre corto.


• #LINK# especifica un enlace para esta entrada.
• #LONG_NAME# especifica el nombre largo.

-106-
Application Express User's Guide Building an Application

Atributo Descripción
Non Current Page Define como se ven las entradas que no corresponden a la página
Breadcrumb Option actual. Este atributo soporta los siguientes atributos de sustitución:

• #NAME# especifica el nombre corto.


• #LINK# especifica un enlace para esta entrada.
• #LONG_NAME# especifica el nombre largo.

After Last Define el texto a mostrar a continuación de la última entrada.

Template Attributes
Para especificar un enlace a hypertext (para una entrada breadcrumb) utilizar Breadcrumb
Link Attributes.
Para especificar el texto a mostrar entre cada entrada utilizar Between Levels. Por ejemplo:
main X cars X porsche X 911
El atributo Max Levels especifica la cantidad de niveles (de entradas) de los breadcrumb
mostrados.

Comments
Usar este atributo para registrar comentarios del desarrollador.

Button Templates
Los templates de botones permiten a los desarrolladores castomizar como se ven los
botones. Para crear un botón, se pueden utilizar diferentes imágenes ó también tags HTML.
El uso de templates para botones es opcional.

Button Template Attributes


Aqui se describe cada item, de la Button Template page, en forma detallada.

Button Template
Template Name identifica el nombre del template. Usar el check box Translatable para
indicar el template contiene texto el cual requiere traducción. Theme indica el tema del cual
el template es un miembro.
Template Class identifica un uso específico para el template. Cuando se cambia a un nuevo
tema, todos los templates de un tema son mapeados a los templates correspondientes del
nuevo tema. Application Builder logra este mapeo de template a través de la asignación de
una clase al template.

Template Subscription
Utilizar Template Subscription para aplicar un template existente a la actual aplicación.
Cuando se selecciona un template existente, la aplicación será suscripta al template. Para
cargar una nueva copia del master template, hacer click en Refresh.

Template Text
Define el texto que muestra el botón. Se puede optar por incluir sustituciones en la forma
estandar. Por ejemplo, &ITEM_NAME puede ser sustituido en tiempo de interpretación. Los
templates de botones soportan los siguientes strings de sustitución:
• #LABEL# es reemplazado con una etiqueta de botón.

-107-
Application Express User's Guide Building an Application

• #LINK# es reemplazado con una URL. La URL luego invoca un #DOsUBMIT# ó lo


remite a un JavaSript, el cual submite la página (es decir, setea el valor de retorno), ó
simplemente redirecciona al la URL provista).

Comments
Utilizar este atributo para registra los comentarios del desarrollador.

Calendar Templates

Los templates de calendario controlan la apariencia y la ubicación de un calendario. Los


template de calendario frecuentemente utilizan tablas HTML para disponer las fechas. Se
setean atributos de calendario usando strings de sustitución tales como #DD# y #MONTH#.
Una lista de los strings de sustitución soportados aparece sobre el lado derecho de la página
de atributos. Note que los string de sustitución utilizados en el template deben ser con letra
mayúscula y comenzar y terminar con un signo numeral (#). .
Ver también: "Creating Calendars"

Calendar Template Attributes


En esta sección se describen los detalles de la página del template de calendario.

Calendar Template Identification


Name identifica el nombre del template. Theme indica el tema del cual el template es
miembro.
Template Class identifica un uso específico para el template. Cuando se cambia a un nuevo
tema, todos los templates miembros del tema son mapeados a los templates
correspondientes del nuevo tema. El Application Builder logra esto mapeando los templates
a través de la asignación de clase a cada template.
Template Subscription
xxxxxxxx

Label Templates

List Templates

Page Templates

Popup LOV Templates

Region Templates

Report Templates

Optimizing a Page for Printing

Using Custom Cascading Style Sheets

-108-
Application Express User's Guide Building an Application

Managing Images

Managing Static Files

Creating a Multiple Column Layout

Rendering HTML Using Custom PL/SQL

-109-

You might also like