Seleccionar página

IG – Añadir menú personalizado

Menú desplegable cuadrícula interactiva APEX

Escrito por: Eddie Molina

Oracle ACE Pro. Oracle APEX Cloud Developer Certified Professional. Presidente de ORAUGCRC (Grupo de Usuarios Oracle de Costa Rica). Miembro de líderes de LAOUC. Conferencista, consultor, desarrollador y capacitador en tecnologías Oracle, especialmente Oracle Application Express con más de 30 años de experiencia.

17/04/2024

Trucos y consejos

Ya hemos cubierto varios aspectos referentes a la personalización de las cuadrículas interactivas de APEX y hemos tratado los temas:

En esta oportunidad, voy a explicar cómo agregar un menú personalizado a la barra de herramientas de una cuadrícula interactiva, pero adicionalmente explicaré como personalizar el menú de Acciones o cómo eliminar este.

Recordárles una vez más, que en primera entrega de la serie, pueden aprender lo básico y necesario para poder entender como funciona y como está estructurada la barra de herramientas.

Agregar un menú personalizado

Además de agregar botones en las diferentes secciones de la barra de herramiemtas de una cuadrícula interactiva, podemos agregar menús desplegables, ya sea para ejecutar funciones predefinidas o para ejecutar acciones personalizadas que queramos agregar a nuestra cuadrícula. Nuevamente, el procedimiento general es:

  1. Abrir la página que contiene la cuadrícula interactiva.
  2. Seleccionar la región de cuadrícula interactiva, ya sea en la lista de componentes o en la vista de diseño de la página.
  3. Hacer clic en la pestaña Atributos, en el paño de propiedades en la columna derecha del diseñador de páginas.
  4. En la sección Avanzada, en Función de Inicialización JavaScript, agregar el código de la función que nos permite modificar los botones.
Atributos avanzados

La función que necesitamos utilizar para agregar un menú personalizado, debe ejecutar las siguientes acciones:

  1. Recuperar la configuración actual
  2. Definir la sección en la que se vamos a agegar nuestro menú
  3. Definir las opciones que van a conformar nuestro menú

Habiendo dicho esto, si queremos crear un menú que nos permita filtrar, crear un gráfico, descargar la cuadrícula y adicionalmente levantar una alerta, nuestra función debería mirarse de la siguiente manera:

En las líneas 3-5, recuperamos la configuración actual de la barra de herramientas y  nos posicionamos en la sección deseada de la barra de herramientas (las definimos en el primer artículo de esta serie) en la que vamos a agregar nuestro menú. En este caso vamos a utilizar la sección más a la derecha de la barra de herramientas.

Las líneas 7 a 13, definen las propiedades generales de nuestro nuevo menú, de la siguiente manera:

  • Línea 7, tipo de elemento: MENU
  • Línea 8, Id del elemento: menu-s
  • Línea 9, etiqueta del elemento Menú Corto
  • Línea 10, icono: fa fa-navicon
  • Línea 11, posición del icono: iconBeforeLabel: true
  • Línea 12, se debe resaltar: false
  • Línea 13, acción: action-menu

Las líneas 15 a la 41, definen las diferentes entradas del menú. Si son observadores, habrán notado que entre cada entrada existe una definición de separador, estos son necesarios y mandatorios.

También pueden notar que las líneas 35 a 38 definen una opción que es diferente a las anteriores, en este caso estamos definiendo una opción que ejecuta una función Javascript que lo que hace es levantar una alerta con el mensaje “Acción 1”.

Finalmente, las líneas 43 y 44 definen y retornan la nueva configuración de la barra de herramiemtas.

    Muy importante recordar que al estar utilizadno Javascript que es “case sensitive” ,  debemos tener el cuidado de conservar los nombres tal cual se muestran en el ejemplo.

    A continuación podemos observar el resultado final.

    Barra de herramientas de cuadrícula interactiva APEX menú personalizado

    Eliminar menú de acciones

    Si lo que quieren es eliminar de la barra de herramientas de una cuadrícula interactiva el menú de acciones, esto es muy fácil de conseguir.

    Todo lo que deben hacer es eliminar la sección que contiene dicho menú.

    Para hacer esto, nuestra función de personalización de la cuadrícula interactiva sería como esta:

    Las líneas 2 y 3 recuperar la configuración actual de la barra de herramientas, mientras que la línea 4 remueve la sección actions1 que contiene el menú acciones.

    El resultado final lo muestra la siguiente imagen.

    Cuadrícula interactiva APEX sin menú de acciones

    Personalizar menú de acciones

    Si lo que queremos hacer es personalizar el menú de acciones de la barra de herramientas de una cuadrícula interactiva, por ejemplo para que no muestre la opción de crear gráficos y la de descargar el reporte.

    La función de configuración que realice estas funciones debería lucir como la siguiente:

    La línea 3 de la función, recupera la configuración actual de la barra de herramientas de la cuadrícula interactiva.

    La línea 4 elimina la opción de Gráficos del menú de acciones.

    La línea 5, elimina la opción de descarga del reporte incluida en el menú de acciones de la barra de herramientas.

    Y el resultado final se vería asi:

    Menú de acciones de barra de herramientas de cuadrícula interactiva APEX personalizado

    Si adicionalmente, queremos agregar una opción personalizada al menú de acciones, como por ejemplo para levantar una ventana de alerta, a la función anterior le agregamos algunas líneas para que lusca como la siguiente:

    Por venir

    En entregas posteriores, les mostraré nuevos trucos para personalizar nuestras cuadrículas interactivas, como por ejemplo:

    • Cómo agregar nuevas opciones al menú de acciones.
    • Cómo agrear un menú personalizado de acciones por línea.
    • Cómo agregar una barra de desplazamiento en la parte superior de una cuadrícula interactiva.
    • Y algunos otros trucos más.

    También te puede gustar…

    Alcance de Acciones Dinámicas

    Alcance de Acciones Dinámicas

    Las acciones dinámicas son una de las características más importantes de APEX, puesto que nos permiten extender...

    Share This