Fco. Javier García Castellano


Oracle Reports
 


1 Informe Asignaturas

Vamos a hacer un primer informe que nos va a mostrar una relación de asignaturas que se pueden cursar, para ello ejecutamos Report Builder, que es la herramienta para construir informes

Lo primero que nos saldrá será una pantalla de bienvenida con diversas opciones, nosotros escogeremos Utilizar el Asistente de Informes y le damos al botón Aceptar.

Nos sale otra bienvenida, la ignoramos y pulsamos el botón Siguiente, nos preguntará el título de nuestro informe y el tipo del mismo. Como Título pondremos Asignaturas y escogeremos el tipo tabular. Pulsamos Siguiente

Nos preguntará el tipo de consulta que queremos utilizar, seleccionaremos Sentencia SQL y pulsamos Siguiente. En la siguiente ventana nos pedirá la consulta y aprovechamos, pulsando el botón conectar para identificarnos. La consulta que debemos introducir es:

  SELECT nombre, creditosTeoricos, creditosPracticos, tipo, cuatrimestre FROM asignatura;

Nos aparecerá una ventana con dos columnas para seleccionar los atributos que deseamos visualizar en nuestro informe, los vamos a visualizar todos, así que nos los llevamos todos a la columna de la derecha.

En la siguiente pantalla nos permite calcular totales, mínimos, máximos, etcétera, por lo pronto, la ignoramos y pulsamos Siguiente. Ahora nos preguntará por las Etiquetas del Informe y el tamaño de cada uno de los campos, nos limitamos a cambiar "creditosTeoricos" por "Créditos Teóricos" y "creditosPracticos" por "Créditos Prácticos".

Finalmente, seleccionamos la plantilla de diseño con la que parecerá nuestro informe, escogemos la que más nos gusta, por ejemplo, escogemos la primera Corporate 1 y le damos al botón de Terminar.

Como resultado ya tenemos nuestro primer informe, en el Report Editor podemos cambiar aquellos detalles que no nos gusten. Que no se te olvide guardarlo como asignaturas.rdf

2 Informe Matrículas

Vamos a crear un informe donde, para cada alumno, nos muestre las matrículas que ha realizado y para cada matrícula los pagos de la misma. Utilizamos el Asistente de Informes para hacerlo. El estilo de informe será Agrupar a la izquierda y el título "Matriculas".

El motivo de agruparlo a la izquierda es que queremos agrupar las matriculas por alumnos (un alumno se puede matricular más de una vez) y los pagos por matricula (una matricula puede tener uno o dos pagos). El tipo de consulta sera mediante Sentencia SQL y el código de la misma será:

  SELECT  matricula.idmatricula, tipo, numeroplazos, fechaexpedicion, curso,
          cantidad, abonado, fechapago,
          persona.nombre, persona.apellido1, persona.apellido2
  FROM pago, matricula, persona
  WHERE (pago.idmatricula=matricula.idmatricula) and
        (matricula.idalumno=persona.pid);

Le damos a conectar para identificarnos y pulsamos Siguiente. En la siguiente pantalla, tendremos que elegir por que grupos de atributos vamos a realizar las agrupaciones. Primero pasamos nombre, apellido1, apellido2 que estará en el nivel 1 e idmatricula estará en el nivel 2. Para dejar de añadir atributos al nivel 1 y empezar al nivel 2, simplemente hay que cerrar el árbol del nivel 1. Nos quedará:

El resto de atributos lo añadimos luego en la parte de campos visualizados en el siguiente orden: curso, tipo, fechaexpedicion, numeroplazos, cantidad, abonado, fechapago.

Cuando nos pregunta los campos sobre los cuales se desea calcular el total, seleccionaremos el campo cantidad, así nos sumará las cantidades de los pagos de una matrícula y los totales de las distintas matriculas de un alumno. Entonces, seleccionamos cantidad y nos lo llevamos a la columna de totales, usando el botón de Suma >

Ya sólo nos queda poner los títulos y ajustar los tamaños de los distintos campos. Observa que nos salen tres nuevos atributos:

  • SumCantidadPeridmatricula, que nos sumará las distintas cantidades por matrícula
  • SumCantidadPernombre, que nos sumará las distintas cantidades por persona
  • SumCantidadPerReport, que nos hará la suma de todas las cantidades del informe

Escogemos la plantilla predefinida NCA yellow y le damos a Terminar. Qué no se te olvide guardarlo cómo matriculas.rdf

3 Informes con parámetros e invocación de informes

Al igual que con los formularios, en los informes también podemos parametrizar su funcionalidad, para demostrar su uso, vamos a copiar el último informe creado (matriculas.rdf) con el nombre de matricula.rdf para que nos muestre las matrículas y pagos de una sola persona que se le pasará como parámetro.

Para crear un parámetro, en el navegador de objetos nos vamos al Modelo de Datos y de ahí, seleccionamos Parámetros de Usuario y pulsamos el botón de crear . Al nuevo parámetro creado le damos el nombre Elegido, será de tipo Character y el valor Inicial será 1.

Modificaremos la consulta del informe, eso se puede hacer por el navegador de objetos y la paleta de propiedades del informe, cambiando la propiedad Sentencia de Consulta SQL de la consulta que haya dentro de Consultas en el Modelo de datos o abriendo el Asistente de Informes (dentro del menú herramientas) y escogiendo la pestaña Datos. Introduciremos la siguiente sentencia SQL:

  SELECT  matricula.idmatricula, tipo, numeroplazos, fechaexpedicion, curso,
          cantidad, abonado, fechapago,
          persona.nombre, persona.apellido1, persona.apellido2
  FROM pago, matricula, persona
  WHERE (pago.idmatricula=matricula.idmatricula) and
        (matricula.idalumno=persona.pid) and
        (:elegido =persona.pid);

Si ejecutamos el informe veremos que antes de mostrarlo nos sale una ventan donde nos pregunta por los parámetro de usuario.

Pulsamos el icono del semáforo verde para visualizar el informe y sólo nos muestra las matrículas de una persona (la que coincide con el valor introducido).

Para evitar que cuando lo llamemos desde nuestro menú o desde un formulario nos aparezca la ventana de parámetros, nos vamos al menú Herramientas->Constructor de Pantalla de Parámetros. Dejamos en blanco el Titulo, la Linea de Indicación y la Línea de Estado, además deseleccionamos aquellos atributos que estuviesen seleccionados en la lista. Guardamos y cerramos el informe.

Abrimos nuestro formulario de matriculación con su menú y al menú le añadimos una opción nueva que será Imp. Matriculas. Para ello, debajo de la entrada Formularios creamos la entrada Informes pulsando el botón de Crear debajo . Al nuevo elemento le damos: Nombre: Informes, Etiqueta: Informes, Tipo de Elemento de Menú: Normal. Con la opción Informes seleccionada pulsamos el botón de Crear a la derecha . Al nuevo elemento le damos: Nombre: Imp_Matriculas, Etiqueta: Imp. Matriculas, Tipo de Elemento de Menú: Normal.

Para ejecutar el informe Matricula.rdf cuando se elija la opción Imp. Matrículas del menú, tendremos que modificar su propiedad Código del Elemento de Menú con el siguiente código:

 DECLARE 
    parametros Paramlist; 
    elemento   Item;  
 BEGIN
	  /*Buscamos el ítem IDAlumno*/
	  elemento := Find_Item('IDalumno');
	  
    /*Creamos la lista de parámetros*/
    parametros := Create_Parameter_List('Param_i');

    /*Le añadimos el alumno elegido*/
    Add_parameter(parametros,'elegido', TEXT_Parameter,
                  Get_Item_Property(elemento,DATABASE_VALUE));

   
    /*Llamamos al informe de matricula de un alumno*/
    Run_PRODUCT(REPORTS,'Matricula',SYNCHRONOUS, RUNTIME, 
                FILESYSTEM,parametros ,NULL);

    /*Limpiamos la la lista de parámetros creados*/
    Destroy_Parameter_List(parametros);
 END;

En el navegador de objetos, seleccionamos el objeto menú con el que estamos trabajando y le damos al botón de guardar . Ya sólo nos queda compilarlo (manteniéndolo seleccionado, nos vamos a Fichero ->Administración -> Compilar Fichero). Ejecutamos el formulario y probamos si funciona la opción de ver el informe de las matrículas de un alumno.