tuto reports

Download Tuto Reports

Post on 03-Jul-2015

1.147 views

Category:

Documents

5 download

Embed Size (px)

TRANSCRIPT

Tutorial de oracle reports: Autor: Arturo T. arturo_toca@yahoo.com Oracle reports es una poderosa herramienta que tiene por objetivo el diseo y la generacin de informes. Permite la creacin de reportes en archivos jsp (Java Server pages), rdf, xml, rtf entre otros, pero siendo los ms 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 publicacin 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 definicin 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 definicin de consultas, clculos, funciones que retornarn los datos para el respectivo informe. Disposicin de papel, es un rea donde se define principalmente la parte visual del reporte; es decir, se definen los tipos de letra, tamaos, ubicacin de las columnas, colores, espacios, encabezados, y en general, todo aquello que tiene que ver con la presentacin del informe. La pantalla de parmetros, es un rea donde se puede personalizar la entrada de los parmetros al reporte. Por ejemplo, si se tiene un reporte acerca de los elementos vendidos por una empresa, pudiesen ser parmetros la fecha inicial y la fecha final para los cuales se desea conocer esta informacin. Disparadores de informes, es un bloque donde se definen acciones que se disparan principalmente antes de que el reporte sea generado o despus de la ejecucin del mismo dependiendo de las polticas 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 libreras o bibliotecas pll, donde se encuentren las funciones, procedimientos o paquetes.

Fig 1. Elementos de un reporte A continuacin vamos a ver estas reas en detalle. Modelo de datos: Como se indic anteriormente, esta rea se encarga de la definicin de los datos que sern mostrados en el informe. Para lo cual se necesita definir las consultas a las diferentes fuentes (tablas, vistas, procedimientos almacenados, archivos xml, mdulos 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 operacin de sumarizacin tales como conteo, suma, promedio, valor mximo, valor mnimo, varianza, desviacin estndar, 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 da el valor total vendido, y al final del rango seleccionado, el valor total vendido y valor promedio; para lo cual podra ser utilizada esta herramienta. La herramienta columna de formula Permite la incorporacin de bloques plsql para la definicin de procedimientos y funciones adicionales, que pueden ser necesarias para el calculo de operaciones especficas. El valor retornado por esta columna tambin puede ser mostrado en el reporte. Volviendo al ejemplo de las ventas, supongamos que se necesita comparar si el total vendido por da supera un valor X, en cuyo caso la empresa no debera 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 da no nos fue muy bien. Claro, este es un ejemplo de juguete que muestra un mnimo alcance de los que podra hacerse con columnas de formula. Si desea profundizar en plsql puede recurrir al manual de plsql La herramienta consulta sql Permite la edicin de consultas sql, ya sea por intermedio del query builder o editando directamente el cdigo sql (esta ltima opcin me gusta ms por cuanto permite apropiarse directamente del lenguaje de consulta, para mas detalles sobre sql ver manual de sql ) Vamos a hacer un ejemplo en la herramienta para mostrar las anteriores tres herramientas: 1. Definamos la estructura de las fuentes de datos 2. Supongamos que se tiene la estructura de tablas: estructura.txt 3. Ahora bien, se desea generar un informe que muestre para cada alumno, las materias cursadas con su respectiva calificacin 4. Ejecutamos la herramienta oracle reports, y procedemos a crear un nuevo informe. Estando en la ventana modelo de datos, seleccionamos la opcin consulta sql y la colocamos sobre la hoja de edicin (para esto basta con hacer clic sobre la herramienta y luego clic sobre el fondo de la hoja) Aparece una ventana solicitando la consulta que deseamos ejecutar. Es aqu donde disponemos de las dos opciones: usar el query builder o lanzarnos personalmente a escribir la consulta sql. Para el ejemplo usaremos el query builder. Para poder acceder al query builder es necesario validarse como usuario de la bd oracle, por lo tanto se debe registrar el nombre de usuario, contrasea y string de conexin. Una vez validada la conexin se muestra una lista de los objetos de que dispone el usuario (tablas, vistas, sinnimos, instantneas), de la cual se deben seleccionar los objetos a usar en la consulta. En nuestro caso se seleccionarn las tablas alumno, materia e inscripcin.

Luego, de esto, cliquear la opcin incluir.

Con lo anterior, se incluyen en la pantalla de query builder las definiciones de las tablas seleccionadas. Para nuestro ejemplo, vamos a seleccionar los campos como se muestra en la siguiente figura, que son bsicamente, los campo que queremos mostrar en el informe: de la tabla alumno los campos id, nombre y apellido; de inscripcin, los campos id_materia y calificacin, y de la tabla materia deseamos mostrar el nombre de la materia. No se preocupe por las relaciones, la herramienta las construye automticamente con base en las llaves forneas definidas para cada tabla.

Luego cliquear aceptar, tenemos ahora la consulta sql lista! (Claro, si conocemos los detalles del lenguaje sql podemos escribir directamente la sentencia sin necesidad de llamar a don query builder)

Y nuevamente aceptar para ver el modelo de datos generado. La siguiente figura muestra el grupo de datos generado a travs de la consulta que se acaba de definir. El concepto de grupo es importante pues define la manera en que se mostrarn los datos posteriormente. En este caso solamente tenemos un grupo conformado por el id del alumno, el nombre y el apellido del alumno, el id de la materia el nombre de la materia cursada y la nota. Si el alumno curs 10 materias, algunos de estos datos como id, nombre y apellido del alumno se repetirn las 10 veces.

Aqu sera necesario implementar una forma de ver el reporte a manera maestro detalle. Para dividir este grupo en dos grupo slo basta con seleccionar los campos que hacen parte del detalle y llevarlos fuera del grupo (o sacarlos del grupo), con lo que nos quedara algo as:

Agreguemos ahora una columna de resumen que nos muestre el promedio de las calificaciones obtenidas por cada alumno. Para esto, seleccionamos la herramienta columna resumen y la colocamos dentro del primer grupo (el grupo del alumno), y colocamos otra columna resumen fuera de los grupos (CS_2), con lo que nos queda algo as:

Vamos a explicar qu queremos al incluir dos columnas de resumen CS_1 y CS_2, se puede ver que CS_1 es un resumen a nivel del grupo G_Nombre y lo que queremos con CS_2 es tener un resumen a nivel de todo el reporte. Es decir, queremos un resumen del promedio de calificaciones por alumno y un resumen del promedio general. Ahora bien, seleccionamos el campo CS_1 y abrimos la ventana de propiedades (botn derecho del mouse opcin inspector de propiedades) y fijamos los valores como lo indica la siguiente figura:

Como puede verse, para la propiedad funcin permite seleccionar de una lista de operaciones(conteo, suma, valor mximo, ). La propiedad origen indica el campo que interviene en el resumen La propiedad Restablecer en, indica en este caso que por cada alumno har la operacin definida. En conclusin, se hallar el valor promedio del campo calificacin por cada alumno. Ahora, seleccionamos el campo CS_2, nuevamente abrimos la paleta de propiedades y fijamos los siguiente valores

En esta configuracin, le estamos indicando que el resumen debe hacerse a nivel de todo el reporte, y vamos a promediar los promedios de los estudiantes. Listo. Ahora nicamente nos falta generar la parte visual de nuestro reporte. Para esto seleccionamos la opcin programa/ejecutar disposicin de papel. Este asistente ayuda a configurar la parte visual del reporte y lo concerniente a los datos. Una de los pasos dentro de este asistente, es la definicin del estilo de reporte a crear. Para neutro ejemplo, sealaremos la opcin agrupar arriba . Haciendo clic en siguiente, se edita el origen de datos (el cual ya definimos), luego la pestaa datos en donde se seleccionan los campos que se desean mostrar en el informe. No siempre querremos que todos los campos en la clusula select sean mostrados. Lo grupos ya estn definidos. Finalmente, si desea generarse el reporte con alguna plantilla, sta puede ser seleccionada, o si por el contrario no se desea usar plantilla, tambin existe la posibilidad de seleccionar sta decisin.

Listo, una vez terminado el asistente, nuestro reporte se vera:

Muy bien, ahora el trabajo es nicamente poner bonito nuestro informe. Desde el navegador de objetos, entrar al rea de disposicin de papel y all personalizar el reporte en cuanto fuente,