Tutorial de Oracle Reports – parte 1

Autor: Arturo T. arturo_toca at yahoo dot com

Oracle reports es una poderosa herramienta que tiene por objetivo el diseño y la generación de informes. Permite la creación de reportes en archivos jsp (Java Server pages), rdf, xml, rtf entre otros, pero siendo los más usados los anteriormente citados. De igual manera permite enviar el resultado de los informes a archivos de texto, pdf, html, xml, rtf, de texto delimitados, entre otros, lo cual permite su lectura y publicación en diversos formatos.

Vamos a entrar en materia sobre este tema.

Al igual que oracle forms, esta herramienta contiene un navegador de objetos desde el cual se puede acceder a cada uno de los elementos que conforman la definición de un reporte.

En la figura 1, se pueden ver los elementos que componen un reporte. El modelo de datos es un área donde se define principalmente el contenido del reporte; es decir, la definición de consultas, cálculos, funciones que retornarán los datos para el respectivo informe.

Disposición de papel, es un área donde se define principalmente la parte visual del reporte; es decir, se definen los tipos de letra, tamaños, ubicación de las columnas, colores, espacios, encabezados, y en general, todo aquello que tiene que ver con la presentación del informe.

La pantalla de parámetros, es un área donde se puede personalizar la entrada de los parámetros al reporte. Por ejemplo, si se tiene un reporte acerca de los elementos vendidos por una empresa, pudiesen ser parámetros la fecha inicial y la fecha final para los cuales se desea conocer esta información.

Disparadores de informes, es un bloque donde se definen acciones que se disparan principalmente antes de que el reporte sea generado o después de la ejecución del mismo dependiendo de las políticas del negocio.

Unidades de programa y Bibliotecas conectadas al igual que oracle forms es un área donde se pueden definir en la primera, procedimientos, funciones, paquetes que pueden ser utilizados desde el modelos de datos, y en el segundo, enlaces a librerías o bibliotecas pll, donde se encuentren las funciones, procedimientos o paquetes.

Fig 1. Elementos de un reporte

A continuación vamos a ver estas áreas en detalle.

Modelo de datos:

Como se indicó anteriormente, esta área se encarga de la definición de los datos que serán mostrados en el informe. Para lo cual se necesita definir las consultas a las diferentes fuentes (tablas, vistas, procedimientos almacenados, archivos xml, módulos olap), definir las sumarizaciones y programar las funciones adicionales que pudieran ser necesarias en el informe.

La figura 2, muestra las herramientas del modelo de datos.

Fig 2. Herramientas del modelo de objetos

La herramienta columna de resumen

Permite definir operación de sumarización tales como conteo, suma, promedio, valor máximo, valor mínimo, varianza, desviación estándar, entre otras, cuya columna resultante podrá ser incorporada en el informe. Para el mismo ejemplo del informe de ventas, pudiera ser necesario incluir al final de cada día el valor total vendido, y al final del rango seleccionado, el valor total vendido y valor promedio; para lo cual podría ser utilizada esta herramienta.

La herramienta columna de formula

Permite la incorporación de bloques plsql para la definición de procedimientos y funciones adicionales, que pueden ser necesarias para el calculo de operaciones específicas. El valor retornado por esta columna también puede ser mostrado en el reporte. Volviendo al ejemplo de las ventas, supongamos que se necesita comparar si el total vendido por día supera un valor X, en cuyo caso la empresa no debería “preocuparse”; pero si las ventas no superan ese valor X, entonces ¡oh que pasa?!

Para esto, el reporte puede incluir una columna que compare el valor total con el valor X y si valortotal >=X entonces retorne “no hay problemas”, pero si valortotal < X entonces retorne “en este día no nos fue muy bien”. Claro, este es un ejemplo de juguete que muestra un mínimo alcance de los que podría hacerse con columnas de formula.

Leave a Reply