013 - Aplicación de Stock con Java. Hibernate – MySQL – JPA. iReport. Introducción para crear informes.

Antes de empezar a trabajar con reportes es necesario crear una biblioteca con los “JARs” necesarios para manejar los informes.

1).- Creando bibliotecas: Pueden ver el proceso en el enlace siguiente del blog Datos importantes antes de crear formularios. En este caso, crearemos una biblioteca para trabajar con los reportes. El nombre de la biblioteca será “JasperReports”.

2) Lista de JARs que debemos agregar para la creación de la Biblioteca “JasperReports”. Puede variar la versión dependiendo justamente de la versión del iReport. Estos JARs se pueden obtener de la carpeta de instalación del iReport.
  • commons-beanutils-1.8.0
  • commons-collections-2.1.1
  • commons-digester-2.1
  • commons-javaflow-20060411
  • commons-logging-1.1.1
  • groovy-all-1.7.5
  • iText-2.1.7
  • jasperreports-4.7.0
  • jasperreports-fonts-4.7.0
  • jasperreports-javaflow-4.7.0
  • png-encoder-1.5
  • poi-3.7-20101029
  • 3) Cargando biblioteca, será cosa de agregar la misma a la carpeta biblioteca de nuestro proyecto. El proceso en el enlace siguiente Datos importantes antes de crear formularios.
    .
    4) Datos básicos sobre el manejo de iReport. Creando nuevo archivo: Como se ve en la imagen, seleccionamos “Report”, seleccionamos tipo de hoja y orientación, por último abrimos la plantilla. Para completar especificamos el nombre y la ubicación del archivo.
    Secciones importantes de la pantalla de iReport: 1) Datasource o fuente de datos: para nuestros reportes esta tendrá que estar en “Empty datasource” pues utilizaremos listas ya filtradas. 2) Inspector de Reportes: De esta la que mayormente utilizaremos son los parámetros, campos y variables. 3) Modo diseño del iReport: En esta vemos las diferentes bandas que pueden cumplir cada cual una función específica, que detallaremos al realizar los reportes. 4) Paleta: Con los diferentes elementos que podremos agregar el reporte. 5) Propiedades: Cada elemento seleccionado despliega una serie de propiedades que pueden ser o no modificadas.
    5) Como se agregan los diferentes elementos.
    Label.
    Estas podemos utilizar para agregar títulos al reporte, descripciones de columnas. Se puede agregar seleccionándola de la paleta y arrastrando al lugar correspondiente. Se puede modificar tipo de letra, tamaño, color, alineación, etc., en “Properties” o “Propiedades” del objeto.
    Fields.
    Fields o capos; almacenan los datos que recibirá el reporte de una lista o base de datos. Se agregar en la banda correspondiente a “Detalles”. Estas se crean haciendo clic derecho sobre “Field” en el “Inspector de Reporte” a la izquierda y seleccionando “Agregar Field”. Se la puede agregar al reporte haciendo clic sobre la misma y arrastrándola al lugar correspondiente. Se pueden modificar las diferentes propiedades en el apartado “Properties” o “Propiedades” del objeto.
    Parameters.
    Parameters o parámetros; corresponden a datos individuales e independiente que se pueden agregar al reporte. Suele ser una variable que le pasa la aplicación que llama al reporte. Por ejemplo un nombre o dato específico que el usuario escribe en un campo de texto. Estas se crean haciendo clic derecho sobre “Parameters” en el “Inspector de Reporte” a la izquierda y seleccionando “Agregar Parameters”. Se la puede agregar al reporte haciendo clic sobre la misma y arrastrándola al lugar correspondiente. Se pueden modificar las diferentes propiedades en el apartado “Properties” o “Propiedades” del objeto.
    Variable.
    Como se ve en la imagen (01) una variable puede contener cálculos con condiciones, número de páginas, numero de columnas etc. El potencial de la misma está en la agregación de cálculos específicos con condiciones específicas. En la imagen (2) se puede ver el agregado de una variable para realizar sumas, el procedimiento de creación de la misma es igual a la creación de “Campos” y “Parámetros”; la parte más importante está en propiedades, la misma nos permite especificar el tipo de datos, tipo de cálculos, tipo de agrupación y el origen de los datos para el cálculo. En este caso particular el cálculo se realizar en “Pie de Grupo”.
    IMG 01

    IMG 02

    6) Para verificar nuestro trabajo podemos utilizar el botón “Preview” como se indica en la imagen, es posible especificar algunos datos de entrada para la vista previa del reporte. Por último debemos compilar el reporte haciendo clic en el botón “Compile Report”. Esta compilación nos genera dos archivos con extensión “.jasper” y “.jrxml” que se almacena en la carpeta de iReport en Documentos de usuario; debemos copiar ambas en nuestra carpeta de “informes” del Proyecto Java. Teniendo ambos archivos ya podremos utilizarlas desde el formulario correspondiente.
    7) Ejemplo de reporte: Más abajo podemos ver una imagen de la elaboración de un reporte utilizando principalmente elementos como líneas, etiquetas, rectángulos, campos, parámetros y variables. El iReport tiene la capacidad necesaria para realizarse reportes complejos y sofisticados. La información presentada más arriba es bastante básica, pero suficiente para empezar a trabajar con reportes.

    6 comentarios :

    1. Hola Carlos. Descargué e instalé el iReport 5.6.0, pero al ejecutarlo no me abre el programa. Será que es incompatible con Windows 10? Desde el sitio de Jaspersoft me aconsejan instalar el Jaspersoft Studio 6.2.0. Qué me aconsejas? Funcionará la aplicación de tu tutorial? Saludos desde Buenos Aires.

      ResponderEliminar
      Respuestas
      1. Que tal. Tendría que funcionar, recuerdo haber pasado de la versión 4 al 5 del iReport sin demasiados problemas. El tutorial en general te sirve. Saludos.

        Eliminar
      2. hola no se tiene que configurar el classpath del ireport y el datasource de conections?

        Eliminar
    2. Que tal, para el datasource se utiliza una Lista que se genera dentro de la aplicación, no hace falta hacer ninguna conexión por eso lo del “Empty datasource”. Lo del classpath dependería de como se utiliza el ireport. Saludos.

      ResponderEliminar
    3. public void informe(){
      //try - para controlar las excepciones.
      try {
      //Creamos una lista de los datos de la table "Tipo" utilizando "List".
      st.beginTransaction();
      List lista = (List)st.createQuery("From Tipo").list();
      //Utilizamos el método siguiente para cargar el reporte "TipoReport.jasper"
      //El "JRLoader.loadObject" es el cargador.
      JasperReport report = (JasperReport)JRLoader.loadObject(ClassLoader.getSystemResource("com/informes/TipoReport.jasper"));
      //El método siguiente nos permite pasarle los datos al reporte utilizando JRBeanCollectionDataSource y como argumento la lista que creamos más arriba.
      //La lista posee dos campos por registro: "id" y "des", los nombres se corresponden con las agregadas en el reporte diseñado.
      JasperPrint fillReport = JasperFillManager.fillReport(report, null,new JRBeanCollectionDataSource(lista));
      //El JasperViewer para visualizar, le pasamos como argumento nuestro "fillReport" de arriba.
      JasperViewer jviewer = new JasperViewer(fillReport,false);
      //Le damos un título al reporte.
      jviewer.setTitle("Lista de Tipos de Artículos.");
      //La hacemos visible.
      jviewer.setVisible(true);
      } catch (Exception e) {
      JOptionPane.showMessageDialog(null, "Error cargando reporte.");
      }
      }

      me podes ayudarcon este codigo no me muestra el reporte, solo me sale el mensaje:
      Error cargando reporte.

      ResponderEliminar
      Respuestas
      1. Que tal. Puedes sacar el try{} catch para ver que error es la que muestra en la consola. Asi podemos entender cual es. Saludos.

        Eliminar