Una de las cosas que más 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 aún 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 páginas HTML y cómo se pueden implementar de manera sencilla.
Para este artículo me voy a centrar en la creación de una página sencilla con dos campos del tipo “Lista de Selección”, 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:
- Ingrese a su área de trabajo.
- Seleccione la aplicación en la que va a crear la página.
- Cree una nueva página en blanco, haciendo clic en el botón “Crear Página”.
- Cree una bifurcación incondicional direccionada al mismo número de página que acaba de crear.
- Ahora cree una región de tipo “HTML”.
- Cree un campo llamado Px_LOV_DEPTO del tipo “Lista de Selección con Ejecución”, donde ‘x’ corresponde al número de página creada.
- Incluya el siguiente código en la definición de lista de valores del campo:
select DNAME display_value, DEPTNO return_value
from DEPT
order by 1
- Cree un nuevo campo, ahora del tipo “Lista de Selección”, con el nombre Px_LOV_EMP y agréguele el código siguiente en la definición de lista de valores:
select ENAME display_value, EMPNO return_value
from EMP
where deptno = :Px_LOV_DEPTO
order by 1
- Ejecute la página, 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 ejecutándose en mi área de trabajo de OTN en la siguiente dirección: apex.oracle.com/pls/otn/f?p=56897
Suerte y los espero de nuevo pronto con otro tip más.