Anda di halaman 1dari 121

Qu es Oracle Apex?

Que mejor para iniciar esta serie de publicaciones, que una breve descripcin de lo que es Oracle APEX. Oracle Application Express (Oracle APEX), se conoca anteriormente como HTML_DB, es una herramienta de desarrollo basada en un navegador web, que permite desarrollar de manera rpida aplicaciones web para la base de datos Oracle. Utilizando solamente un navegador web y limitada experiencia en programacin, se puede desarrollar y desplegar aplicaciones profesionales que son a su vez rpidas y seguras. El lenguaje de programacin que va a necesitar, si la funcionalidad estndar del paquete no llena por completo sus necesidades es PL/SQL. Muchos de los desarrolladores Oracle existentes, se estn moviendo hacia APEX, porque es muy sencillo (no es necesario un servidor de aplicaciones) y adems utiliza PL/SQL. Como todo paquete existente, tiene sus pros y sus contras, de las cuales, las principales son: Pros: 1. No existe un costo de licenciamiento separado para las aplicaciones construidas con APEX el producto es una opcin sin-costo con todas las ediciones de bases de datos. 2. Los ayudantes (wizards) en el producto hacen posible construir aplicaciones web simples pero a la vez robustas, rpidamente. 3. Las organizaciones con experiencia en programacin PL/SQL pueden apreciar que el lenguaje para definir la lgica del negocio, ms alla de solo la funcionalidad, es PL/SQL. 4. Al ejecutarse las aplicaciones APEX en la base de datos, su desempeo es excelente (a menos que el cdigo SQL est escrito de una manera pobre por los desarrolladores), no existe el sufrimiento de trnsito en exceso entre el servidor de aplicaciones y la base de datos que caracterizan el pobre desempeo de las aplicaciones en tres capas. Contras:

1. Una aplicacin APEX esta sujeta a las limitaciones normales de cualquier aplicacin web: Una seleccin limitada de componentes de la interfas del usuario. Sin embargo, con la caracterstica de refrescamiento parcial de APEX, no es necesario enviar y redibujar toda la pantalla para muchas operaciones. 2. Si la funcionalidad estndar de APEX no es suficiente para cubrir sus necesidades, tendr que aprender el entorno para poder agregar su propio cdigo en los puntos claves o relevantes; de la misma manera en que tuvo que aprender sobre los disparadores disponibles en productos como Oracle Forms. El entorno APEX puede ser mejorado o ampliado utilizando javascript, AJAX, DHTML, etc. para incorporar funcionalidad Web 2.0 a sus aplicaciones. 3. Al ejecutarse las aplicaciones APEX en la base de datos, incluyendo la lgica del negocio, no se tiene los mismos requerimientos de desempeo que con aplicaciones en arquitecturas de tres capas, donde necesita escalar (agregando ms servidores de aplicaciones) para mejorar el desempeo. El costo total de desempeo en la base de datos por ejecutar aplicaciones APEX es muy pequeo, permitiendo escalar muy bien. Para aplicaciones de APEX de base de datos intensivas (aquellas con un significativo procesamiento de datos) con un gran nmero de usuarios concurrentes, se recomienda utilizar Oracle RAC para balancear la carga de la base de datos. Tambin pueden ser incorporados mltiples servidores de aplicaciones para as asegurar una alta disponibilidad.

Agregar un reporte con pginas de Uso Frecuente


Una funcin muy til en cualquier aplicacin, es una regin similar a la regin Reciente usada en la aplicacin de desarrollo de Apex, en la que se muestran las pginas de uso ms frecuente de la aplicacin; para lo cual utilizaremos una consulta al repositorio de APEX. En esta entrega, les explico como lograrlo en sus aplicaciones con tres simples pasos:
1. Habilitar el registro a nivel de la aplicacin, lo que resulta en registros en la vista apex_workspace_activity_log. 2. 3. Crear una Pgina Cero para la aplicacin y en ella una regin basada en una consulta SQL. Ingresar el siguiente cdigo en la regin creada, para mostrar las 5 pginas ms visitadas.

select f?p=||:APP_ID||:'||page_id||:'||:APP_SESSION , from ( select , , from where and and group order ) where rownum <= 5 application_id apex_user page_id by by <> page_name, 3 = = page_id|| : ||page_name )

htf.anchor( Task

page_name page_id count(*) apex_workspace_activity_log :APP_ID :APP_USER :APP_PAGE_ID page_id desc

De esta manera, siempre mantendremos actualizada y a mano una manera sencilla y prctica de acceder a las pginas que ms utilizamos.

Creando una aplicacin con Oracle Apex Parte 1


Ha llegado hasta mis manos la inquietud de uno de los lectores de este blog, de explicar paso a paso, la creacin de una aplicacin utilizando Oracle Apex, esto con la intencin de que todos aquellos que estn empezando a conocer la herramienta se puedan familiarizar con ella. Por este motivo, en esta entrega y las siguientes, voy a explicar detalladamente cmo crear una aplicacin con Oracle Apex a partir de cero, y en donde incluir:

Cmo crear un espacio de trabajo para la aplicacin? Cmo crear el contenedor para la aplicacin? Cmo definir los valores por defecto de la Interfaz de Usuario? Cmo crear una forma para captura de datos? Cmo generar un reporte con la ayuda del asistente de informes?

Con esto cubrimos los elementos bsicos de una aplicacin tpica de Oracle Apex y puede ser de gran ayuda para que inicien a experimentar con la versatilidad que ofrece esta herramienta. Para empezar de una vez, vamos a explicar en esta entrega el primer tpico de esta serie:

Cmo crear un espacio de trabajo para la aplicacin?


Lo primero que necesitamos para poder desarrollar una aplicacin utilizando Oracle Apex, es un rea de trabajo (Workspace en ingls), la cual podemos definir como un contenedor en el que se define cual usuario de base de datos es el dueo de la aplicacin, la informacin de conexin a la base de datos y los usuarios que tienen acceso a este contenedor entre otras cosas. Ahora que hemos definido lo que es un rea de trabajo, pasemos a crear una, para lo cual, necesitamos conocer la contrasea del usuario principal de Apex, el cual se crea cuando instalamos esta herramienta. Adems, debe conocer la direccin de ingreso a la herramienta, la cual tambin se define a la hora de la instalacin de la misma. Para el ejemplo, vamos a suponer que tiene instalada la herramienta en su computadora personal, y que defini como puerto de acceso el puerto 8080; entonces, tenga a mano esta informacin:

Direccin a herramienta: http://127.0.0.1:8080/apex/ Area de trabajo principal: INTERNAL Usuario: ADMIN

Ahora s, empecemos a crear nuestra propia rea de trabajo para la aplicacin que vamos a crear ms adelante:
1. Abra su navegador de Internet preferido (el mo es Firefox) y en la barra de direccin escriba la cadena que definimos arriba como Direccin a herramienta. No se olvide de pulsar la tecla de retorno al final de la cadena. Una vez hecho esto le ser mostrada una pantalla similar a la que se muestra a continuacin.

2. 3. 4.

En el campo Espacio de Trabajo, escriba INTERNAL. Introduzca ADMIN en el campo Usuario. En el campo Contrasena, ingrese la contrasea que se defini para el administrador a la hora de efectuar la instalacin de la herramienta.

5.

Haga clic sobre el botn Conectar. Le ser mostrada una pantalla similar a la siguiente:

6.

Haga clic sobre el botn Gestionar Espacios de Trabajo.

7.

Tan pronto le sea mostrada una pantalla similar a la anterior, en donde se encuentran todas las opciones para gestin de espacios o reas de trabajo, haga clic sobre el enlace Crear espacio de trabajo en la seccin Gestionar Espacios de Trabajo.

8.

Le ser mostrada una pantalla similar a la que se muestra en la ilustracin anterior, la cual es la entrada al Wizard para la creacin del nuevo Espacio de Trabajo. Los campos con un asterisco rojo, son de ingreso obligatorio. Ingrese el nombre del espacio de trabajo que desea crear, en nuestro caso vamos a utilizar el nombre Ejemplo; y si lo desea, en el campo siguiente, escriba una descripcin breve que identifique el espacio de trabajo.

9.

Haga clic en el botn Siguiente. Aparecer una pantalla similar a la siguiente.

10. Aqu tiene la opcin de utilizar un esquema de base de datos existente, o bien, puede crear uno nuevo, en nuestro caso, vamos a usar el esquema SCOTT que instala toda base de datos Oracle. 11. En el campo Desea volver a utilizar un esquema existente?, seleccione la

opcin S. 12. Haga clic en la flecha a la derecha del campo Nombre de Esquema y en la pantalla similar a la ilustracin de abajo, haga clic sobre el esquema SCOTT.

13. Para continuar haga clic en el botn Siguiente.

14. Es el momento de crear el usuario administrador del Espacio de Trabajo, para eso se utiliza la pantalla que se muestra arriba. 15. Mantenga el campo Usuario, tal y como aparece. 16. Ingrese una contrasea para el usuario. 17. Si lo desea, puede teclear el Nombre y Apellidos de la persona que se define como administrador. 18. Proporcione el correo electrnico del administrador del Espacio de Trabajo. 19. Haga clic en el botn Siguiente para continuar. Le ser mostrada la siguiente pantalla:

20. Verifique que todos los datos mostrados correspondan con la definicin que desea realizar para el Espacio de Trabajo. 21. Haga clic en el botn Crear, para proceder a la creacin del Espacio de Trabajo definido. Le ser mostrada una pantalla de confirmacin de que su Espacio de Trabajo ha sido creado exitosamente.

22. Haga clic en el botn Listo, para regresar a la pantalla de administracin de Espacios de Trabajo, una vez all, haga clic en el enlace Desconectar, que se encuentra en la esquina superior derecha de la pantalla, para abandonar el administrador de Oracle Apex.

Creando una aplicacin con Oracle Apex Parte 2


En la entrega anterior, vimos como crear un Espacio de Trabajo para nuestra aplicacin, al cual le asignamos un nombre y lo adjuntamos a un esquema de base de datos, en nuestro caso el del usuario SCOTT. Hoy vamos a ver Cmo crear el contenedor para la aplicacin?

Cmo crear el contenedor para la aplicacin?


Lo que llamo contenedor de la aplicacin, es algo as como un espacio dentro de la base de datos, especficamente en el esquema utilizado para crearlo, en donde se crearan, las formas, reportes y cualquier otro objeto que componga nuestra aplicacin, tal como imgenes, scripts y algunos otros objetos que con el tiempo iremos conociendo. Lo primero que debemos hacer, es ingresar a nuestro Espacio de Trabajo , para ello, nos vamos a dirigir a la direccin de arranque del Oracle Apex, en mi caso, que utilizo mi trabajo computador creado en personal la entrega para anterior: realizar esta y aplicacin, el usuario sera: que se http://127.0.0.1:8080/apex, tambin es importante recordar el nombre del espacio de Ejemplo cre:ADMIN. Con esto en mente empecemos:
1. Usando su navegador de Internet preferido, ingrese la direccin de inicio de su aplicacin Apex. 2. Una vez mostrada la pantalla de inicio, en el campo Espacio de Trabajo,

ingrese Ejemplo. 3. 4. En el campo Usuario, escriba ADMIN. En el campo Contrasea, ingrese la contrasea que defini al crear el espacio de trabajo. 5. Haga clic en el botn Conectar.

6.

Le ser mostrada una pantalla similar a la que se muestra arriba. Haga clic en el botn Aplication Builder.

7.

Se va a encontrar con una pantalla similar a la anterior. Para continuar e ingresar al Wizard de creacin del contenedor de la aplicacin, haga clic en el botn Crear>.

8.

La imagen anterior muestra la nueva pantalla, aqu puede hacer clic sobre la imagen que se encuentra debajo del botn de radio Crear Aplicacin o bien, en el

botn Siguiente>.

9.

Vamos a crear una aplicacin nueva, por lo tanto, en la pantalla que muestra la imagen anterior, ingrese el nombre que tendr su aplicacin, en nuestro caso, vamos a llamarla Empleadosy vamos a mantener el nmero de aplicacin que nos asigna

automticamente Apex en el campo Aplicacin. Como puede observar, se asigna el esquema en el cual definimos nuestro Espacio de Trabajo. Para continuar, haga clic en el botnSiguiente>.

10. Es el momento de agregar contenido a nuestro contenedor. Al menos, debemos agregar una pgina a este, pero podemos agregar ms de una, que puede ser una pgina en blanco, un informe, una pantalla, una pantalla tabular, un maestro detalle o un Informe con su respectiva pantalla de mantenimiento. En nuestro caso, vamos a agregar una pgina en blanco, la cual vamos a llamar Principal y que vamos a utilizar como pgina principal de nuestra aplicacin. Para esto: 1. 2. 3. En el campo Nombre de la Pgina, escribimosPrincipal. Hacemos clic en el botn Agregar Pgina. Hacemos clic en el botn Siguiente>.

11. Ahora debemos definir parte del look and feel de nuestra aplicacin, debemos de decidir si utilizaremos o no separadores, y en caso afirmativo, si estos sern de uno o dos niveles. Para nuestra aplicacin, vamos a usar Un Nivel de Separadores, para esto seleccione el botn de radio Un Nivel de Separadores y luego haga clic en el botn Siguiente>.

12. Haga clic en el botn Siguiente>, en la pantalla que se muestra arriba.

13. En la pantalla que se muestra anteriormente, vamos a definir algunas caractersticas generales de la aplicacin y de suma importancia, la primera de ellas es el tipo de autenticacin que vamos a usar para ingresar a nuestra aplicacin. En nuestro caso vamos a utilizar Cuenta de Base de Datos, lo que significa que se debe tener un usuario de base de datos para poder utilizar la aplicacin. Adems, en el campo Idioma, seleccionamos Espaol (puede seleccionar de todos los disponibles el corre spondiente a su pas), tambin, en el campo Formato de Fecha ingrese el formato de fecha que prefiera, para todos los campos fecha que se vayan a utilizar en la aplicacin; en mi caso voy a usar el formato DD/MM/YYYY. Finalmente, haga clic en el botn Siguiente>.

14. Se debe seleccionar la apariencia que tendr la interfaz de usuario, para nuestra aplicacin, vamos a utilizar el Tema 3, as que hacemos clic en el botn de radio correspondiente a esta opcin y luego en el botn Siguiente>.

15. Ahora ya tenemos definido todo lo que necesitamos para crear nuestro contenedor, lo nico que resta, es hacer clic en el botn Crear, de la pantalla que se muestra en la parte superior. Al finalizar el procedimiento, aparecer una nueva pantalla, esta vez la del contenedor de la aplicacin que acabamos de crear y que es similar a la que se muestra a continuacin.

Como puede observar, hay dentro del contenedor dos pginas, una es la que creamos en el procedimiento anterior y que llamamos Principal y la otra es la pgina Conectar, que es creada por este procedimiento de manera automtica y que se usa para realizar la autenticacin de los usuarios y permitir o rechazar el ingreso a nuestra aplicacin. En la siguiente entrega, vamos a ver cmo definir los valores por defecto de la interfaz de usuario.

Creando una aplicacin con Oracle Apex Parte 3


En la entrega anterior, creamos el contenedor para nuestra aplicacin, al cual en adelante, vamos a llamar nicamente como la aplicacin. Es el momento de empezar a definir las caractersticas de nuestra aplicacin, para ello, en esta nueva entrega, les voy a explicar cmo definir los valores por defecto de la Interfaz de Usuario. En esta, definimos las etiquetas que llevarn los diferente s

campos de tablas o vistas que utilizaremos en nuestra aplicacin, y que pueden aparecer en formularios o reportes. En realidad es un proceso muy sencillo, y que paso a definir a continuacin.

Cmo definir los valores por defecto de la Interfaz de Usuario?


En el ltimo paso de la publicacin anterior, quedamos en la pantalla de nuestra aplicacin, en donde aparecan dos pginas definidas durante el proceso de creacin de la aplicacin, de aqu en adelante vamos a continuar.
1. Haga clic en el botn Componentes compartidos.

2.

La imagen anterior muestra la pantalla a la que somos dirigidos, aqu se pueden observar varias secciones, pertenecientes a diferentes caractersticas de Apex que vamos a ir conociendo poco a poco. En este caso, nos interesa la seccin Interfaz de Usuario, haga clic en el enlace Valores por defecto de Interfaz de Usuario.

3.

Una vez cumplido el paso anterior, seremos llevados a una pantalla similar a la que se muestra arriba. Como podr observar, sta tiene ciertas caractersticas que pueden ser definidas a placer, tales como la cantidad y tipo de tablas/vistas a mostrar en la pgina, as como la forma en que estas son representadas en la pgina; como iconos (igual que en la imagen anterior) o como una lista detallada (Pruebe realizar cambios y observe las diferencias). Repita el siguiente procedimiento para incluir los valores por defecto de interfaz de usuario de una tabla o vista:

1.

Haga clic en la tabla que desea trabajar.

2.

Aparecer una pantalla similar a la anterior, aqu, haga clic en el botn Crear Valores por Defecto de Interfaz de Usuario.

3.

Al ejecutar el paso anterior, sern creados los valores por defecto para la tabla/vista seleccionada, estos valores son los que se muestran en la pantalla de arriba. Ahora lo que

queda es modificarlos para adecuarlos a nuestros deseos o necesidades. Les voy a explicar la manera ms sencilla de hacerlo. Para continuar con el proceso, haga clic en el botn Edicin de Cuadrculas.

4.

La vista de la pantalla cambia a una igual a la que se muestra anteriormente, ahora s, vamos a realizar los cambios necesarios:

1.

En el campo Ttulo de Regin de Pantalla, introduzca el ttulo que desea que aparezca en las pantallas de mantenimiento.

2.

En el campo Ttulo de Regin de Informe, ingrese el ttulo que aparecer como encabezado de reportes.

3. 4.

En el campo Etiqueta, teclee la etiqueta que tendr cada campo de la tabla/vista. En la columna Incluir en Informes indique con un S los campos que desea que aparezcan en los reportes y con un No, los que no desea que aparezcan.

5. 6. 7.

Haga lo mismo del paso anterior en la columna Incluir en Pantallas. En la columna Necesarios indique con un S, los campos que son de ingreso obligatorio. Puede indicar el orden en que aparecen los campos en informes y pantallas, indicando con un nmero consecutivo la posicin en informes o pantallas, para esto utilice las columnas Secuencia de Informe y Secuencia de Pantalla.

5. 6.

Haga clic en el botn Aplicar Cambios. Haga clic en el botn Cancelar para regresar a la pantalla anterior y seleccionar una nueva tabla/vista.

As de fcil es definir los valores por defecto de la Interfaz de Usuario para nuestra aplicacin, lo que nos va a evitar el estar escribiendo los ttulos y etiquetas cada vez que hagamos una pantalla o un reporte a partir de una tabla o vista. El siguiente paso es la creacin de una pantalla para captura de datos, la cual haremos en la siguiente entrega.

Creando una aplicacin con Oracle Apex Parte 4


Hasta este momento hemos visto como preparar el escenario para crear una aplicacin con Oracle Apex, ahora lleg la hora de empezar a agregarle contenido a nuestra aplicacin. Y vamos a empezar por crear una forma para levantado de informacin. Para que esta entrega sea un poco ms sustanciosa, vamos a realizar la pantalla de mantenimiento de datos de la tabla EMPque contiene la informacin de empleados y vamos a hacer algunas presunciones, como por ejemplo, que ya creamos la pantalla de mantenimiento de la tabla DEPT y que la utilizamos para cargar algunos datos en ella. Adems, vamos a agregar algo de cdigo a las tablas mencionadas, les vamos a agregar in disparador a cada una de ellas, as como una secuencia para manejar las llaves primarias de ambas. El cdigo utilizado lo puede obtener aqu. Una vez obtenido el cdigo, abra una sesin de SQL y ejecute este cdigo, luego de lo cual estaremos listos para llevar adelante esta tarea. Iniciemos pues con el tema de este artculo.

Cmo crear una forma para captura de datos?


Suponiendo que estamos iniciando desde fuera:
1. Ingrese a su aplicacin (recuerde que estbamos usando el espacio de trabajo Ejemplo, usuario ADMIN y la clave de ingreso que cada uno ha definido). 2. 3. Haga clic en la imagen Application Builder. Ahora haga clic sobre el icono de la aplicacin Empleados.

4.

La imagen de arriba muestra la pantalla que debera estar viendo en este momento. Como lo que queremos hacer es crear una nueva pgina para nuestra aplicacin; haga clic en el botnCrear Pgina >.

5.

La imagen anterior muestra la pantalla de seleccin del tipo de pgina que queremos crear, en nuestro caso, vamos a seleccionar la opcin Pantalla, luego de lo cual tenemos que hacer clic en el botn Siguiente >.

6.

Tenemos nueve opciones diferentes para el tipo de pantalla que queremos crear, para este ejemplo, vamos a seleccionar la opcin Pantalla Basada en Tabla o Vista, luego hacemos clic en el botn Siguiente >.

7.

A partir de ahora y de la pantalla que se muestra arriba, lo que haremos es definir la funcionalidad de la pgina que estamos creando. Como puede ver, el esquema que definimos para nuestra aplicacin aparece seleccionado, por lo que en esta pgina solo tenemos que hacer clic en el botn Siguiente >.

8.

En la nueva pgina debemos indicar la tabla que vamos a utilizar para crear nuestra pantalla y podemos hacerlo de dos maneras: podemos escribir directamente en el campo correspondiente el nombre de la tabla, o bien, podemos hacer clic en el botn a la derecha del campo, y seleccionar la tabla de la lista que nos ser mostrada. En nuestro caso vamos a escribir directamente el nombre de la tabla: EMP, luego de lo cual haremos clic en el botn Siguiente >.

9.

La imagen de arriba muestra la pantalla que debe tener en frente de sus ojos en este momento, en ella no debera modificar nada, o casi nada. Si observa bien, el cuarto campo de la pantalla dice Usar Valores por Defecto de Interfaz de Usuario, estos son los valores que definimos para cada tabla y vista en la entrega anterior y para esto es que se utilizan estos valores. En mi caso, voy a modificar el campo Nombre de la pgina y lo voy a cambiar por Mantenimiento_EMP, luego se debe hacer clic en el botn Siguiente >.

10. Ahora hay que definir las opciones de separadores, como recordar, cuando definimos la aplicacin, decidimos que utilizaramos separadores de un nivel, en la pantalla de arriba

vamos a definir un separador para la pgina que estamos creando, para esto, primero marcamos la opcin Utilizar un juego de separadores existente y crear un nuevo separador en el juego de separadores existente; luego en el campo Nueva etiqueta de separador escribimos Empleados. Finalmente hacemos clic en el botn Siguiente >.

11. En la pantalla siguiente (ver arriba), definimos la llave primaria de la tabla, y para nuestro ejemplo, lo nico que tenemos que hacer es hacer clic sobre el botn Siguiente >.

12. En la pantalla siguiente, mostrada arriba, definimos la forma en que se manejar el origen de la llave primaria de la tabla, para lo cual proporcionamos el cdigo del inicio de esta entrega, solamente debe hacer clic en el botn Siguiente >.

13. En la pantalla que se muestra anteriormente, definimos las columnas de la tabla que deseamos mostrar en la pantalla que estamos creando, aqu puede desmarcar las que desee, o bien, como en mi caso, dejar todas las columnas seleccionadas y hacer clic en el botn Siguiente > una vez que estemos listos con nuestra seleccin.

14. Como puede ver arriba, la siguiente pantalla nos permite mostrar la funcionalidad de la nueva pgina, aqu define si se pueden crear nuevos registros, modificar o eliminar los existentes, para eso debe seleccionar S o No en los diferentes campos Mostrar botn , adems define la etiqueta de cada uno de los botones que mostrar la pantalla, en mi caso, voy a modificar la Etiqueta del Botn Cancelar y voy a escribir en este campo Regresar, para de este modo dar a entender que este botn, me permite regresar a la pantalla origen. Para culminar este paso, hacemos clic en el botn Siguiente >.

15. La imagen anterior muestra la pantalla de definicin de caractersticas de navegacin de la pantalla, en donde definimos que hacer luego de haber ejecutado un proceso de la pgina (insertar, modificar o eliminar un registro), as mismo que hacer cuando hacernos clic en el botn Regresar. Vamos a escribir un 3 en el primer campo y un 1 en el segundo de ellos, para regresar a la pgina principal cuando cancelamos cualquier accin, y para mantenernos en la misma pgina luego de incluir, modificar o eliminar un registro, solo resta hacer clic en el botn Siguiente > para continuar avanzando en la creacin de nuestra pantalla.

16. Arriba puede ver la pantalla de confirmacin de todo cuanto hemos hecho hasta este momento, al hacer clic en el botnTerminar.

17. Hemos llegado a la pantalla final del proceso de creacin de una nueva pgina, para este caso, una nueva pantalla, si hace clic en el botn Ejecutar Pgina, ver el resultado de todo el proceso que acabamos de culminar y que se muestra a continuacin.

18. En la parte inferior de la pantalla tiene un men de opciones , haga clic en el enlace Editar Pgina 3, para mostrar la pgina que puede observar abajo. Aqu podemos realizar un montn de cosas interesantes que poco a poco iremos aprendiendo.

Hemos creado nuestra primer pantalla de mantenimiento para una tabla, como puede observar en la imagen que se muestra luego del punto 17, existen varias cosas importantes que debe notar:

Se cre en la parte superior de la pantalla, un nuevo separador llamado Empleados, el cual utilizamos cada vez que queremos mantener datos de los empleados, para lo cual solo debemos hacer clic sobre l.

Cada campo de la pantalla fue creado con la etiqueta que definimos para la tabla en la entrega anterior para los Valores por Defecto de Interfaz de Usuario.

El campo de Fecha Ingreso muestra a su derecha un pequeo botn , el cual levantar un calendario desde el cual podremos seleccionar la fecha indicada.

Solo

se

muestran

los

botones Regresar y Crear,

los

botonesSuprimir y Aplicar

Cambios solo se mostrarn cuando accedemos a esta pantalla con un nmero de empleado existente, lo cual es otro tema a tratar en una entrega posterior.

As de sencilla es la creacin de una nueva pgina para nuestra aplicacin de Oracle Apex, espero que se sientan contentos y deseosos de seguir aprendiendo acerca de esta herramienta, en la prxima entrega los enseare Cmo generar un reporte con la ayuda del asistente de informes?

Creando una aplicacin con Oracle Apex Parte 5


Para finalizar esta serie acerca de mo crear una aplicacin bsica en Oracle Apex, les voy a explicar cmo crear un reporte para nuestra aplicacin. Recapitulando, vimos en las entregas anteriores:

Cmo crear un espacio de trabajo para la aplicacin? Cmo crear el contenedor para la aplicacin?

Cmo definir los valores por defecto de la Interfaz de Usuario? Cmo crear una forma para captura de datos?

Empecemos pues con la tarea que nos queda pendiente.

Cmo generar un reporte con la ayuda del asistente de informes?


Dejemos de lado los pasos de cmo registrar el ingreso a nuestra aplicacin, que ya debemos dominar bien para este momento y empecemos a crear nuestro reporte.
1. Estando en la pgina principal de la aplicacin, haga clic en el botn Crear Pgina >, abajo se muestra una ilustracin de la pgina que debera estar viendo.

2.

Luego de realizar el paso anterior, ser llevado a la pgina que muestra la siguiente ilustracin, haga clic en el botnInforme.

3.

En este momento, le ser mostrada una nueva pgina (ver ilustracin de abajo), con cuatro opciones posibles para generar su reporte, en el caso que nos ocupa, vamos a explicar el uso del Informe de Asistente, as que haga clic sobre este botn.

4.

Sobre la pgina que muestra la ilustracin de abajo, ingrese los datos de identificacin del reporte (en mi caso voy a conservar el nmero de pgina que asigna Apex, as como la plantilla de regin).

5.

En el campo Ttulo de pgina vamos a escribirInforme_empleados, o el nombre que le quiera asignar al reporte. En el campo Ttulo de regin, escribimosEmpleados, o bien, un nombre que sea significativo del contenido de la regin y que nos permita fcilmente darnos una idea de a que corresponde dicha regin. Por ltimo, hacemos clic en el botn Siguiente >.

6.

Tenemos que crear un nuevo separador para el reporte que estamos creando, as que en la pgina que se muestra arriba, vamos a marcar la opcin Utilizar un juego de separadores existente y crear un nuevo separador en el juego de separadores existente.

7.

Ahora estar viendo una pgina similar a la de arriba, el campo Juego de Separadores lo vamos a mantener intacto, pues solo tenemos este juego de separadores. En el campo Nueva Etiqueta de Separador, vamos a escribir Reporte Empleados, luego hacemos clic en el botn Siguiente >.

8.

Sobre la pgina que se muestra arriba, vamos a seleccionar la tabla y columnas que van a formar parte del reporte, lo primero que tenemos que hacer es seleccionar la tabla, pues el esquema es definido por omisin, como el que definimos para la aplicacin. En la lista de seleccin Tabla/Vista, seleccione la tabla EMP.

9.

La ilustracin de arriba le muestra como debera estar vindose en este momento la pgina, puede utilizar los botones con flecha direccional para mover las diferentes columnas entreColumnas Disponibles y Columnas Mostradas, estas ltimas son las que van a aparecer en el reporte, en mi caso voy a incluir todas las columnas en el reporte, as que lo nico por hacer es hacer clic en el botn con flecha a la derecha.

10. Actualmente, debera estar viendo una pantalla igual a la que muestra la imagen de arriba, para continuar, haga clic en el botn Siguiente >.

11. En la pgina siguiente (mostrada arriba), voy a seleccionar en el campo Plantilla de informe, la opcin plantilla 3: Standard Report (with alt row colors), la cual me va a presentar las lneas del reporte coloreadas alternamente (una s, una no). Voy a mantener el nmero de filas por pgina intacto (15), usted puede definir a gusta cuantas filas quiere que se muestren por pgina, tambin mantenemos los otros dos valores iguales y hacemos clic en el botn Siguiente >.

12. El paso final es confirmar la creacin del reporte. La ilustracin anterior muestra la pgina de resumen con las caractersticas principales que definimos para el reporte, lo nico que resta es hacer clic en el botn Crear Pgina de Informe. 13. Una pgina de conformacin en mostrada, para ver el informe resultante, haga clic en el botn Ejecutar Pgina.

El resultado del proceso anterior debe ser una pgina igual a la que se muestra a continuacin.

Como puede ver, est el informe de todos los empleados incluidos en la tabla EMP, y hay una nueva pestaa o separador en la parte superior de la pgina llamada Reporte Empleados, tal y como lo definimos en el paso 7. Este es un reporte bsico, llamado Clsico por parte de Oracle Apex. Hay algunas cosas interesantes que se podran hacer con l, como por ejemplo mostrar el nombre del departamento, en lugar de su cdigo; o bien, podramos agregar un enlace hasta la pgina de mantenimiento de empleados que creamos en el artculo anterior, para poder modificar o eliminar los datos de los empleados, pero eso queda para otra entrega, en caso de que a ustedes como lectores les interese. Con esto pongo punto final a esta serie de artculos sobre cmo crear una aplicacin sencilla con Oracle Apex. Espero que les sea de utilidad y espero sus sugerencias y comentarios.

Calcular un campo a partir de otros dos usando Javascript


Haciendo un intermedio en la serie sobre cmo crear una aplicacin utilizando Oracle Apex, quiero ofrecerles este truco para poder calcular el valor de un campo nmerico a partir de otros dos campos. Para esto, lgicamente necesitamos una pgina que contenga una regin con tres campos de tipo texto:

Los campos con los valores a utilizar PX_1 y PX_2 (donde X es el nmero de pgina de la aplicacin).

El campo donde dejaremos en resultado de la operacin PX_TOTAL.

Para realizar la suma de los campos PX_1 y PX_2, primero copie el siguiente cdigo en la Cabezera HTML de la Pgina: <script function { function { if(document.getElementById(item).value return else != ) parseFloat(document.getElementById(item).value); getVal(item) type=text/javascript> sumaItems()

return } document.getElementById(PX_TOTAL).value getVal(PX_1) } </script> Por supuesto, cambie los nombres de variables por los que usted est utilizando. +

0; = getVal(PX_2);

Segundo: en el campo PX_2, en los Atributos de Elemento de Pantalla HTML, escriba el siguiente cdigo: onBlur=javascript:sumaItems() Eso es todo, ahora ejecute su pgina y escriba dos valores numricos en los campos PX_1 y PX_2, luego del campo PX_2 pulse la tecla de tabulacin y el campo PX_TOTAL ser calculado y su valor mostrado. Como es de suponer, puede realizar cualquier otro tipo de calculos ms complejos. Puede ver este ejemplo implementado para suma, resta, multiplicacin y divisin en mi aplicacin de ejemplo en OTN, en la siguiente direccin: http://apex.oracle.com/pls/otn/f?p=56897.

Listas de valores en cascada


Una de las cosas que ms causan curiosidad a la hora de realizar aplicaciones con Oracle Apex, es el poder definir listas de valores en cascada, donde el valor de la segunda lista o an una tercera o cuarta listas, dependan del valor seleccionado en la primera lista.

En realidad, es una tarea que al final resulta sencilla de realizar, lo importante es conocer el concepto de como funcionan las pginas HTML y cmo se pueden implementar de manera sencilla. Para este artculo me voy a centrar en la creacin de una pgina sencilla con dos campos del tipo Lista de Seleccin, que van a estar definidos por dos listas de valores; una para los datos contenidos en la tabla DEPT del esquema SCOTT, y otra para los datos de la tabla EMP, pero que va a mostrar solo los datos de esta tabla que correspondan con el departamento seleccionado en la lista de departamentos. Para realizar esto:
1. 2. 3. 4. Ingrese a su rea de trabajo. Seleccione la aplicacin en la que va a crear la pgina. Cree una nueva pgina en blanco, haciendo clic en el botnCrear Pgina. Cree una bifurcacin incondicional direccionada al mismo nmero de pgina que acaba de crear. 5. 6. Ahora cree una regin de tipo HTML. Cree un campo llamado Px_LOV_DEPTO del tipo Lista de Seleccin con Ejecucin, donde x corresponde al nmero de pgina creada. 7. Incluya el siguiente cdigo en la definicin de lista de valores del campo:

select from order by 1


8.

DNAME

display_value,

DEPTNO

return_value DEPT

Cree un nuevo campo, ahora del tipo Lista de Seleccin, con el nombre

Px_LOV_EMP y agrguele el cdigo siguiente en la definicin de lista de valores:

select from where order by 1


9.

ENAME

display_value, deptno

EMPNO =

return_value EMP x_LOV_DEPTO

Ejecute la pgina, experimente y observe lo que sucede con los valores de la lista de

empleados cada vez que es seleccionado un nuevo departamento.

Puede observar esta funcionalidad ejecutndose en mi rea de trabajo de OTN en la siguiente direccin:apex.oracle.com/pls/otn/f?p=56897

Exportando reportes Apex a Excel


Son varias las solicitudes que me han hecho para que explique cmo exportar un reporte desde Apex a Microsoft Excel, por esto, en este artculo voy a definir un paso a paso de cmo lograr esto, con el uso de un paquete desarrollado por mi amigo Denes Kubicek para tal propsito. Existen dos versiones de este paquete, una para realizar la exportacin desde Apex y otra para hacerlo desde Oracle XE, al final de este artculo podrn encontrar los enlaces para descargar ambos paquetes, los cuales muy gentilmente han sido puestos a disposicin de todos por mi amigo Denes. Antes de entrar en materia , debo mencionar que Apex tiene definidos procedimientos estndar para realizar la exportacin de reportes a formatos variados como Excel, Word y PDF, sin embargo, para poder utilizar esas funcionalidades, se hace necesario contar con el componente BI Publisher de Oracle, el cual requiere de una licencia vlida, la que a su vez tiene un costo elevado y no todos podrn contar con ella, por lo que esta alternativa que les propongo, puede resultarles de mucha utilidad. El procedimiento para instalar el paquete y poder exportar reportes a Excel es el siguiente:
1. 2. 3. 1. 2. Descargue el paquete desde el enlace que se proporciona al final de este artculo. Descomprima el contenido del archivo. Instale el paquete en el esquema del usuario que desea utilizarlo: Ejecute una instancia de SQL: DRIVE: sqlplus usuario/clave@conexion @export_to_excel_pkg.sql Ingrese a la aplicacin Apex Si no cuenta con una Pgina 0 definida, crela. Ingrese a Componentes Comunes y luego a Procesos de Aplicacin Haga clic en el botn Crear > y cree un proceso con las siguientes caractersticas:

0. 1. 2.

Nombre: DOWNLOAD_EXCEL Secuencia: 1 Punto: En carga: Antes de cabecera (cabecera de plantilla de pgina)

3. 4.

Haga clic en el botn Siguiente >

En el texto de proceso ingrese el siguiente segmento de cdigo:

BEGIN export_excel_pkg.print_report END;


5. En el Mensaje de error escriba el mensaje que desee que aparezca en caso de que se

(:t_region_id,

:t_excel_name,

:t_page);

produzca un error 6. 7. Haga clic en el botn Siguiente > Haga clic en el botn Crear Proceso Cree los siguientes elementos de aplicacin: T_EXCEL_NAME, T_PAGE y

T_REGION_ID: 0. 1. Ingrese a Componentes compartidos y a Elementos de aplicacin Para cada uno de los elementos haga clic en el botnCrear >

2. 3.

Ingrese el nombre de cada elemento Haga clic en el botn Crear Ingrese al reporte que desea exportar y dirjase a la seccin de Regiones En la regin del reporte deseado, haga clic en el enlaceInforme All, en la seccin de Exportacin de Informe, seleccione Sen el campo Activar Salida de CSV En el campo Etiqueta de enlace, ingrese el siguiente cdigo:

<a href="f?p=&APP_ID.:0:&SESSION.:DOWNLOAD_EXCEL:NO::T_REGION_ID, T_EXCEL_NAME,T_PAGE:#REGION_ID#,my_report,&APP_PAGE_ID."> Exportar a Excel</a>


Haga clic en la pestaa Atributos de Impresin y seleccioneS en el

campo Activar Impresin de Informe Haga clic en el botn Aplicar Cambios

Una vez realizado esto, en el pie de pgina de la regin del reporte le aparecer un enlace con la leyenda Exportar a Excel, el cual le permitir exportar a Excel su reporte, sin embargo, hay algunas consideraciones a tomar en cuenta:
1. Los puntos 1 al 8 del procedimiento anterior, se deben realizar una nica vez para cada espacio de trabajo en que desee implementar esta funcionalidad, sin embargo, si los espacios de trabajo pertenecen a un mismo esquema (usuario de base de datos), la instalacin del paquete (puntos 1 al 3) se realizan una sola vez. 2. En el cdigo del punto 12, el segmento que dice my_report, es el nombre con que se exportar el reporte a Excel, por tanto, lo puede cambiar a su antojo, para que este nombre refleje el contenido del reporte exportado. 3. El segmento del punto 12 que dice Exportar a Excel, es el texto que se muestra para el enlace de exportacin y tambin lo puede manejar a su antojo, puede poner el texto que desee, o an incluir alguna imagen. 4. No utilice el sufijo #OWNER# en el cdigo del query del reporte , esto le producir un error y no obtendr el resultado deseado. 5. El esquema (Usuario de base de datos) que ejecute este procedimiento, necesita derechos o permisos de ejecucin sobre el paquete DBMS_SQL. 6. 7. El paquete NO FUNCIONAR para reportes del tipo Funcin retornando SQL. Si los reportes incluyen una clusula group by, necesita modificar el paquete y utilizar la sintaxis v(ITEM) en lugar de(select v(ITEM) from dual)

Con esto es suficiente para que pueda exportar sus reportes a Excel, lo nico que le resta por hacer es bajar el paquete, instalarlo y empezar a exportar sus reportes. Suerte y espero tenerlos de regreso pronto con sus comentarios, preguntas y sugerencias. A continuacin los enlaces de descarga de los paquetes para exportar a Excel. Paquete exporta reportes desde Apex

Paquete exporta reportes desde Oracle XE

Impresin PDF en Oracle Apex


Introduccin y arquitectura
Apex 3.0 introdujo la habilidad de exportar una regin de reporte a formato PDF esencialmente, imprimir un reporte. Esto es definido declarativamente y est disponible para todas las regiones de reporte. Los usuarios de Application Express ahora pueden ver e imprimir reporte con cabeceras de pgina que se repiten en cada pgina y contenido que se conforma propiamente a varios tamaos de pgina. Para lograr esto, los datos del reporte son transformados a formato PDF utilizando un servidor de reportes definido externamente. Otras mejoras de impresin han sido incorporadas en la versin 3.1 de Oracle Application Express, dentro de los Atributos de Impresin de la Regin y los Queries de los Reportes. La ilustracin de abajo muestra la arquitectura de impresin de Oracle Express:

Cuando el usuario final de la aplicacin hace clic en el enlace de impresin, la solicitud es enviada al motor de Apex (que es parte de la base de datos Oracle). Luego el motor de Apex genera los datos correspondientes del reporte en formato XML y la plantilla del mismo en formato XSL-FO o RTF. EL motor de reportes externo entonces transforma los datos y la plantilla a PDF, el cual es desplegado al usuario final utilizando el servlet de conversin que viene con BI Publisher 10.1.3.2. Toda esta complejidad de arquitectura es transparente para el usuario final y los desarrolladores. Los usuarios finales solo deben hacer clic en los enlaces de impresin, y los desarrolladores solo deben definir o rellenar declarativamente las regiones para poder utilizar la impresin en PDF. Existen dos tipos de impresin en PDF, una estndar, la cual voy a tratar en este artculo, y la que se menciona en el prrafo anterior y que es conocida como Avanzada, y que por el momento voy a dejar de lado, debido a que BI Publisher es un producto licenciado de Oracle y que tiene un costo considerable, por lo que no todos podrn contar con esta como parte de sus aplicaciones.

Opciones de configuracin
Su servidor de aplicaciones puede ser Oracle BI Publisher (como se mencion arriba), OC4J con Apache FOP o cualquier otro motor de procesamiento XSL-FO estndar. Lgicamente, si se pudiera utilizar BI Publisher como su servidor de reportes, se tendr un mayor nivel de funcionalidad, a continuacin se presenta una breve descripcin de ambas tipos de configuracin para que se pueda comparar.

Opcin Estndar (Bsica)


La configuracin estndar puede ser implementada con Apache FOP o cualquier otro motor de procesamiento XSL-FO estndar. A partir de Apex 3.0.1, se incluye dentro de este, una configuracin de Apache FOP en conjunto con Oracle Containers para J2EE

(10.1.3.2). Esto provee la habilidad de dar formato declarativo de las regiones de reportes y queries de reportes con control bsico sobre los atributos de la pgina. Estos atributos incluyen orientacin, tamao, formato de cabeceras de columnas, encabezado de pgina y pie de pgina. Las ilustraciones de abajo muestran los reportes obtenidos con la configuracin estndar:

Opcin Avanzada
La configuracin avanzada requiere una licencia vlida de Oracle BI Publiser. Con esta configuracin, usted cuenta con todas las capacidades de la opcin estndar ms la habilidad de definir y desarrollar trazados de reportes basados en RTF, utilizando para ello el complemento de Plantilla Word de BI Publisher. Esto provee fcil control grfico sobre cada aspecto de su reporte. Se pueden agregar logotipos a sus pginas, controles de agrupado complejos y tener control total de la paginacin. Fcilmente puede empotrar grficos y crear reportes que luzcan exactamente como formularios estndar de cualquier organizacin. A continuacin algunos ejemplos de reportes que ilustran la configuracin avanzada:

Instalando y configurando Apache FOP


Prerequisitos
Una configuracin con soporte de Apache FOP en conjuncin con Oracle Containers para J2ee (10.2.3.2) viene como parte de Apex 3.0.1 o superior. La instalacin de Apache FOP viene incluida en la distribucin de Apex bajo directorio_apex/utilities/fop/fop.war. (directorio_apex, es el directorio desde el que se instala Apex) Por favor tome nota de que el soporte a Apache FOP en conjunto con OC4J (10.1.3.2) tiene soporte por parte de Oracle SOLOcuando se utilizan los archivos que se proporcionan. Las configuraciones alternas de Apache FOP no tienen ningn tipo de soporte. Antes de empezar, usted va a necesitar OC4J instalado y ejecutndose. La siguiente versin de OC4J est verificada y trabaja con la solucin FOP:

o o

Oracle Containers para J2EE (10.1.3.2) Disponible para descargar desde OTN Instrucciones de instalacin y configuracin (en ingls)

Paso 1: Instalando el archivo WAR


Coloque el archivo fop.war (localizado en directorio_apex/utilities/fop) en una

localizacin accesible de su computadora local. Luego siga las siguientes instrucciones:

1.

Navegue hasta la Consola de OC4J del Enterprise Manager (http://localhost:8888/em) Los datos deben corresponder con sus datos de configuracin.

2. 3. 4.

Selecciones la pestaa de Aplicaciones Haga clic en el botn Desplegar (Deploy) En la pgina de Desplegar: Seleccionar archivo utilice la opcin El archivo est presente en el host local. Cargar el archivo al servidor donde el Control de Servidor de Aplicaciones est ejecutndose (o algo similar). Use el navegador de archivos para seleccionar el archivo fop.war y haga clic en el botn Siguiente.

5.

En la pgina Desplegar: Atributos de Aplicacin defina el nombre de la aplicacin como fop y limpie o desmarque la opcin Context root, luego haga clic en el botn Siguiente.

6.

En Desplegar: Definiciones de desplegado haga clic en el botn Desplegar.

Paso 2: Configurar Apex para utilizar la impresin PDF y JSP


Una vez que tiene FOP instalado, accese los parmetros de Impresin de Reporte:
1. 2. 3. 4. Acceda a la pgina de Administracin de Servicios Seleccione Administrar Servicio Seleccione Definiciones de Instancia , bajo Administrar Definiciones de Ambiente Haga clic en Impresin de Reportes, para enfocarse en los atributos de Impresin de Reportes nicamente

Ahora, especifique los siguientes atributos:

Oracle BI Publisher: Soporte Estndar Protocolo Servidor de Impresin: HTTP o HTTPS (dependiendo de su configuracin particular)

Direccin de host de Servidor de Impresin: el nombre de la computadora donde el contenedor java est ejecutndose por ejemplo: micompu.micompaia.com

Puerto del Servidor de Impresin: el puerto en que el OC4J est escuchando por ejemplo 8888

El script del Servidor de Impresin: /fop/apex_fop.jsp

Asegrese de ingresar las definiciones del servidor de aplicaciones como se especifica, no use http:// delante de su nombre de computadora, no use dos puntos (:) en el puerto y no utilice / despus del nombre del JSP, solo por delante:/fop/apex_fop.jsp.

Nota:Las imagenes utilizadas en este artculo son propiedad de la Corporacin Oracle.

Mensajes de ayuda en caja pop-up


Una de las cosas ms importantes en toda aplicacin, es proporcionar al usuario final, la mayor ayuda posible, de la manera ms sencilla. Es por eso que en esta ocasin, les ofrezco una alternativa para mostrar al usuario mensajes de ayuda en una ventana que se levanta al pasar el puntero del mouse sobre un enlace, el cual puede ser del tipo texto, o bien, una imagen. El presente tip est diseado para utilizar en pginas que posean una forma de entrada de datos, ms adelante en este artculo encontrar los enlaces a los archivos de cdigo necesarios para realizar est tarea. Espero que les sea de utlidad. Como siempre, pueden ver esta funcionalidad en accin en mi espacio de trabajo en OTN. He aqu el procedimiento:
1. 2. 3. 1. 2. 3. Descargue el archivo con el cdigo javascript de aqu: cajatip.js Descargue la hoja de estilo en cascada para la caja: pista.css Cargue el archivo pista.css en la aplicacin: Ingrese a la aplicacin. Luego a Componentes Compartidos Por ltimo a Archivos estticos y siga el asistente para cargar el archivo. Ahora cargue el archivo cajatip.js en la aplicacin: 0. 1. En Componentes Compartidos. Haga clic en Hojas de Estilo en Cascada y siga el asistente para cargar el archivo. Si desea utilizar una imagen para levantar la caja de ayuda, utilice esta 0. 1. Nuevamente en Componentes Compartidos Ingrese a Imgenes y complete el asistente para cargar la imagen anterior. Ahora, para cada pgina que contenga campos de ingreso de datos y que desee que contenga cajas de ayuda para sus campos: 0. En la definicin de la pgina, en Encabezado HTML ingrese el siguiente cdigo:

<script type="text/javascript" src="#WORKSPACE_IMAGES#cajatip.js">

</script> <link rel="stylesheet" type="text/css" href="#WORKSPACE_IMAGES#pista.css">

1.

En cada elemento al que desee agregarle una caja de ayuda, en el artibuto Texto posterior al Elemento agregue el siguiente cdigo:

<a href="#" class="enlace_pista" onMouseover="muestrapista( 'Texto de ayuda.', this, event, '150px')">[?]</a>


Si desea un enlace de texto, o bien:

<a href="#" class="enlace_pista" onMouseover="muestrapista( 'Texto de ayuda.', this, event, '150px')"> <img src="#WORKSPACE_IMAGES#help.png"></a>
Si desea utilizar la imagen para acceder a la caja de ayuda.
2. En el cdigo anterior, en cualquiera de los dos casos, cambie el cdigo Texto de ayuda por el mensaje que desea que sea mostrado para cada campo en particular. 3. Tambin puede modificar el tamao de la caja de ayuda, si cambia el cuarto parmetro de la funcion muestrapista

Y eso es todo, ahora tiene una manera bonita e interesante de presentar al usuario final ayuda de manera sencilla e interesante Si lo desea, puede modificar el archivo pista.css para cambiar el color de fondo de la caja, el tipo y tamao de letra o cualquier otra caracterstica de la caja.

Oracle Apex para desarrolladores de Oracle Forms


Existe una marcada tendencia a buscar sistemas livianos, de bajo consumo de ancho de banda en las redes de las empresas y que permitan el uso de estaciones de trabajo de

bajo costo, esto con el fin de bajar los costos de operacin de las mismas y sobre todo en estos momentos de crisis. Esta es la razn por la que les presento esta entrega, sobre todo a aquellos desarrolladores de Oracle Forms, que an no han oido hablar de Oracle Application Express (Apex). Oracle Forms fue introducido a mediados de los aos 80 como una de las primeras herramientas de desarrollo ms poderosas para desarrollar aplicaciones de bases de datos, con una larga y fructfera vida de cerca de 20 aos y que an hoy en da sigue cumpliendo con sus objetivo. Durante todo este tiempo Oracle Forms ha pasado del modo carcter y el modo de bloque a cliente servidor y de all a Internet con el uso de Forms Server, sin embargo, debido a las nuevas tendencias, muchas empresas hoy en da quieren realizar una transicin a soluciones basadas en HTML. Existen muchas alternativas para los desarrolladores que desean aplicaciones nativas en HTML, una de esas alternativas es utilizar JDeveloper en conjunto con ADF (Oracle Application Development Framework), alternativa que no vamos a ampliar aqu. Otra alternativa que debera ser apliamente considerada es Oracle Application Express (Apex). Si su proyecto o departamento de TI cuenta con lo siguiente:

Profesionales de TI con conocimientos considerables de SQL y PL/SQL Experiencia limitada en programacin orientada a objetos Tablas almacenadas en una base de datos Oracle

Entonces debera considerar el uso del Apex en el desarrollo de sus aplicaciones. La siguiente tabla muestra algunas diferencias y similitudes existentes entre Oracle Forms y Apex.

Caracterstica 4GL Declarativo Si

Oracle Forms Si

Apex

Descripcin Oracle Forms presenta las aplicaciones usando metadata almacenada en un archivo .fmx. Apex presenta las aplicaciones utilizando metadata almacenada en una base de datos Oracle. Oracle Forms ejecuta PL/SQL del lado del cliente. Apex utiliza PL/SQL del lado

Lenguajes 4GL

SQL y PL/SQL

SQL y PL/SQL

del servidor. Interface de Usuario Java HTML Oracle Forms es accesado utilizando un navegador web y su interface de usuario es presentada usando un JVM. Apex tambin se invoca desde un navegador web pero su interface de usuario es HTML y JavaScript. Oracle Forms usa posicionamiento exacto y Apex usa posicionamiento relativo HTML.

Dibujo de la Ventanas/Lienzos pgina

Pginas/Regiones

Control de Desde campos del Disparadores lado del cliente

Javascript y AJAX Oracle Forms provee validacin robusta y procesamiento a nivel de campo. Apex permite validacin y procesamiento de eventos declarativos a nivel de pgina. La validacin y el procesamiento de eventos a nivel de campo requieren el uso de Javascript y AJAX. Si Ambos Oracle Forms y Apex apoyan el llamado a servicios Web, por ejemplo BPEL. Oracle Forms usa BI Beans como su motor de grficos integrado. Apex usa Flash Charts como su motor de grficos integrado. Oracle Forms permite un rango de modelos de bloqueo con el modelo pesimista por omisin. Debido a su arquitectura asincrnica, Apex usa un modelo de bloqueo optimista. Oracle Forms utiliza conexiones sincrnicas para permitir a las transacciones abarcar mltiples interacciones en pantalla. Apex no permite abarcar transparentemente transacciones por vistas de pgina. Apex permite a transacciones abarcar vistas

Si Apoyo a Servicios Web Grficos BI Beans

Flash

Bloqueo

Pesimista, Optimista, Personalizado

Optimista, Personalizado

Conexin a Sincrnica Base de Datos

Asincrnica

de pgina usando colecciones. Conexin a base Apoyo a de datos por Usuarios concurrentes usuario sostenida por sesin Conectividad a base de datos solo durante el procesamiento de la solicitud Cada usuario conectado a Oracle Forms mantiene una conexin sincrnica a la base de datos Oracle. Los usuarios de Apex son asincrnicamente conectados a la base de datos Oracle. Con Oracle Forms, la lgica de la aplicacin es procesada en la base de datos Oracle, un servidor de capa media Forms Server, o en el cliente robusto. Con Apex, la lgica de la aplicacin en PL/SQL es procesada dentro de la base de datos Oracle. La lgica del lado del cliente es implementada utilizando JavaScript. Las comunicaciones HTTP son facilitadas usando Apache y Mod/PLSQL.

Arquitectura 3 Capas

2 Capas

Y an ms buenas noticias; Oracle ha anunciado una nueva caracterstica dentro del ambiente de programacin de Apex, en su prxima versin, es probable que contemos con una herramienta que nos va a ayudar a convertir los Forms de Oracle a pginas de Apex, as que mantngase en contacto esperando nuevas noticias. Si usted es desarrollador de Oracle Forms y desea saber ms acerca de Apex, le invito a leer algunas de mis entregas anteriores: Qu Creando Creando Creando Creando una una una una es aplicacin aplicacin aplicacin aplicacin con con con con Oracle Oracle Oracle Oracle Oracle Apex Apex Apex Apex Parte Parte Parte Parte Apex? 1 2 3 4

Creando una aplicacin con Oracle Apex Parte 5

Controlando el aspecto de los campos


Una pregunta frecuente, es cmo se puede controlar la manera en que lucen los campos en una forma realizada con Oracle Apex?

A continuacin una breve explicacin de como se puede modificar la apariencia que tiene cada campo un nuestras pginas, de manera que podamos realzar los campos que queremos que el usuario note fcilmente. Para esto, se debe conocer un poco de hojas de estilo. Una vez creada su pgina, el procedimiento a seguir para personalizar la apariecia de cualquier campo de una forma es:
1. 2. 3. Seleccione el campo que desea personalizar En la pgina de propiedades del campo seleccionado, busque la seccin Elemento. En el campo Atributos de Elemento de Pantalla HTML, ingrese los atributos que desea aplicar al campo seleccionado. Por ejemplo: style=background-color:#CCCCCC;fontsize:20px;color:RED;text-align:left; . En este caso se est definiendo un fondo de color gris, con letras de color rojo y de tamao 20, alineado a la izquierda. 4. Tambin puede agregar texto antes y despus del campo, utilizando las opciones texto anterior a elemento y texto posterior a elemento. 5. En esta misma seccin puede definir el tamao del campo que se muestra, as como las caractersticas de la celda de la tabla en que se muestra el campo seleccionado. 6. Para finalizar haga clic en el botn Aplicar cambios.

Tambin puede realizar todas las definiciones de atributos de campos que desee utilizar en un archivo, o incluirlas como parte del encabezado de la pgina y luego cambiar el texto que se indic en el punto 3 por la respectiva referencia, por ejemplo: class=Rojo_Grande.

Creando un calendario con enlaces


La ejecucin de este ejemplo supone que el lector posee cierta experiencia en el uso de Oracle Apex y que al menos sabe realizar las tareas bsicas con el mismo. Una de las funcionalidades interesantes que posee Oracle Apex, es el uso de calendarios, mediante los cuales podemos hacer referencia a datos o informacin que tenga relacionada una fecha, con l podemos presentar dichos eventos en un formato de calendario. Para ilustrar el uso del calendario, voy a utilizar una tabla que agregu al esquema que se usa para la aplicacin de ejemplo, esta tabla la llam MEET y posee los siguientes campos:

MEETID

NUMBER(10,0)

DESCRIPTION VARCHAR2(50) MDATE DATE DEPTNO NUMBER(2,0)


La columna MEETID se actualiza con una secuencia a la hora de hacer el INSERT. Para generar un calendario, lgicamente debemos crear una pgina, el procedimiento es el siguiente:
1. En su aplicacin cree una nueva pgina y seleccione la opcin calendario.

2.

Continue el asistente hasta llegar a la pgina en donde se le solicita el cdigo SQL utilizado para crear el calendario e introduzca SELECT description, mdate, deptno, meetid from meet where deptno = P99_DEPTNO tal y como se observa en la imagen a continuacin. Cambie el nmero de pgina por el correspondiente a la suya.

3.

En la pgina de Columnas de Fecha/Visualizacinseleccione las columnas tal y como muestra la siguiente imagen.

4.

Haga clic en el enlace derecho de la seccin Regiones para la regin del calendario, que le muestra la imagen a continuacin.

5. 6.

En el campo Plantilla de Calendario seleccione la opcinCalendar, Alternative 1. Cree una nueva regin que se muestre arriba de la seccin del calendario y agregue un campo tipo lista de valores con ejecucin en donde se muestren los diferentes departamentos registrados en la tabla DEPT.

7.

Ejecute la pgina, debera ver algo similar a lo que muestra la siguiente imagen.

Como puede observar en la imagen anterior, debajo de cada da del mes, aparecen las descripciones de cada registro de la tabla MEET que correspondan con cada da especfico y el departamento seleccionado, de acuerdo con la consulta SQL que se proporcion. Si selecciona diferentes departamentos ver como cambia el contenido del calendario. Ahora bien, hagamos este ejercicio un poco ms interesante, convirtamos cada descripcin mostrada en el calendario, en un enlace que nos dirija a un reporte en donde se muestra todo el registro que aparece en el calendario.
1. Cree una nueva pgina tipo reporte que muestre los registros seleccionados de acuerdo con el siguiente cdigo SQL: select MEETID, DESCRIPTION, MDATE, DEPTNO from MEET where deptno = 2. 9_DEPTNO and meetid = 9_MEETID (Sin incluir las comillas)

Cree los siguientes tres campos ocultos P9_DEPTNO,P9_MEETID, P9_DNAME (recuerde cambiar el nmero de pgina por el que corresponda con la suya, tanto en este punto como en el anterior).

3.

Regrese a la pgina del calendario y haga clic en el enlaceCalendario de la seccin Regiones y en la seccin Enlace de columna realice los cambios necesarios para que luzca similar a la imagen mostrada abajo.

4.

En

el

campo Destino

de

URL,

debe

ingresar

el

siguiente

cdigo: f?p=&FLOW_ID.:9:&SESSION.::&DEBUG.::P9_DEPTNO,P9_MEETID:#DEPT NO#,#MEETID# (Nuevamente recuerde cambiar el nmero de pgina en este caso 9, por el correspondiente a su aplicacin TODOS los nmero 9 que aparezcan). 5. Aplique los cambios y ejecute nuevamente su pgina. Debera ver una imagen similar a la siguiente.

Como puede ver, el color de las anotaciones cambio, y si mueve el cursor del ratn sobre alguna de ellas, ver que ahora es un enlace, haga clic en cualquiera de ellos y le deber aparecer la pgina del reporte creado, mostrando el registro correspondiente. Espero que les sea de mucha utilidad. Les recuerdo que pueden ver este ejemplo funcionando en mi aplicacin de ejemplo en OTN.

Validacin javascript

de

campos

utilizando

patrones

Una de las cosas ms importantes que debe cuidar todo buen desarrollador, es vigilar los ms posible, la calidad de los datos que se incluyen en un sistema. Bajo este precepto, es importante el realizar tareas de verificacin de datos antes de que estos sean guardados en las tablas. Por este motivo, en esta ocasin quisiera presentarles el uso de patrones de expresiones regulares javascript, para realizar algunas de estas tareas de verificacin. Un patrn o expresin regular es, bsicamente, una cadena de caracteres simples y especiales que utilizamos para definir el contenido de una constante o una variable, y por ende, de un campo de datos. Para aquellos de ustedes que deseen aprender ms acerca de los patrones o expresiones regulares, los invito a realizar una bsqueda en Internet, donde pueden encontrar muy buen material al respecto. Para utilizar estos patrones o expresiones regulares para validar los datos ingresados en nuestras formas de Oracle Apex, el procedimiento es el siguiente:
1. 2. Ingrese a la pgina de propiedades del campo al que desee agregar la validacin. Dirijase a la seccin Elemento.

3.

En

el

campo Atributos

de

Elemento =

de

Pantalla /patron/;if

HTML ingrese

el

siguiente

cdigo: onChange=javascript:patronRe

(!patronRe.test(this.value))

{alert(Mensaje de error);} else {html_GetElement(P99_SIGUIENTE).focus();} 4. Haga clic en el botn Aplicar cambios

El resultado de un dato errneamente introducido sera algo similar a lo que se muestra en la siguiente ilustracin.

Algunas consideraciones a tomar en cuenta:

Reemplace en el cdigo de arriba, la cadena patron, por el patrn correspondiente al dato a verificar.

Reemplace Mensaje de error, por el mensaje que desea que aparezca mostrado en la ventana de alerta, cuando el dato ingresado no se adeca al patrn proporcionado.

La cadena del patrn debe ser ingresada consecutivamente, no debe incluir saltos de lnea, pues esto provocara un error en la funcin de validacin.

Finalmente, les dejo tres ejemplos de patrones muy tiles y que pueden utilizar en sus formas.
Patrn para permitir solo el ingreso de letras (maysculas y minsculas) y espacios en

blanco, para una cadena que debe tener al menos 10 caracteres de largo.

/[a-zA-Z\s]{10,}/
Patrn para verificar un nmero telefnico, el cual debe inicial con un 2 o un 8 y que debe incluir don grupos de nmeros de 4 dgitos cada uno, separados por un espacio en blanco o un guin.

/^(2|8)\d{3}(-| )\d{4}/
Patrn para verificar una direccin de correo electrnico. Verifica que los dominios esten contenidos en uno de los siguientes: com, net, org, edu, int, mil, gov, arpa, biz, aero, name, coop, info, pro, museum

/^\w+([\.-]?\w+)*@\w+([\.]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|i nfo|pro|museum))$/ Solo me resta invitarlos a ver un ejemplo implementado en mi espacio de trabajo en OTN.

Con cul registro estoy trabajando?


En muchas ocasiones dentro de una misma pgina tenemos una estructura padre/hijo, donde los resultados de un reporte dependen del registro seleccionado en la regin padre, el problema que se da, es que si no queremos mostrar en la regin hijo, los datos del padre seleccionado, no sabemos entonces a que padre corresponden los registros de la regin hijo. Para evitar esto, y saber a que registro padre corresponden los registros en la regin del hijo, les propongo esta fcil solucin: 1. Cree una pgina de tipo Informe con el cdigo de consulta que desee o necesite, y como CASE WHEN <img ELSE null END AS Seleccionado deptno = 10_DEPTNO then src=#IMAGE_PREFIX#check.gif> ltima columna de la consulta, agregue el siguiente cdigo:

2. Cree un elemento oculto llamado P99_FILTRO 3. Haga clic en el enlace Informe de la regin del reporte anterior 4. Haga clic en el icono Editar del campo de llave primaria del reporte creado 5. En la seccin Enlace de columna => En el campo Texto de enlace escriba:

<img src=#IMAGE_PREFIX#calmag.gif alt=Consultar title=Consultar> => En la lnea Elemento 1 ingrese el siguiente par de valores:P99_FILTRO, #FILTRO#

=> Haga clic en el botn Aplicar Cambios 6. Ahora cree una nueva regin de tipo Informe con el cdigo de la consulta Hijo y agrguele al final la opcin de filtro: where filtro = 99_FILTRO

Eso es todo, solo le queda ejecutar la pgina y hacer clic en cualquiera de los iconos de la columna empleados y ver que sucede. Recuerde que para hacer su propia pgina puede utilizar los cdigos de consulta propios, as como las variables que necesite, solamente debe cambiar las proporcionadas en este ejemplo. Tambin puede utilizar las imagenes que usted desee, en caso de que las utilizadas en este ejemplo no sean de su agrado. Puede ver una versin de este ejemplo funcionando en mi espacio de trabajo en OTN

Definiendo el tamao de las regiones


Una de las caractersticas importantes de una aplicacin es su apariencia. No es lo mismo, por ejemplo, un reporte que sigue y sigue hacia la derecha, ms all de lo que la pantalla del computador puede mostrar, o bien, que se extienda indefinidamente hacia abajo de la pgina. Para evitar esto, y hacer la aplicacin ms atractiva para el usuario final, podemos utiilzar las caractersticas de los archivos de estilos (css), de esta manera, podemos definir el tamao de cada regin que tenemos en nuestra pgina, de manera que podamos acomodar cada una de ellas para rellenar de la mejor manera el espacio con que contamos en pantalla, de acuerdo a una resolucin especfica. Utilice el siguiente indicativo para definir y aplicar los tamaos a cada regin en sus pginas:
1. En la cabecera html de la pgina indicada (la pgina que desea formatear), incluya el siguiente cdigo:

<style> .RegionScroll_tree { width:200px; height:345px;

overflow:auto; border:solid 0px; } .RegionScroll_report { width:665px; height:320px; overflow:auto; border:solid 0px; } </style>
En el cdigo anterior estamos definiendo dos tipos de regin, una de tipo

reporte (RegionScroll_report) con un ancho de 665 pxeles y 320 pxeles de altura, que en caso de que el reporte se extienda ms all de estos bordes, agregar barras de deslizamiento en donde sea necesario; laterales para subir y bajar por el reporte, o inferior, para moverse a izquierda o derecha. Adems se le indica no agergar un borde a la regin. La otra definicin es para utilizar en una regin de tipo rbol de 200 x 345 pxeles (RegionScroll_tree).
2. En el campo Cabecera de Regin de la regin debe agregar el siguiente cdigo:

<div class="RegionScroll_report">
3. Finalmente, en el campo Pie de pgina de Regin, de la regin indicada, agregue:

</div>
Y eso es todo. Pero para quienes no han comprendido como funciona, les explico cada una de las lneas de definicin de estilo:

Define el ancho de la regin en 200 pxeles Define la altura de la regin en 345 pxeles Indica que se debe agregar las barras de deslizamiento de manera overflow:auto; automtica, en caso de que sean necesarias Indica dibujar un borde slido a la regin de 0 pxeles (no se dibuja border:solid un borde) 0px width:200px; height:345px;
Pueden agregar otras caractersticas a la regin y modificar las anteriores de acuerdo a sus deseos y necesidades (necesitan dar una revisin a algn tutorial de CSS.

Cmo agregar un logo a una aplicacin Apex?

En muchas ocasiones, el uso de un logo que identifique a la empresa, es importante como uno de los elementos de nuestras aplicaciones, por tal motivo, a continuacin les dejo la manera de incluir estos logos en nuestras aplicaciones. Solo siga los siguientes pasos:
1. 1. 2. 3. 4. 5. 6. 7. Importe la imagen del logo a utilizar: Ingrese a la aplicacin donde desea incluir el logo. Haga clic en el botn Componentes compartidos. En la seccin de Archivos, haga clic en el enlaceImgenes. Haga clic en el botn Crear. Haga clic en el botn Examinar del campo Cargar Nueva Imagen Seleccione el archivo que va a utilizar como logotipo de la aplicacin. Haga clic en el botn Cargar. Una vez cargada la imagen del logotipo, en la pgina de componentes compartidos, haga clic en el enlace Definicin. En la seccin Logotipo de la pgina mostrada, en el campoLogotipo escriba lo siguiente:#WORKSPACE_IMAGES#logo.jpg, donde logo.jpg es el nombre de la imagen cargada en el punto anterior. Haga clic en el botn Aplicar Cambios.

Y eso es todo, ahora al ejecutar su aplicacin, le ser mostrada la imagen del logotipo en la parte superior izquierda de cada una de las pginas de su aplicacin.

Cmo mostrar u ocultar campos en una forma de mantenimiento?


Cuando creamos una pgina de mantenimiento utilizando el ayudante de Apex, normalmente tenemos muy poco control sobre la funcionalidad de la misma. Muchas veces queremos permitir el ingreso o no de ciertos campos en la tabla, dependiendo del valor de algn campo, por ejemplo, cuando estamos hablando de procesar alguna solicitud, si por ejemplo esta es rechazada quisiramos que se incluya el motivo por el cual se rechaz, campo que no debera ser incluido si es aceptada. Para ocultar o mostrar campos en una forma de mantenimiento, se debe utilizar javascript; solo utilice el siguiente procedimiento: En la cabecera de la pgina, se debe agregar el siguiente cdigo:

<script> function Show_On_Radio_Value(pThis, pThat, pValue){ var rv = html_RadioValue(pThis); if (rv == pValue) { $x_ShowItemRow(pThat); } else { $x_HideItemRow(pThat); } } </script>
Luego, en el pie de pgina de la regin que contiene los campos a mostrar/ocultar, se debe agregar lo siguiente:

<script language="JavaScript" type="text/javascript"> Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO1','S'); Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO2','S'); </script>


donde: P4_CAMPOX es el campo tipo radio que controla de acuerdo a su valor si los campos se muestran P4_CAMPO1 y P4_CAMPO2 son los o campos a mostrar u no. ocultar

S es el valor de P4_CAMPOX con el cual se muestran los campos anteriores. En en campo P4_CAMPOX, en la propiedad Atributos de Elemento de Pantalla HTML, se incluye lo siguiente:

onchange="Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO1','S'); Show_On_Radio_Value('P4_CAMPOX','P4_CAMPO2','S');"
Los campos a mostrar/ocultar deben ser del tipo Opcional Label y en la seccin de Plantillas, se debe modificar la plantilla de Etiqueta Opcional Label, en la propiedad Definicin Antes de Etiqueta, se debe cambiar el cdigo por el siguiente:

en el cdigo <span class=t6OptionalLabel, se debe conservar el nmero existente despus de =t el cual corresponde a la plantilla utilizada, esto es, si est usando la plantilla 10, debe cambiar el 6 por el 10.

Y eso es todo. Espero que les sea de utilidad. Como siempre, pueden ver un ejemplo funcionando en la siguiente direccin de OTN

Cmo manejar llaves primarias de ms de dos columnas con Oracle Apex


Una de las limitantes con las que cuenta Oracle Application Express, es que no puede manejar llaves primarias de ms de dos columnas, esto nos pone ante un dilema, sobre todo cuando enfrentamos un proceso de traslado de sistemas o aplicaciones existentes, por ejemplo, aplicaciones desarrolladas con Oracle Forms, las cuales contienen tablas con llaves primarias compuestas por ms de dos columnas. Ante esta disyuntiva, una de las alternativas que tenemos, es el rediseo de las tablas de manera que: 1. Se cree una nueva columna de llave primaria, la cual poblemos por medio de una secuencia. 2. Crear una llave nica para la tabla, formada por las columnas que antes conformaban la llave primaria. El escenario anterior es el ideal, sin embargo, esto no siempre es posible, sino que ms bien es lo que podremos hacer las menos de las veces. Entonces, nos queda buscar otra solucin que nos permita conservar nuestras tablas tal cual estn definidas. Luego de investigar por un buen rato en Internet, me encontr con este cdigo escrito por David Njoku en la siguiente direccin:http://dancingwithapex.blogspot.com/2008/12/tables-with-multiple-primarykeys-or.html Bsicamente, este cdigo selecciona las tablas con llaves primarias de ms de dos columnas y crea una vista con una nueva columna que contiene las columnas de la llave primaria concatenadas y las utiliza como nueva llave primaria. Tambin crea un disparador que controla los procesos de inclusin, borrado y modificacin de registros en las tablas. Hay algunas consideraciones a tener en cuenta para poder utilizar este cdigo, en mi caso, le agregu todos los | que no aparecen en el cdigo original, adems, le agregu una condicin ms a la sentencia select de la primer sentencia for del procedimiento, para que se ejecute para un esquema especfico.

Tambin debe tener en cuenta que si ejecuta el cdigo en un usuario especfico, este usuario debe tener los privilegios necesarios, sobre los objetos utilizados. Una vez ejecutado el cdigo, tendr una nueva vista por cada tabla que tenga llaves primarias compuestas por ms de dos columnas. Estas vistas son las que tiene que utilizar para realizar las formas de mantenimiento y los reportes en Apex. Puede obtener el cdigo para generar las vistas de las tablas desde el siguiente enlace. Ahora pues, baje el cdigo, ejectelo y dispngase a desarrollar sus nuevas aplicaciones con Oracle Apex.

Qu usuario est conectado a mi aplicacin Apex?


En muchas ocaciones, en las tablas que utilizamos para almacenar datos, debemos guardar el usuario que realiz una tarea especfica, tal como, incluir un nuevo registro, o modificar alguno de los datos existentes. Tradicionalmente, estamos acostumbrados a utilizar el valor de la variable Oracle USER, sin embargo, si hacemos uso de esta variable en una aplicacin Apex, siempre vamos a registrar el mismo valor, sin importar cual usuario estemos utilizando, este valor esAPEX_PUBLIC_USER. Ahora bien, cuando definimos estructuras y cdigo, no lo hacemos pensando solo en utilizarlos dentro de Apex, podemos tambin querer usarlos por ejemplo en sqlplus, Forms, funciones, procedimientos, paquetes, o cualquier otro lugar, por lo que tambin podemos necesitar el valor de la variable USER. Para definir una sentencia que siempre nos funcione y guarde el usuario correcto, debemos utilizar el siguiente cdigo:
nvl(htmldb_application.g_user,user)

Con lo anterior, nos aseguramos de que si estamos realizando una tarea dentro de Apex, vamos a registrar el valor de la variable global htmldb_application.g_user, y si estamos utilizando el cdigo fuera de Apex, entonces registraremos en valor de la variable USER.

Espero que este tip, les sea de utilidad.

Haciendo Oracle XE ubicaciones remotas

disponible

desde

Cuando se instala la base de datos Oracle XE, normalmente, solo est disponible en la computadora en la que realizamos la instalacin. Sin embargo, no queremos una base de datos para poder accesarla de manera local nicamente, es importante poder acceder a ella desde otras computadoras en nuestra red particular (privada), o bien, desde Internet. En esta oportunidad, les traigo dos mtodos para lograr esto. El primero de ellos se puede ejecutar solamente despus de finalizar la instalacin de la base de datos Oracle XE, y antes de realizar cualquier actualizacin de la herramienta Apex de Oracle. Este primer procedimiento lo puede ejecutar nicamente en la computadora en la que realiz la instalacin, de manera grfica y con la ayuda de un navegador, y es el que detallo a continuacin:
1. 1. Inicie la base de datos Oracle XE: En Windows, haga clic en el botn Inicio, luego en Base de Datos Oracle 10g Express Edition, finalmente enIniciar base de datos. 2. En Linux, haga clic en el botn Aplicaciones, Base de Datos Oracle 10g Express Edition e Iniciar base de datos. Vaya a la pgina inicial de la base de datos Oracle XE: 0. Windows: Inicio, Base de Datos Oracle 10g Express Edition, Ir a Pgina Inicial de Base de Datos. 1. Linux: Aplicaciones, Base de Datos Oracle 10g Express Edition, Ir a Pgina Inicial de Base de Datos. En la pgina de Ingreso de la base de datos Oracle XE, ingrese el usuario SYSTEM, la contrasea definida al momento de la instalacin y finalmente haga clic en el botn Conectar. Al ingresar a la pgina de la base de datos Oracle XE, haga clic en el enlace Administracin

Bajo Tareas, haga clic en el enlace Administrar Acceso HTTP. Seleccione la opcin: Disponible en servidor local y desde clientes remotos. Haga clic en el botn Aplicar cambios.

El segundo mtodo es utilizando la lnea de comandos de SQL, de acuerdo al siguiente procedimiento, el cual aplica tanto para bases de datos recin instaladas, como para aquellas en las que ya se hizo una actualizacin de Apex.
1. Inicie SQL*Plus y conctese como SYSTEM:

$ sqlplus system Ingrese contrasea: Contrasea_SYSTEM


2. En el indicador SQL, ingrese la siguiente instruccin:

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); Nota de seguridad:

Con el acceso remoto por HTTP a la base de datos Oracle XE, toda la informacin intercambiada entre el navegador y la base de datos es en texto simple o sea, desencriptado incluyendo usuarios de base de datos y sus correspondientes contraseas. Si esto es causa de preocupacin, NO HABILITE la conexin de acceso HTTP remoto a la base da datos. Tags: Oracle XE

Funciones de Navegacin: Creando listas de valores


Una de las mejores caractersticas de Apex, es la facilidad con que se pueden realizar las tareas. Para ello, Apex nos presenta una serie de caractersticas predefinidas que son de mucha utilidad y de muy sencillo uso. Una de estas caractersticas, son las listas de valores, las cuales podemos utilizar tanto en las formas como en los reportes, ya sea para mostrar la descripcin de un valor especfico en un reporte, o bien, para seleccionar este valor a partir de una descripcin comprensible en una forma de mantenimiento.

Las listas de valores que podemos definir y utilizar con Apex, son de dos tipos, estticas y dinmicas. Las listas de valores estticas, son utilizadas para definir una lista descriptiva para un dominio especificado para una columna de tabla, como por ejemplo, para una columna que nos indica si un registro est activo o no, y que puede tener dos valores especficos (digamos S y N). Las listas de valores dinmicas, son obtenidas a partir de una consulta SQL que se hace a una tabla y normalmente se utilizan para definir o mostrar los valores de las llaves forneas para una tabla especfica. A continuacin se detalla el procedimiento para crear cada uno de estos tipos de listas de valores.
1. Una vez ingresado a su aplicacin, haga clic en el botnComponentes Compartidos, tal y como se muestra en la siguiente imagen.

2.

Al ingresar en la pgina siguiente, busque a la derecha el enlace Listas de Valores y haga clic sobre este. (Observe la imagen).

3.

A continuacin, haga clic en el botn Crear >.

4.

Ahora, haga clic en el botn Siguiente >, para crear una nueva lista de valores.

5. 1.

Para crear una lista de valores de tipo esttica: Escriba el nombre de la lista de valores y haga clic en el botnSiguiente >.

2.

Escriba en la columna de la izquierda la descripcin que se mostrar en la lista, y en la columna de la derecha el cdigo o valor correspondiente.

3.

Finalmente haga clic en el botn Crear Lista de Valoresque se muestra en la imagen anterior. Para crear una lista de valores dinmica:

0.

Escriba el nombre de la lista a crear, luego haga clic en el botn de radio Dinmico, para finalmente hacer clic en el botn Siguiente >.

1.

Ingrese la consulta SQL que devolver la lista de valores a partir de una (o varias) tabla, incluyendo como primer columna el valor que se visualizar y como segunda el valor que se retorna y guarda en el campo.

2.

Finalmente haga clic en el botn Crear Lista de Valores.

Una vez creada una lista, en la pgina aparecer un icono con el nombre de dicha lista, tal como lo muestra la imagen siguiente.

Ahora que est creada la lista de valores, lo nico que resta por hacer, es utilizarla, pero eso es tema de otro post.

Informes: Nmero variable de lneas a mostrar


Existen dentro de las secciones de cada pgina de la herramienta Apex, campos que la mayora de las veces no utilizamos, y que en muchos de ellos, ni siquiera nos imaginamos para que sirven o cul es su funcin. En esta ocasin les voy a escribir acerca de uno de estos campos, el cual podemos utilizar para definir de manera interactiva, el nmero de lneas que se muestran en un informe. Para definir un reporte con el nmero de lneas a mostrar definidas interactivamente:
1. 2. 3. Cree una nueva pgina de tipo Informe y defina el reporte que desea utilizar Al terminar de definir el reporte, cree en la misma pgina, una nueva regin de tipo HTML Cree un nuevo elemento en la regin que acaba de crear, puede llamarlo P_FILAS con las siguientes caractersticas:

1. 2.

Tipo: Lista de Seleccin con Ejecucin Defina en el campo una lista de valores esttica, con los valores que desea proporcionar al usuario como los posibles nmeros de lneas a mostrar en el reporte Cree una bifurcacin incondicional a la pgina del reporte que est creando Haga clic en el enlace Informe al lado de la regin del Informe que se cre Dirjase a la seccin Diseo y Paginacin y en el campo Nmero de Filas (Elemento), haga una de las siguientes acciones:

0. 1.

Escriba el nombre del campo creado (P_FILAS), o bien, Haga clic en la pequea linterna a la derecha y seleccione el nombre del campo que define el nmero de lneas (P_FILAS) Haga clic en el botn Aplicar Cambios

Eso es todo, ahora lo nico que le queda por realizar, es ejecutar su nuevo informe y ver lo que sucede cuando selecciona un nmero diferente de lneas en el campo que definimos para tal efecto. Si desea ver como funciona este ejemplo, lo puede hacer en mi espacio de trabajo de OTN, haciendo clic aqu.

Manejo de imgenes en una aplicacin Apex Parte 1: Cargando las imgenes


Una de las grandes facilidades que nos proporciona Oracle Apex, es el poder utilizar de manera sencilla, imgenes que nos ayuden a hacer nuestras aplicaciones ms atractivas. En esta ocasin voy a iniciar con una serie de dos publicaciones en las que explico cmo cargar las imgenes que necesitamos utilizar en nuestras aplicaciones y en una segunda entrega, explicar cmo hacer uso de estas imgenes. Partiendo del hecho de que ya sabemos como crear una aplicacin si no es as los invito a revisar las publicaciones anteriores una vez estemos en la pgina principal de nuestra aplicacin:
1. Haga clic en el botn Componentes Compartidos.

2.

En la pgina de Componentes Compartidos, dirjase a la seccin Archivos y haga clic en el enlace Imgenes.

3. 4.

Una vez adentro, haga clic en el botn

Cuando la pgina de carga de imgenes aparezca (ver imagen abajo), haga clic en el botn , navegue por su dispositivo de almacenamiento hasta la imagen

deseada y seleccinela.

5.

Para completar la carga de la imagen, haga clic en el botn

Repita los pasos 3 al 5 del procedimiento anterior, para cada imagen que desee cargar a su aplicacin. Como pueden ver, es un proceso muy sencillo de efectuar, e igualmente de sencillo es utilizar en nuestras aplicaciones estas imgenes que cargamos. En breve, en mi prxima publicacin, les estar explicando como utilizar estas imgenes dentro de nuestras aplicaciones. Estn atentos.

Manejo de imgenes en una aplicacin Apex Parte 2: Utilizando las imgenes


En la publicacin anterior, expliqu cmo cargar imgenes a nuestros espacios de trabajo, ya sea que las definamos como parte de una aplicacin especfica en ese

espacio de trabajo, o bien, que no especifiquemos la imagen como parte de una aplicacin. El utilizar estas imgenes en nuestras aplicaciones es muy sencillo, lo nico que debemos hacer es utilizar el tag html <IMG>, el truco est en la manera en que hacemos referencia a la imagen dentro de este tag. Existen dos cadenas de substitucin que vamos a utilizar para poder referenciar estas imgenes, estas cadenas son:WORKSPACE_IMAGES y APP_IMAGES. Pero cul de estas cadenas debemos utilizar? y En qu situaciones usamos cada una de ellas? La respuesta es muy sencilla:

WORKSPACE_IMAGES Utilizamos esta cadena para hacer referencia a las imgenes que definimos como de uso general del espacio de trabajo, esto es, todas aquellas imgenes que al momento de crearlas, no las definimos como parte de una aplicacin especfica. Usamos esta cadena de substitucin, para referenciar APP_IMAGES imgenes que creamos como parte de una aplicacin especfica.
Con todo lo anterior dicho, vamos a suponer que creamos en nuestro espacio de trabajo dos imgenes, una llamada foto.png, la cual no definimos como parte de una aplicacin; y una segunda imagen llamada photo.png, la que definimos que pertenece a la aplicacin 110, por ejemplo. En el caso de la primer imagen: foto.png, la podemos utilizar tanto en la aplicacin 110, como en cualquier otra aplicacin que tengamos definida en nuestro espacio de trabajo, y lo hacemos de la siguiente manera: <img src=#WORKSPACE_IMAGES#foto.png> Ahora bien, segunda imagen: photo.png, la vamos a poder referenciar solamente en la aplicacin 110, y lo hacemos en la forma: <img src=#APP_IMAGES#foto.png> Bsicamente, lo que hacemos al usar estas cadenas de substitucin, es evitarnos el tener que utilizar todo el camino a donde se encuentran las imgenes, al ejecutar nuestras aplicaciones Apex, estas cadenas son substituidas por el correspondiente camino, as que no debemos preocuparnos por esto.

Espero que les sea de utilidad y que regresen pronto para nuevos tips, noticias y artculos acerca de Oracle Apex.

Componentes Compartidos: Introduccin


Gracias por estar de vuelta. En esta ocasin, voy a iniciar una serie de publicaciones acerca de una de las caractersticas ms importantes de Oracle Apex, loscomponentes compartidos. Los componentes compartidos, nos permiten definir ciertos tipos de elementos, los cuales podemos utilizar en cualquiera de las pginas que componen una aplicacin. Para ingresar a los componentes compartidos, debemos hacer clic sobre el

botn Componentes compartidos, en la pgina principal de la aplicacin.

Una vez seleccionada la pgina de Componentes Compartidos, vamos a poder observar 8 grupos diferentes de componentes que podemos definir, los cuales se explican brevemente a continuacin.

El primer grupo de componentes es el de Aplicacin, y nos permiten definir los conceptos generales de la aplicacin, as como agregar cualquier comentario que consideremos pertinente.

Luego tenemos el grupo de Lgica, en donde podemos definir todos los aspectos lgicos de la aplicacin, tales como elementos, procesos y clculos a nivel de aplicacin, y referencias a servicios web entre otros.

Como tercer grupo de componentes compartidos, vamos a encontrar los componentes de Seguridad relacionados con la aplicacin. Que esquemas de autenticacin? Cules esquemas de autorizacin? etctera.

A continuacin tenemos el cuarto grupo de componentes, el deGlobalizacin, el cual tiene que ver con la parte de internacionalizacin de la aplicacin. El generado de los archivos de traduccin, idioma principal de la aplicacin y alguna otra informacin ms.

El quinto grupo de componentes corresponde a los deNavegacin, donde tenemos la posibilidad de crear diferentesestructuras que nos van a servir como ayuda en la manera en que se navegar en nuestra aplicacin.

Seguidamente, nos vamos a encontrar con el sexto grupo de componentes, los de Interfaz de Usuario, los cuales tienen que ver con todos los elementos que definen la apariencia de la aplicacin, asuntos tan variados como temas, plantillas, etctera.

Como sptimo grupo de componentes compartidos tenemos losInformes, los cuales son documentos imprimibles que podemos utilizar en la aplicacin y llamarlos desde un enlace o un botn, por ejemplo.

El ltimo grupo de elementos corresponde al de Archivos, en el cual podemos definir y cargar al espacio de trabajo de la aplicacin: imgenes, archivos de estilo en cascada o cualquier otro tipo de archivo esttico que necesitemos utilizar en nuestra aplicacin. La anterior es apenas una pequea explicacin de cada uno de los diferentes grupos de componentes compartidos con que contamos en Oracle Apex. En las siguientes entregas, me voy a estar refiriendo de manera ms extensa a cada uno de estos grupos, de manera que los puedan conocer a mayor profundidad, se familiaricen con ellos y los puedan usar en sus aplicaciones. En breve voy a estar publicando informacin sobre el primero de ellos: Aplicacin. As que por favor estn atentos.

Crear informe con imagen almacenada en una tabla


Me han consultado como mostrar en un informe, una imagen almacenada en una tabla de la base de datos. Esto es en realidad muy sencillo, e involucra el uso de la funcin dbms_lob.getlength(). El procedimiento a seguir es el siguiente:
1. 2. Cree una nueva pgina en su aplicacin de tipo Informe Incluya una consulta SQL similar a la siguiente:

SELECT "PRODUCT_ID" "PRODUCT_ID", "PRODUCT_NAME" "PRODUCT_NAME", "PRODUCT_DESCRIPTION" "PRODUCT_DESCRIPTION", "LIST_PRICE" "LIST_PRICE", dbms_lob.getlength("PRODUCT_IMAGE") "PRODUCT_IMAGE" FROM "DEMO_PRODUCT_INFO"
Observe la inclusin de la funcin dbms_lob.getlength()
3. 4. Complete el informe Haga clic en el enlace Informe en la seccin de regiones

5.

Ahora haga clic en el icono de edicin de la columna correspondiente a la imagen

6.

En la seccin de Formato de Columna, en el campo Formato Numrico/Fecha agregue el siguiente texto:

IMAGE:DEMO_PRODUCT_INFO:PRODUCT_IMAGE:PRODUCT_ID::::::inline:Descargar

en donde:
1. 2. 3. DEMO_PRODUCT_INFO, es el nombre de la tabla del reporte, PRODUCT_IMAGE, es el nombre de la columna BLOB que contiene la imagen a mostrar, PRODUCT_ID, es el nombre de la columna llave de la tabla. Finalmente haga clic en el botn

Eso es todo, si ejecutan la nueva pgina, deberan estar viendo en cada lnea del reporte, la correspondiente imagen en la columna indicada. Pueden observar un reporte igual al descrito en mi aplicacin de ejemplo en OTN.

Componentes Nombre

Compartidos

II:

Aplicacin

En una entrega anterior, se toc de forma breve y general cada uno de los elementos que componen los Componentes Compartidos de una aplicacin Apex. A partir de este momento, voy a tratar en detalle el primero de ellos: Aplicacin. Para luego ir explicando cada uno de los restantes componentes de los Componentes Compartidos. Dentro de este elemento tenemos dos divisiones principales:
1. 2. Definicin Comentarios

Definicin
La primera de estas divisiones es la de Definicin. Esta elemento se compone de nueve secciones diferentes:

Nombre Disponibiliad Notificacin global Sustituciones Logotipo Opciones de creacin Tema Valores por defecto de plantilla Valores por defecto de componente

A continuacin una explicacin de la primera de ellas.

Nombre

En esta seccin definimos los datos que identifican la aplicacin, dentro de los datos que vamos a encontrar en ella estn:

Aplicacin

Nmero de identificacin numrico (identificador) que identifica la aplicacin. Cada aplicacin se identifica de forma nica mediante un identificador. Proporciona una abreviatura descriptiva para la aplicacin para distinguirla de otras aplicaciones en el entorno de desarrollo. Asigna un identificador de aplicacin alfanumrico alternativo. Puede utilizar este identificador en lugar del identificador de aplicacin. Incluye el nmero de versin de la aplicacin en una pgina. Tambin puede unir automticamente la versin a la fecha de la ltima modificacin utilizando las siguientes mscaras de formato:

Nombre

Alias

Versin

* YYYY.MM.DD * MM.DD.YYYY * DD.MM.YYYY Si la versin de la aplicacin utiliza YYYY.MM.DD, Application Express sustituye esta mscara de formato por la fecha de la ltima modificacin de cualquier atributo de aplicacin.
Prefijo de Imagen Determina la ruta de acceso virtual que el servidor Web utiliza para apuntar al directorio de imgenes distribuido con Application Builder. Durante la instalacin, la ruta de acceso virtual se configura como /i/. Si no est seguro, pngase en contacto con el administrador.

Al embeber una imagen en texto esttico (por ejemplo, en cabeceras o pies de pgina de regin o pgina), puede hacer referencia a la imagen con la cadena de sustitucin /i/. Por ejemplo, para hacer referencia a la imagen go.gif, debe utilizar la sintaxis siguiente: <img src=/i/go.gif>
Tipo de Introduzca el tipo de medio fsico de Internet. Un tipo de medio fsico de Medio Fsico Internet es un identificador de dos partes para los formatos de archivo de Internet. Un tipo de medio fsico est compuesto al menos por dos partes: un tipo y un subtipo, y uno o ms parmetros opcionales. Este tipo de medio fsico se utiliza en la cabecera HTTP Content-Type al presentar la pgina.

Si los valores de page-level y application-level para el tipo de medio fsico son NULL, se utiliza text o html.
Servidor Proxy Utilice este campo para especificar un servidor Proxy.

Por ejemplo, Application Builder puede necesitar un servidor Proxy cuando se utilice un tipo de origen de regin de direccin URL. El origen de regin de direccin URL embebe el resultado de la direccin URL (es decir, la pgina que se devuelve al navegar a la direccin URL) como el origen de regin. Si utiliza un firewall y el destino de

una direccin URL esta fuera del firewall relativo a Application Builder, puede que necesite especificar un servidor Proxy. Puede hacer referencia a los valores introducidos en este campo desde PL/SQL con la variable de paquete PL/SQL APEX_APPLICATION.G_PROXY_SERVER. Por ejemplo: www-proxy.us.oracle.com
Registro Determina si la actividad del usuario se registra en el log de actividades. Si se define en S, se registran todas las vistas de pgina, permitiendo que un administrador controle la actividad del usuario para cada aplicacin.

La desactivacin del registro puede ser aconsejable para aplicaciones de grandes volmenes.
Depuracin Determina si el modo de depuracin est activado. Las opciones disponibles incluyen:

* S: Permite a la aplicacin ejecutarse en modo de depuracin. * No: Impide que la aplicacin se ejecute en modo de depuracin. La ejecucin de una aplicacin en modo de depuracin es til si est en desarrollo. Sin embargo, para una aplicacin de produccin, es aconsejable desactivar la depuracin para evitar as que los usuarios visualicen la lgica de la aplicacin.
Esquema de Especifica el esquema con el que se analizarn todos los SQL y PL/SQL de la aplicacin. Puede utilizar la cadena de sustitucin #OWNER# para hacer Anlisis referencia a este valor en consultas SQL y en PL/SQL (por ejemplo, en una regin o en un proceso). Sustituciones Determina si estn soportadas las sustituciones exactas. Utilice sustituciones Exactas exactas. Las sustituciones no exactas es una funcin anticuada.

Las sustituciones exactas utilizan la sintaxis: &ITEM. Las sustituciones no exactas utilizan la sintaxis: &ITEM
Grupo de Para uso futuro Aplicaciones

Estn atentos, hasta donde el tiempo me lo permita voy a tratar de publicar diariamente hasta concluir este tema.

Componentes Compartidos Disponibilidad

II:

Aplicacin

Hasta el momento, de esta serie de publicaciones acerca de los elementos que forman parte de los Componentes Compartidos, he tocado los siguientes temas:

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre

Continuando con esta serie, le toca el turno al siguiente elemento:

Disponibilidad

En esta seccin definimos el estado de disponibilidad de la aplicacin; esto es, si est disponible para utilizar o no y para quien o quienes est disponible. Est compuesta por los siguientes campos:

Estado

Especifica si la aplicacin est disponible para su uso. Las opciones incluyen:

* Disponible: La aplicacin est disponible sin restriccin. * Disponible con Enlaces de Edicin: La aplicacin est disponible para su uso. Para los desarrolladores, la barra de herramientas del desarrollador aparece en la parte inferior de cada pgina. Es necesario que el desarrollador est conectado a Application Builder en la misma sesin del explorador. * Disponible Slo para Desarrolladores: La aplicacin est disponible para los usuarios que tienen privilegios de desarrollador.

* Acceso Restringido: La aplicacin est disponible para los desarrolladores especificados en Limitar a lista de usuarios separados por comas. * No Disponible: La aplicacin no se puede ejecutar ni editar. Aparece el mensaje de Mensaje para aplicacin no disponible cuando los usuarios intentan acceder a la aplicacin. * No Disponible (Estado Mostrado con PL/SQL): La aplicacin no se puede ejecutar ni editar. * No Disponible (Redirigir a URL): La aplicacin no se puede ejecutar. El usuario se enlaza a la direccin URL introducida en Mensaje para aplicacin no disponible.
Estado de Creacin Identifica el estado de creacin de la aplicacin actual. Las opciones incluyen:

* Slo Ejecutar Aplicacin: Los usuarios slo pueden ejecutar la aplicacin. Esta opcin est destinada a aplicaciones de una instancia de produccin. * Ejecutar y Crear Aplicacin: Los desarrolladores y usuarios pueden ejecutar y desarrollar la aplicacin.
Mensaje para aplicacin no disponible Utilice este atributo junto con el estado.

Si define el estado en No Disponible, No Disponible (Estado Mostrado con PL/SQL) o No Disponible (Redirigir a URL), se muestra el texto introducido en este atributo. Si define el estado en Disponible, no se muestra el texto introducido en este atributo.

Limitar a lista de Utilice este atributo junto con el estado Acceso Restringido. Si define usuarios separados por el estado en Acceso Restringido, slo los usuarios mostrados en este comas (el estado debe atributo pueden ejecutar la aplicacin. ser Acceso Restringido)

Para utilizar este atributo: 1. De la lista Estado, seleccione Acceso Restringido. 2. Introduzca una lista delimitada por comas de los usuarios que pueden ejecutar la aplicacin en el campo proporcionado.
Los espero en la siguiente entrega de esta serie.

Componentes Compartidos Notificacin Global

II:

Aplicacin

Hasta el momento, he presentado informacin acerca de los siguientes tpicos acerca de los Componentes Compartidos de una aplicacin Apex:

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad

Es el momento del siguiente de ellos:

Notificacin Global

En esta seccin se define el mensaje que se utiliza par sustitur la cadena #GLOBAL_NOTIFICATION#, para ello se utiliza el siguiente campo:

Introduzca el mensaje que desea que aparezca en la cadena de sustitucin #GLOBAL_NOTIFICATION# de la pgina.

Puede utilizar una notificacin global para comunicar el estado del sistema. Si la plantilla de pgina contiene una cadena de sustitucin #GLOBAL_NOTIFICATION#, el texto que se introduzca aqu se muestra en cada pgina. Por ejemplo, suponga que ha introducido el mensaje Merienda campera del equipo este viernes en este atributo. Si las plantillas de pgina soportan la cadena de sustitucin de notificacin global, este mensaje aparecera en cada pgina.

En la siguiente entrega les escribir acerca de: Componentes Compartidos II: Aplicacin Sustituciones.

Componentes Sustituciones

Compartidos

II:

Aplicacin

Recapitulando en lo publicado a la fecha sobre el tema de los Componentes Compartidos de una aplicacin Apex, he escrito acerca de los siguientes temas:

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad

Componentes Compartidos II: Aplicacin Notificacin Global

Llego el momento de ver un nuevo tema:

Sustituciones

Esta seccin la usamos para definir las cadenas de sustitucin que queremos o necesitamos usar en nuestra aplicacin. Una cadena de sustitucin es una variable global que definimos y podemos utilizar en cualquier lugar en nuestra aplicacin, estas son definidas una nica vez y eso se hace aqu. Cada cadena de sustitucin est conformada por:

Cadena de Sustitucin Valor de Sustitucin

Es el nombre con que vamos a referenciar la cadena de sustitucin. Es el valor que se va a mostrar cada vez que hagamos uso de la cadena de sustitucin definida.

Utilice las sustituciones en aquellos casos en que ciertos ttulos o valores son de uso frecuente, de manera que no sea necesario definirlos en cada oportunidad, de esta manera solo debemos referenciarlos por el nombre de la cadena que definimos.

Componentes Logotipo

Compartidos

II:

Aplicacin

Recapitulando en lo publicado a la fecha sobre el tema de los Componentes Compartidos de una aplicacin Apex, he escrito acerca de los siguientes temas:

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre

Componentes Compartidos II: Aplicacin Disponibilidad Componentes Compartidos II: Aplicacin Notificacin Global Componentes Compartidos II: Aplicacin Sustituciones

Ahora el siguiente elemento:

Logotipo

Utilice atributos de logotipo para definir un logotipo de aplicacin, puede estar basado en texto o imagen. Para utilizar esta funcin, la plantilla de pgina debe incluir la cadena de sustitucin#LOGO#. Esta seccin est compuesta por:

Tipo de Logotipo

Para el tipo de logotipo, seleccione un tipo de imagen:

* Seleccione Imagen para utilizar una imagen para el logotipo de aplicacin. * Seleccione Texto para utilizar texto para el logotipo de aplicacin.
Logotipo En el logotipo, introduzca lo siguiente:

* Para una imagen, introduzca el nombre completo de la imagen, incluida la extensin de nombre de archivo, por ejemplo: /i/oracle.gif * Para un texto, introduzca la cadena de texto completa, por ejemplo: Aplicacin de Ejemplo
Atributos de En los atributos de logotipo, introduzca los atributos para el logotipo. Logotipo

Ejemplo de imagen: width=100 height=20 alt=Logotipo de Compaa

Ejemplo de texto: style=font-family:Arial; color:#000000; font-size:18; whitespace:nowrap; font-weight:bold;


En general, casi la totalidad de las plantillas predefinidas que incluye Apex, tienen definida la cadena de sustitucin #LOGO#, en la esquina superior derecha de cada pgina, pero la pueden usar en cualquier lugar donde deseen incluir el logotipo definido en este elemento.

Componentes Compartidos Opciones de Creacin


los siguientes temas:

II:

Aplicacin

Acerca de los Componentes Compartidos de una aplicacin Apex, he escrito acerca de

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad Componentes Compartidos II: Aplicacin Notificacin Global Componentes Compartidos II: Aplicacin Sustituciones Componentes Compartidos II: Aplicacin Logotipo

Hoy le toca el turno a:

Opciones de Creacin

Las opciones de creacin son valores predefinidos que determinan si un componente est activado dentro de una aplicacin. Utilice las opciones de creacin para mostrar de forma condicional la funcionalidad especfica en una aplicacin. Si existieran opciones de creacin definidas, aqu apareceran mostradas.

El tema de las opciones de creacin lo voy a tocar con mayor detalle ms adelante, en donde adems explicar como definirlas. Sigan al pendiente.

Componentes Tema
Compartidos:

Compartidos

II:

Aplicacin

Hasta la fecha, les he escrito acerca de los siguientes elementos de los Componentes

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad Componentes Compartidos II: Aplicacin Notificacin Global Componentes Compartidos II: Aplicacin Sustituciones Componentes Compartidos II: Aplicacin Logotipo Componentes Compartidos II: Aplicacin Opciones de Creacin

En esta ocasin voy a escribir del elemento:

Tema

Identifica una recopilacin de plantillas que definen el aspecto de la aplicacin. En esta seccin vamos a encontrar una lista de los diferentes temas que hemos seleccionado como posibles de utilizar en la aplicacin. Esta seccin es solamente de informacin, no se puede modificar en ella ningn dato.

Componentes Compartidos II: Valores por defecto de plantilla


continuacin la lista de ellos:

Aplicacin

Si no han tenido la oportunidad de leer las entregas anteriores de esta serie, a

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad Componentes Compartidos II: Aplicacin Notificacin Global Componentes Compartidos II: Aplicacin Sustituciones Componentes Compartidos II: Aplicacin Logotipo Componentes Compartidos II: Aplicacin Opciones de Creacin Componentes Compartidos II: Aplicacin Tema

Hoy es la oportunidad del siguiente de ellos:

Valores por Defecto de Plantilla

En esta seccin podemos observar los valores definidos para los tres principales tipos de pgina que podemos definir en nuestra aplicacin. Se definen especficamente estos datos:

Plantilla de Pgina por Defecto Plantilla de Pgina de Modo de Impresin

Plantilla de pgina por defecto para visualizar pginas. Si no selecciona de forma explcita una plantilla para cada pgina, el sistema Application Express utiliza la plantilla especificada aqu. Identifica la plantilla que se utilizar cuando el sistema Application Express est en modo Versin para Impresora. Al llamar al sistema Application Express para que presente una pgina, puede identificar un atributo de versin para impresora con los valores S y NO. Si selecciona S, se utiliza la plantilla de versin para impresora especificada aqu para mostrar la pgina.

Plantilla de Opcional. Especifica la plantilla de pgina que se utilizar para los errores que Pgina de Error aparecen en otra pgina frente a los que se muestran en lnea. Deje este atributo en blanco si no desea utilizar una plantilla diseada para mostrar errores.

Estamos cerca de terminar con el primer grupo de elementos de los Componentes Compartidos, as que los invito a seguir atentos.

Componentes Compartidos II: Aplicacin Valores por defecto de componente


de la misma:

Si es tu primera vez en esta serie, a continuacin los enlaces a las anteriores entregas

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad Componentes Compartidos II: Aplicacin Notificacin Global Componentes Compartidos II: Aplicacin Sustituciones Componentes Compartidos II: Aplicacin Logotipo Componentes Compartidos II: Aplicacin Opciones de Creacin Componentes Compartidos II: Aplicacin Tema Componentes Compartidos II: Aplicacin Valores por defecto de plantilla

Y una vez visitadas todas ellas, les invito a continuar con esta serie, que en esta oportunidad trata acerca de:

Valores por Defecto de Componente

Esta seccin, al igual que la anterior, lista las diferentes plantillas que se encuentran definidas para los posibles tipos de pginas que podemos crear en nuestra aplicacin. Se listan las siguientes plantillas:

Calendario

Plantilla de calendario por defecto que se utiliza al crear un calendario nuevo. Podr sustituir este valor por defecto. Plantilla de etiqueta por defecto utilizada al crear nuevos elementos de pgina. Podr sustituir este valor por defecto. Plantilla de informe por defecto utilizada al crear regiones de consulta SQL. Podr sustituir este valor por defecto. Plantilla de lista por defecto utilizada al crear una lista nueva. Podr sustituir este valor por defecto.

Etiqueta

Informe

Lista

Ruta de Navegacin Plantilla de informe por defecto utilizada al crear nuevas regiones de ruta de navegacin. Podr sustituir este valor por defecto. Botn Plantilla por defecto que se utilizar al crear nuevos botones controlados por plantilla. Podr sustituir este valor por defecto. Plantilla de regin por defecto que se utiliza al crear una regin nueva. Podr sustituir este valor por defecto.

Regin

Regin de Grfico Especifica la plantilla de regin por defecto utilizada al crear un grfico. Podr sustituir este valor por defecto. Regin de Pantalla Especifica la plantilla de regin por defecto utilizada al crear una pantalla. Podr sustituir este valor por defecto. Regin de Informe Especifica la plantilla de regin por defecto utilizada al crear un informe. Podr sustituir este valor por defecto. Regin de Pantalla Especifica la plantilla de regin por defecto utilizada al crear una nueva Tabular pantalla tabular. Podr sustituir este valor por defecto. Regin de Asistente Especifica la plantilla de regin por defecto utilizada al crear un nuevo componente de asistente. Podr sustituir este valor por defecto. Regin de Ruta de Especifica la plantilla de informe por defecto utilizada al crear nuevas Navegacin regiones de ruta de navegacin. Podr sustituir este valor por defecto. Regin de Lista Especifica la plantilla de lista por defecto utilizada al crear nuevas regiones de lista. Podr sustituir este valor por defecto.

En todos los casos, puede cambiar la plantilla por defecto seleccionada en la pgina Definir Tema.

Y en la prxima entraga, el ltimo de los elementos de esta primera seccin de Componentes Compartidos, los espero.

Componentes Comentarios

Compartidos

II:

Aplicacin

Y llegamos al ltimo elemento de la primera seccin de los Componentes Compartidos, pero antes de ocuparme de l, les dejo los enlaces a las entregas anteriores:

Componentes Compartidos: Introduccin Componentes Compartidos II: Aplicacin Nombre Componentes Compartidos II: Aplicacin Disponibilidad Componentes Compartidos II: Aplicacin Notificacin Global Componentes Compartidos II: Aplicacin Sustituciones Componentes Compartidos II: Aplicacin Logotipo Componentes Compartidos II: Aplicacin Opciones de Creacin Componentes Compartidos II: Aplicacin Tema Componentes Compartidos II: Aplicacin Valores por defecto de plantilla Componentes Compartidos II: Aplicacin Valores por defecto de componente

Comentarios
En esta segunda divisin, incluya cualquier comentario que considere pertinente acerca de la aplicacin. Esta es una divisin sin mucho misterio, es simplemente lo que su nombre indica. Una divisin para ingresar comentarios

Se van a encontrar aqu dos campos diferentes:

Aplicacin Este atributo identifica la aplicacin actual. Comentarios Introduzca comentarios o notas aqu. Estos comentarios no aparecen cuando se est ejecutando la aplicacin

Espero que les sea de utilidad y los espero en la siguiente entrega de esta serie tutora.

Componentes Introduccin

Compartidos

III:

Lgica

El mes anterior, inicie con una serie de publicaciones en que se trata los aspectos relacionados con los componentes compartidos de una aplicacin Oracle Apex, la primera de ellas, Componentes Compartidos: Aplicacin, puede ser accesada desde aqu. Para continuar con esta serie, voy a iniciar una nueva serie con el segundo grupo de elementos que coforman estos componentes compartidos.

Lgica
Este grupo de elementos, define o puede ser usado para definir todos aquellos elementos que son utilizados de manera reiterada y en diferentes partes de una aplicacin, de manera que no sea necesario el estar reescribiendo cdigo, o calcular constantemente valores generales. En este grupo de componentes compartidos, se encuentran las siguientes categoras:

Elementos de aplicacin Procesos de aplicacin Clculos de aplicacin Referencias de servicio web Opciones de creacin

Cada uno de ellos van a ser tratados por separado en una nueva serie de publicaciones acerca de los Componentes Compartidos de una aplicacin Oracle Apex. Preparense para conocer cada uno de los anteriores puntos en detalle, ya estn siendo escritos.

Componentes Compartidos Elementos de Aplicacin

III:

Lgica

En la entrega anterior, di inicio a esta nueva serie acerca de los componentes compartidos de una aplicacin Oracle Apex. Hoy vamos a iniciar con el primero de los elementos de la seccin de Lgica de los componentes compartidos:

Elementos de aplicacin
Los elementos de aplicacin son variables de tipo global que podemos utilizar para mantener informacin de uso generalizado en diferentes pginas de una aplicacin, algunas de sus caractersticas son:
1. 2. Se pueden utilizar para mantener el estado de la sesin. Los elementos de la aplicacin se pueden definir mediante clculos o procesos, o bien transfiriendo valores en una direccin URL. 3. Se utilizan los clculos En Nueva Instancia para definir el valor de los elementos una vez para una sesin.

4.

Elementos de aplicacin son usados para mantener el estado de la sesin que no se muestra ni es especfico de ninguna pgina.

Existen dos pestaas con informacin acerca de los diferentes elementos de aplicacin, la primera de ellas denominadaElementos de Aplicacin, en donde se muestran los diferentes elementos de aplicacin existentes.

La segunda de ellas es Historial, que muestra las modificaciones recientes realizadas en los elementos de aplicacin de la aplicacin en que est trabajando.

Cmo crear un elemento de aplicacin


Para crear un nuevo elemento de aplicacin:
1. 2. Haga clic en el botn Escriba el nombre del elemento en el campo Nombre

3.

En Seguridad defina el tipo de proteccin de estado de la sesin

4.

Si existe alguna opcin de creacin creada que se aplique al elemento, seleccinelo en Configuracin.

5.

Opcionalmente, agregue un comentario referente al elemento, en el campo correspondiente a tal fin.

6.

Por ltimo, haga clic en el botn

Y eso es todo, ya tiene un nuevo elemento de aplicacin, el cual puede referenciar o manipular en cualquier pgina de su aplicacin.

Componentes Compartidos III: Lgica Procesos de Aplicacin

Hasta el momento, en esta nueva serie acerca de los Componentes Compartidos de una aplicacin de Oracle Apex, referente a la parte Lgica de la misma, se han realizado las siguientes publicaciones:

Componentes Compartidos III: Lgica Introduccin Componentes Compartidos III: Lgica Elementos de Aplicacin

Hoy voy a continuar con el siguiente de los elementos que conforman este grupo de componentes:

Los Procesos de Aplicacin

Los procesos de aplicacin ejecutan lgica PL/SQL en puntos especficos para cada pgina de una aplicacin, o como definan las condiciones en las que estn definidas para arrancarse. Tenga en cuenta que los procesos A Peticin slo se arrancan cuando se llaman desde pginas concretas. Adems de la pestaa que muestra la imagen de arriba, existen dos ms de ellas para los procesos de aplicacin. La primera de ellas es la de Uso:

Este es un informe que muestra los procesos de aplicacin A Peticin utilizados en la aplicacin actual. La ltima de las pestaas, es la de Historial, en la que se muestran las modificaciones recientes realizadas en los procesos de aplicacin de la aplicacin que estamos trabajando.

Una vez definido lo anterior, es importante saber cmo crear un proceso de aplicacin. Para ello utilizamos el siguiente procedimiento:
1. 2. Haga clic en el botn .

En la seccin de Identificacin:

1. 2.

Ingrese el nombre del proceso en el campo Nombre. En secuencia, ingrese un nmero que indique la prioridad u orden de ejecucin del proceso (en caso de que existiera ms de uno).

3.

En el campo Punto, seleccione de la lista proporcionada, el momento en que se va a ejecutar el proceso en cada pgina. Recuerde que si elije A Peticin, solo se ejecutar el proceso cuando as sea solicitado por una pgina especfica.

4. 3.

Haga clic en el botn Ahora, en la seccin de Origen:

1. 2.

Ingrese el cdigo del proceso en el campo Texto de Proceso. Incluya el texto del mensaje que se mostrar en caso de producirse un error al ejecutar el proceso, esto en el campo Mensaje de Error.

3. 4.

Haga clic en el botn En la seccin Condicionalidad:

1.

Defina las condiciones que se deben cumplir para que el proceso se ejecute (de ser necesario).

2.

Haga clic en el botn

Una

vez

creado

un

proceso,

lo

puede

editar,

haciendo

clic

sobre

el

icono

correspondiente de la pantalla de Procesos de Aplicacin. Algunas caractersticas interesantes acerca de los procesos de aplicacin:

1.

Se pueden utilizar los procesos de aplicacin para realizar acciones necesarias en todas las pginas.

2.

Se puede hacer referencia a elementos de pgina y aplicacin mediante la sintaxis :ITEM_NAME (variable ligada).

3.

El texto de proceso se trata como bloque PL/SQL annimo. Application Express colocar begin y end; alrededor de este cdigo. Si necesita declarar variables locales, deber hacerlo mediante un bloque declare, begin y end.

Saludos a todos y los espero en la siguiente entrega de esta serie:

Navegando registros mantenimiento

en

una

forma

de

Debido a mltiples consultas acerca de cmo se puede realizar la consulta de registros tal como se hace en Oracle Forms con las teclas F6 y F7, he decidido escribir este artculo, en donde detallo cmo realizar algo similar, aunque no exactamente igual, pero que les puede ser de gran ayuda. Antes de iniciar con el procedimiento, algunos comentarios que resultan de importancia en cuanto a lo que se va a exponer. Esta funcionalidad, nicamente trabaja cuando la forma de mantenimiento se encuentra en estado de edicin, ya sea para modificar o eliminar registros. Tomando en cuenta lo anterior, necesitamos un reporte desde el cual ingresar a la forma en modo de mantenimiento. Una vez dicho lo anterior, el siguiente es el procedimiento paso a paso para crear ambas pginas, la de reporte sobre la tabla que deseamos consultar y la correspondiente forma de mantenimiento.

1.

Haga clic en el botn

2.

Ahora seleccione la aplicacin en la que va a crear las pginas. Haga clic en el botn

correspondiente a la aplicacin 3. 4. 5. Inicie la creacin de las pginas haciendo clic en el botn A continuacin, despus de cada paso descrito, haga clic en el botn Seleccione Pantalla en la pgina siguiente

6.

Ahora seleccione Pantalla Basada en Tabla con Informe

7.

Elija el esquema al que pertenece la tabla

8.

Escoja la tabla sobre la que desea trabajar

9.

Defina las caractersticas del reporte

10. Defina el tipo de separadores para el reporte (en caso de utilizarlos)

11. Escoja las columnas que va a incluir en el reporte

12. Defina el icono a utilizar para ingresar a editar los registros de la tabla

13. Ingrese las definiciones generales de la pantalla de mantenimiento

14. Elija la columna de la tabla definida como llave primaria de la misma

15. Escoja la forma en que se va a controlar el poblado de la llave primaria

16. Seleccione las columnas que se van a incluir en la pgina de mantenimiento

17. Defina las diferentes operaciones de mantenimiento que va a permitir la forma

18. Haga botn

clic

en

el

para crear ambas pginas 19. Para finalizar la creacin de las pginas haga clic en el botn 20. En la pgina prinicpal de su aplicacin tendr dos nuevas pginas. Haga clic en el enlace de la pgina de mantenimiento recien creada

21. En la seccin Procesos del rea de Representacin de Pgina, haga clic en el icono Crear

22. En el tipo de proceso, seleccione Paginacin de Pantalla

23. Seleccione el esquema de la tabla a la que se le va a agregar la funcionalidad de navegacin de registros

24. Elija la tabla correspondiente

25. Indique el campo de la pgina que contiene la llave primaria de la tabla

26. Defina la regin en la que se va a agregar la funcionalidad y columna o columnas por la que se va a ordenar la navegacin de registros

27. Haga clic en el botn controla la navegacin

, para finalizar la creacin del proceso que

28. Eso es todo. En la pgina aparecer un nuevo proceso, tal como se muestra en la imagen a continuacin

Para ejecutar y ver como funciona el procedimiento que acabamos de definir, ejecute la aplicacin y dirjase a la pgina del reporte creado, luego haga clic en el icono de mantenimiento de cualquiera de los registros mostrados y empiece a utilizar la navegacin de registros. La imagen abajo muestra la manera en que se debera estar viendo la pgina de mantenimiento.

Puede ver un ejemplo funcionando en mi aplicacin de ejemplo enOTN.

Anda mungkin juga menyukai