Professional Documents
Culture Documents
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
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
Ver también:
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:
-4-
Application Express User's Guide Building an Application
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.
-5-
Application Express User's Guide Building an Application
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
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
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.
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.
-7-
Application Express User's Guide Building an Application
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"
Temas:
-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.
-9-
Application Express User's Guide Building an Application
f?p=100:5:&SESSION.::NO:MY_ITEM
f?p=100:5:&SESSION.::NO:THE_EMPNO,THE_DEPTNO
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"
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.
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.
f?p=App:Page:Session::NO:APP
f?p=6000:6004:12507785108488427528::NO:SESSION
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.
: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.
En este ejemplo, los valores de empno, ename, y job son reemplazados por
P1_empno, P1_name y P1_job.
http://apex.oracle.com/pls/apex/f?p=4350:1:220883407765693447
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’)
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
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.
-14-
Application Express User's Guide Building an Application
#ABC#
&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
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.
-16-
Application Express User's Guide Building an Application
APP_ID
App_id identifica la aplicación que se está ejecutando.
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.
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
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.
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.
-18-
Application Express User's Guide Building an Application
:APP_UNIQUE_PAGE_ID||
':::P1_EMPNO:'||empno, ename, job
FROM emp
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.
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.
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
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#
HTMLDB_APPLICATION.G_FLOW_SCHEMA_OWNER
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.
Sintaxis de Request
Reference Type Syntax
Bind variable :REQUEST
Direct PL/SQL HTMLDB_APPLICATION.G_REQUEST
PL/SQL V('REQUEST')
Substitution string &REQUEST
f?p=100:1:&SESSION.:GO
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)
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
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:
Creating an Application
Topics:
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".
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:
-28-
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.
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:
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
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.
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
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
u. Item
v. Button
w. Branch
x. Computation
y. Process
z. Validation
-33-
Application Express User's Guide Building an Application
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"
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.
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 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.
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:
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
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.
Deleting a Page
Se puede deletear una página desde la Page Definition ó mientras se están editando los
atributos de la páginas.
-38-
Application Express User's Guide Building an Application
Creating Reports
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.
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.
Table: Common Report Column Edits Describe las ediciones más comunes para las
columnas de los reportes.
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 ).
-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.
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"
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.
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.
-43-
Application Express User's Guide Building an Application
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).
-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.
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:
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.
-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:
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.
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.
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.
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:
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;
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
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
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.
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.
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
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:
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.
-54-
Application Express User's Guide Building an Application
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.
Una vez que se ha creado el calendario, se puede modificar su apariencia editando sus
atributos.
Temas:
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.
-56-
Application Express User's Guide Building an Application
Calendar Interval
Utilice Calendar Interval para definir las fechas que son incluidas en 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.
Column Link
Se utiliza para crear una columna de enlace en el calendario.
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.
-58-
Application Express User's Guide Building an Application
Temas:
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.
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:
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:
Table: Available Chart Types Esta tabla describe los tipos de gráficos disponibles en el
generador de aplicaciones Application Builder.
-60-
Application Express User's Guide Building an Application
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.
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.
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.
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.
-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.
rect.legend{fill:#CCCC99;stroke:none;}
#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.
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;}"
-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.
-64-
Application Express User's Guide Building an Application
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 mostrar un gráfico en otro lenguaje, editar las clases text y tspan para reflejar el
lenguaje correcto.
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:
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.
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).
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.
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:
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.
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"
Se puede elegir tener condicionado el display de un botón editando los atributos en la página
Edit Pages Button.
-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:
Ver: "How Item Attributes Affect Page Layout" y "Using Substitution Strings"
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.
-70-
Application Express User's Guide Building an Application
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
• Pasar el valor de una referencia URL usando la sintaxis f?p. Por ejemplo:
f?p=100:101:10636547268728380919::NO::MY_ITEM:ABC
• 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"
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
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.
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
En segundo lugar, se retornan solo aquellos empleados que pertenecen a los departamentos
seleccionados, asi:
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;
Los items a nivel de aplicación no se displayan, pero son usados como variables globales de
la aplicación.
-76-
Application Express User's Guide Building an Application
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
-77-
Application Express User's Guide Building an Application
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:
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.
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.
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.
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
'%'||'null%'
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:
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:
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.
Defining Shortcuts
"MY_SHORTCUT"
-81-
Application Express User's Guide Building an Application
Note que el nombre del shortcut debe ser capitalizado y encerrado entre comillas.
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"..
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
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:
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.
// Then add the following to the "Form Element Attributes" Attribute of the item:
onchange="displayValue('P1_FIRST_NAME');"
-83-
Application Express User's Guide Building an Application
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"
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>
-84-
Application Express User's Guide Building an Application
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:
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.
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
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.
Ver también:
• "Creating Forms"
• "Creating Lists of Values"
• "Controlling Navigation Using Branches"
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 )
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.
-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.
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.
-87-
Application Express User's Guide Building an Application
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
-88-
Application Express User's Guide Building an Application
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:
Ver también: "Adding Navigation" para mayor información sobre creación de bars, tabs,
breadcrumbs, lists y trees.
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.
-89-
Application Express User's Guide Building 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
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.
-91-
Application Express User's Guide Building an Application
Ver también:
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.
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.
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.
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
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:
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:
-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.
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.
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.
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.
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.
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.
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.
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.
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.
-100-
Application Express User's Guide Building an Application
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.
Temas:
• Viewing All Templates in a Theme
• Viewing Theme Template Counts
• Viewing File References
• Viewing Class References
• Viewing Template 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:
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"
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).
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
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"
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.
-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:
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
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
Comments
Utilizar este atributo para registra los comentarios del desarrollador.
Calendar Templates
Label Templates
List Templates
Page Templates
Region Templates
Report Templates
-108-
Application Express User's Guide Building an Application
Managing Images
-109-