Seleccionar página

APEX: Aprende a sincronizar los cambios en tus tablas

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.

03/03/2025

Trucos y consejos

Puede ser que les haya sucedido o que les vaya a suceder en algún momento.

Imaginen que tienen una tabla en su base de datos y que por nuevos requerimientos, es necesario modificar esa tabla, ya sea que debamos agregar uno o más columnas, debamos eliminar alguna o algunas de las columnas existentes o, que debamos modificar alguna de ellas.

Imaginen también que tienen una aplicación donde tienen definidas diferentes páginas (formas, reportes, graficos, etc) a partir de esta tabla que se debió modificar.

¿Qué va a pasar con esta o estas páginas? ¿Debemos volver a crearlas desde cero?

Las respuestas a estas preguntas son un rotundo NO.

Existe una funcionalidad de APEX que nos permite sincronizar el contenido de diferentes regiones de una página con el objeto de base de datos sobre la cual fueron creadas.

Veamos como funciona sobre un reporte interactivo y una forma de mantenimiento.

Escenario de prueba

Para ejemplificar el uso de la funcionalidad de sincronizar, vamos a utilizar la conocida table DEPT de todos los ejemplos de Oracle.

Originalmente, esta tabla tiene la siguiente estructura

Imagen de la estructura de la tabla DEPT

Básicamente, esta tabla esta compuesta por tres columna: DEPTNO, DNAME y LOC.

A continuación lo que haremos es crear una aplicación en blanco y tenemos nuestro escenario listo para el show.

Sincronizando un reporte interactivo

Con nuestro escenario listo, lo primero que vamos a hacer, es agregar un informe interactivo a nuestra aplicación, a partir de la tabla DEPT:

  1. En la aplicación del escenario, haga clic en el botón Crear Página.
  2. Seleccione Informe Interactivo.
  3. Proporcione:
    1. Nombre de la página
    2. Modo
    3. Habilite Incluir Página de Pantalla
    4. Nombre de Página de Pantalla
    5. En Tipo de Origen seleccione Tabla
    6. Ingrese el nombre de la tabla DEPT
  4. Haga clic en el botón Siguiente y luego en el botón Crear Página

El procedimiento anterior creará dos páginas, el reporte interactivo que lista los departamentos en la tabla DEPT y una forma para dar mantenimiento a dicha tabla.

El informe interactivo creado debería lucir similar al que muestra la siguiente imagen.

Imagen de reporte interactivo de departamentos

El reporte únicamente muestra el nombre del departamento su localización y los enlaces necesarios para dar mantenimiento a los registros existentes y agregar nuevos registros.

Ahora bien, supongamos que queremos agregar a la tabla de departamentos dos nuevas columnas una de país y otra de presupuesto, de manera que la estructura de nuestra nueva tabla de departamentos luciría así:

Imagen de nueva estructura de la tabla DEPT

Podemos observar indicadas las dos nuevas columnas: COUNTRY y BUDGET.

Pero si vamos a nuestro reporte, este continuará luciendo de la misma manera en que se muestra en la imagen de má arriba.

¿Cómo hacemos para que muestre las dos nuevas columnas sin tener que borrar la página o la región y volver a crearla?

Lo primero que vamos a hacer es navegar en el diseñador de páginas hasta la página correspondiente al reporte interactivo de departamentos que creamos anteriormente.

Imagen del panel derecho del diseñador de páginas mostrando el contenido del reporte interactivo de departamentos

Como se puede observar, solo aparecen las tres columnas originales de la tabla DEPT.

Aquí está el truco para actualizar el reporte sin mayor esfuerzo:

Vamos a colocar el indicar del ratón sobre el nombre de la región del reporte interactivo, en este caso Departamentos y vamos a hacer clic con el botón derecho del ratón, de manera que se muestre el menú contextual para este, algo similar al que se muestra en la imagen a continuación:

Imagen de menú contextual para la definición del reporte Departamentos

Todo lo que resta por hacer, es hacer clic sobre la opción “Sincronizar columnas” y la magia sucede.

Ahora podrá ver dentro de de definición de las columnas del reporte, las dos nuevas columnas que agregamos a la tabla, tal como se muestra en la siguiente imagen.

Imagen de la definición del reporte interactivo con las dos nuevas columnas

Para finalizar solo resta hacer clic en el botón Guardar del diseñador de páginas y nuestro reporte de departamentos estará listo.

Si ejecutamos nuevamente la página del reporte de departamentos, ahora este lucirá así:

Imagen de nuevo reporte de departamentos con columnas sincronizadas

Recuerde que al ser un reporte interactivo, para que se muestren las nuevas columnas debe ejecutarlo y utilizar el menu de Acciones para mostrar las columnas, luego de hacer esto, su reporte debería lucir como el de la imagen anterior.

Las columnas no muestran datos porque aún no hemos agregado ningún dato a esas columnas, pero ya aparecen en su reporte y sin necesidad de volver a crear toda la página o la región del reporte.

Sincronizando el formulario (pantalla)

Imagen de pantalla de mantenimiento de departamentos original

Ya que sincronizamos nuestro reporte de Departamentos, ahora hagamos lo mismo con nuestro página de mantenimiento de reportes.

Arriba puede observar como luce inicialmente esta página.

Para sincronizar la pantalla de departamentos, lo primero que debemos hacer es abrir la página correspondiente en el diseñador de páginas.

Imagen de definición de formulario de mantenimiento de departamentos original

Como puede observar, solo tenemos las tres columnas de la tabla original en la definición de la región del formulario para la tabla DEPT tal y como esta era originalmente.

Sincronicemos nuestro formulario para actualizar la forma, para lo cual nuevamente, vamos a posicionar el indicador del ratón sobre el nombre de la región Departamento (en este caso), en el panel izquierdo del diseñador y a continuación vamos a hacer clic con el botón derecho del ratón.

Nuevamente veremos un menú contextual, en el cual vamos a hacer clic sobre la opción Sincronizar elementos de página.

Imagen de menú contextual para la definición de la forma de mantenimiento de departamentos

En la definición de la forma, ahora se verán las nuevas columnas de la tabla.

Tal como se muestran resaltadas en la siguiente imagen.

Imagen de la definición de la nueva forma de departamentos

Si desea, puede realizar los cambios que necesite hacer a los dos nuevos elementos, luego de lo cual solo resta guardar los cambios realizados y nuestra tarea estará completa.

La nueva forma lucirá así:

Imagen de la nueva forma de departamentos con las nuevas columnas sincronizadas

Resultado final

Para finalizar, solo me resta mostrarles como luce el reporte interactivo, una vez he utilizado la nueva forma con las columnas sincronizadas para modificar algunos valores y agregarle valores a las nuevas columnas agregadas a la tabla.

Imagen final del reporte interactivo de departamentos con valores en las nuevas columnas

Como lo comenté al inicio, este procedimiento lo puede utilizar también para sincronizar

  • informes clásicos,
  • informes de cuadrículas interactivas,
  • tarjetas,
  • filtros inteligentes,
  • listas de tareas unificada,
  • búsquedas por facetas y
  • calendarios,

además de los formularios y reportes interactivos que ejemplificamos aquí.

También te puede gustar…

Share This