Normalmente. durante el desarrollo de nuestras aplicaciones con Oracle APEX, es muy común que las nuevas pantallas se desarrollen de una forma estática, sin embargo, existe una forma en la que las opciones del menú las podemos autogenerar tomandolas de una tabla en la base de datos, veamos cómo hacerlo!

Primero debemos crear una tabla, le llamaremos CATEGORIA y le pondremos los siguientes campos:

  • ID_CATEGORIA NUMBER(10,0)
  • NOMBRE VARCHAR2(50) – Nombre de la categoría
  • ICONO VARCHAR2(100) – Aquí se pondrá el nombre del icono que tendrá la categoría
  • IMAGEN BLOB – Aquí podrémos cargar una imagen
  • ATTRR_VALUE VARCHAR2(70) – Son atributos para envíar a la página que llama la categoría
  • NIVEL VARCHAR2(10) – Sirve para colocar un subnivel de categoría, es lo que se hace cuando creamos una categoría parent que tendrá subcategorías
  • TARGET NUMBER(10,0) – Indicará el número de la página que llamará

Ahora vamos a ir a la sección de componentes compartidos y Navigation Menu:

Luego presionamos create:

Le colocamos un nombre a nuestro nuevo Navigation Menu

En la siguiente página vamos a colocar el siguiente script, este nos permitirá llamar todos los campos creados previamente en el paso anterior:

select nivel as level_value
, "NOMBRE" as label_value
, 'f?p=&APP_ID.:'|| TARGET ||':'||:APP_SESSION||'::::' as target_value
, 'NO' as is_current
, "ICONO" as image_value
, null as image_attr_value
, null as image_alt_value
from "CATEGORIA"
order by ID_CATEGORIA asc;

Debemos tener en cuenta que en el campo target_value colocamos nuestro url de acceso a la página, siempre es necesario enviar :APP_SESSION para mantener la sesión del usuario, de lo contrario cada vez que quiera ingresar a una página del menú le pedirá nuevamente la contraseña, &APP_ID es el id de nuestra aplicación

De esta manera si llenamos los campos en nuestra tabla por ejemplo así:

Tendríamos un Navigation Menu de la siguiente forma:

Nota: En el campo ICONO, debe colocarse el nombre del icono de los que uno selecciona normalmente en los iconos de Oracle APEX, en el caso de que no se coloque uno, se pondrá una hoja en blanco, por ende si no queremos que aparezca un icono debemos colocarle el valor null al campo

En mi caso, yo solo tengo 2 páginas en mi aplicación, la 1 y la 3, por ende la mayoría de categorías me lleva a la 3 y otras a la 1.

De esta forma es como podemos hacer un Navigation Menu dinámico en Oracle APEX, ahora podemos crear un mantenimiento para la tabla CATEGORIA y así agregar, actualizar o borrar categorías sin tener que acceder a la consola de APEX.

3 respuestas a «Cómo crear un Navigation Menu dinámico en Oracle APEX 20.1»

  1. Excelente mi estimado, faltaría un ejemplo de mostrar ciertas opciones de forma dinámica a través de permisos de acceso a usuarios de una tabla.
    Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *