martes, 11 de octubre de 2016

058.- Creación De Un Informe Con Cálculos - Java Y NetBeans

Cálculos en Informes:

Es muy habitual que un informe no solo muestre datos de las tablas de la base de datos, sino que también muestre cálculos realizados con esos datos.

Para hacer esos cálculos se puede usar la potencia de SQL por un lado. Podemos generar esos cálculos directamente en la consulta SQL, con lo cual solo tendremos que mostrar los resultados en el informe como si fueran otros campos.

Por otro lado también podemos realizar los cálculos directamente en el informe.

En esta hoja se verá cómo crear un informe con cálculos. Además se aprenderán algunos conceptos nuevos en lo que se refiere a presentación de datos y uso de las zonas del informe.


EJERCICIO GUIADO Nº 1. CREACIÓN DE UN INFORME CON CÁLCULOS

  1. Entra en NetBeans.
  2. Vamos a crear un informe desde cero donde aparezca el listado de servicios realizados. Interesa en principio que aparezca la fecha del servicio, el tipo del servicio y la cantidad cobrada.
  3. Para ello dar clic derecho en algún paquete del proyecto de NetBeans, luego clic en la opción New y luego escoger la opción Other…:



  1. En el cuadro New File que aparece escoger según se indica en la próxima imagen y luego dar clic en Siguiente:



  1. Asigne el nombre informeServicios al informe y dar clic en Terminar.

  1. Indique ahora que usará la conexión con la base de datos AMANUVA. Para ello puede elegir la “Conexión DB AMANUVA” en el desplegable de conexiones, en la parte superior derecha de la ventana:



7.    Ahora que hemos elegido la conexión, indicaremos la consulta SQL que nos permita extraer los datos que queremos mostrar en el informe. Para esto se tiene que dar clic en la pestaña Report Inspector, luego dar clic derecho en report name y escoger la opción Edit Query:



8.    En la pantalla que aparece debes introducir la siguiente consulta SQL:

SELECT * FROM servicios ORDER BY fecha



9.    Acepta la pantalla anterior. Ya podemos empezar a diseñar el informe. Empezaremos por poner un título. El título será “Listado de Servicios”. Agrande la letra del título y céntrelo.



  1. Ahora para definir los datos del listado, tendremos que añadir campos a la zona del Detalle (Detail). Debes arrastrar los campos fecha, tipo y cantidad_cobrada (automáticamente se añadirán los encabezados de dichos campos en la zona Encabezados de Columna):



  1. La zona del detalle es demasiado grande, así que reduzca su tamaño arrastrando la línea de separación, cambie también los encabezados de columna para que el informe tenga una mejor presentación:



  1. Visualice el listado. El listado tendrá la siguiente forma:



  1. Observe como la fecha muestra también la hora. Antes de continuar, cambiaremos el formato de la columna de la fecha para que esto no suceda. Para ello seleccione el campo fecha:



  1. Vamos a modificar una de las propiedades llamada Patrón (Pattern). Haz clic en el botón con tres puntos de esta propiedad:



  1. Esta propiedad permite cambiar la forma en que se presentan números, fechas y demás tipos de datos en el informe.

Elige en la zona de categorías la categoría Date (Fecha) y luego escoge el patrón con forma día/mes/año:


          Acepta los cambios.

16. Vuelve a visualizar tu listado. Ahora verás como las fechas aparecen correctamente.

Recuerda esta propiedad, ya que la usarás muchas veces. Sobre todo con fechas y números. En el caso de los números, se puede usar para decidir algunas características como los dígitos decimales o si mostrar o no el separador de miles.


  1. Vamos a mejorar el listado añadiendo dos líneas. Una línea justamente debajo de la cabecera y otra en la parte del Pie de Columna (Column Footer):



  1. La línea de la cabecera separará esta de los datos. Por otro lado, la línea del pie de columna aparecerá en la parte inferior del listado en todas las páginas. Visualiza el listado:



  1. La zona del Pie de Página (Page Footer) es ideal para colocar en ella el número de página del listado. (Tenga en cuenta que el listado puede ser muy largo y tener varias páginas).

Lo que introduzca en la zona Page Footer aparecerá en la parte inferior de cada página en todas las páginas del listado excepto en la última página. En el caso de la última página la zona que hace esta función es la zona llamada Last Page Footer (Último Pie de Página).

Para que la zona Page Footer afecte a todas las páginas del informe incluyendo la última, es necesario ocultar la zona Last Page Footer.

Veamos  cómo se hace esto:

  1. Haga clic con el botón derecho del ratón sobre la zona Last Page Footer y elija la opción Delete Band:



  1. Se podrá observar entonces como hemos ocultado la zona Last Page Footer. Al hacer esto, la zona Page Footer tendrá control sobre todas las páginas incluyendo la última. (Para volver a visualizar la zona oculta haz clic derecho en Last Page Footer pero en el Report Inspector y luego elegir la opción Add Band).

  1. Ahora arrastra el elemento especial Page X of Y  desde las Herramientas (Tools) hasta el pie de página. Observa:



  1. Las Herramientas contiene una serie de elementos especiales que muestran cosas como el número de la página, la fecha actual, el total de páginas, entre otros. Elementos que suelen ser muy comunes en los informes.

  1. Aprovecha las Herramientas para agregar en la parte derecha del pie de página la fecha actual. Arrastra el elemento Current date a la zona del pie de página. Entonces verás como aparece un cuadro donde tendrás que elegir el formato de la fecha. Elige el formato completo:



  1. El pie de página tiene que haber quedado más o menos así:



  1. Ahora visualice el informe y observe la parte inferior (si hace clic en Fit the pageAjuste a la página podrá tener una vista global del informe):




Verá que en la parte inferior aparece el número de la página y la fecha en el formato indicado.


  1. Supongamos ahora que nos interesa tener una columna IGV en la que aparezca el 18% de IGV de cada una de las cantidades. Desgraciadamente, este campo no existe en la tabla servicios, de la que hemos extraído los datos. Sin embargo, es posible crear este campo directamente en la consulta SQL realizando el cálculo.

En el Report Inspector hacer clic derecho en report name y escoger la opción Edit Query:


Se muestra ahora la consulta que introducimos al principio:



  1. Cambie la consulta por la siguiente instrucción SELECT:

SELECT fecha, tipo, cantidad_cobrada, cantidad_cobrada*0.18 as igv FROM servicios ORDER BY fecha



Esta consulta SELECT muestra la fecha, tipo y cantidad_cobrada de los servicios, pero además, verá que realiza un cálculo: multiplica el campo cantidad_cobrada por 0.18 y le asigna al resultado del cálculo el nombre igv.

Es decir, se crea un nuevo campo (campo calculado) llamado igv y creado a partir del producto del campo cantidad_cobrada por 0.18:



Los campos calculados es una característica del lenguaje SQL que aprovecharemos para realizar cálculos con los campos de las tablas.

  1. Pulse OK y observe la zona de Campos en el Report Inspector. Verá cómo ha aparecido un nuevo campo llamado igv. Sólo tiene que agregarlo a la zona de detalle como si fuera un campo más:



  1. Por supuesto, sería interesante modificar el texto estático del encabezado de columna del campo recién agregado:



  1. Visualice el informe resultante:



  1. Para hacer otro ejemplo de campos calculados, entre en la consulta del informe y modifique la instrucción SQL de forma que quede así:

SELECT fecha, tipo, cantidad_cobrada, cantidad_cobrada*0.18 AS igv, cantidad_cobrada*1.18 AS total FROM servicios ORDER BY fecha


En este caso, se está añadiendo otro campo calculado (en verde) llamado total. Este campo es la suma del igv y la cantidad_cobrada. Es decir, es el total con IGV.


  1. Al pulsar Ok observará en la zona de campos este nuevo campo. Aproveche esto para agregar una nueva columna con los totales con igv:





  1. Visualice el informe. Debe tener este aspecto:



  1. Hemos aprendido a agregar campos calculados a partir de otros campos, y añadirlos al listado. Ahora aprenderemos a realizar cálculos de totales, o cálculos resumen.

Por ejemplo, sería interesante calcular la suma de todas las cantidades, todos los IGV y todos los totales más IGV.

Estos totales suelen aparecer en la parte final del listado. En la zona llamada Resumen (Summary).

  1. Empezaremos agregando en la zona Summary una línea corta:



  1. Para agregar un total (una suma) hay que arrastrar desde el Report Inspector el campo que se quiere sumar a la zona Resumen (Summary):



  1. Aparecerá un cuadro de diálogo donde tendrá que seleccionar el botón de radio The result of an aggregation function (resultado de una función de agregación) y en el combo escoger Sum, luego haz clic en Ok:



  1. Aparecerá un nuevo recuadro en la zona Resumen. Colóquelo alineado con la columna del Costo:



  1. Haga el mismo proceso para calcular la suma del IGV y la suma del Total. Al final, el diseño de la zona Resumen debe tener el siguiente aspecto:



  1. Los elementos situados en la zona del Resumen aparecen al final del listado. Visualice el informe y observe la parte final del listado:


  1. El informe está terminado. Guárdelo y ciérrelo.



CONCLUSIONES:
SQL permite la creación de campos calculados a partir de otros campos en una consulta SELECT.
Esta característica es muy útil por ejemplo en el caso de los informes, ya que nos permite mostrar cálculos en ellos.
iReport, además, proporciona la posibilidad de realizar sumas totales de campos.

Recuerde también el uso de las distintas zonas del informe:
-       Title – Título: Usado para colocar el título del informe. Aparece en la primera página únicamente.
-       Page HeaderEncabezado de Página: En él se coloca aquello que deba aparecer en la parte superior de todas las páginas.
-       Column Header Encabezado de Columna: Usado para colocar la cabecera del listado.
-       Detail Detalle: Usado para colocar los datos (campos).
-       Column Footer – Pie de Columna: En él se coloca aquello que deba aparecer en la parte inferior del listado en todas las páginas.
-       Page Footer Pie de Página: En esta zona se coloca aquello que deba aparecer en la parte inferior de todas las páginas (menos la última, si está activado el Last Page Footer). Se usa para colocar el número de página.
-       Last Page FooterUltimo Pie de Página: Es el pie de página de la última página. Si se desactiva, entonces es sustituido por el Page Footer.
-       Summary Resumen: Usado para colocar cálculos de totales. Aparece al final del listado.

No hay comentarios.:

Publicar un comentario