Incluir informes jasper en un proyecto de Java Swing

Ahora que sabemos cómo crear informes con iReport necesitamos conocer el modo de integrarlo dentro de nuestros proyectos de Java Swing. Para ello debemos seguir los siguientes pasos en iReport:

  1. En las propiedades del informe debemos indicar, en Language: Java.
  2. Compilamos a continuación el informe haciendo clic en el botón de compilación (un martillo sobre una hoja) que se encuentra en la barra de herramientas de nuestro informe, a la derecha de los botones de ampliar/reducir.
  3. En nuestra carpeta del proyecto, junto con el informe que teníamos en formato .jrxml se creará un nuevo archivo con extensión .jasper.

Una vez disponemos de nuestro informe tanto en .jrxml como en .jasper abrimos un nuevo proyecto de NetBeans:

  1. En primer lugar creamos una carpeta en nuestro proyecto (por ejemplo, con nombre “informes”) e incluimos los dos archivos creados con iReport. Podemos consultar estos elementos en el explorador Files de Netbeans.
  2. Si no disponemos de ella, creamos una nueva librería (por ejemplo, llamada iReport-5.6.0) en Netbeans (en Tools > Libraries > New Library…) con los siguientes archivos que encontraremos en la carpeta del iReport, en la ruta ireport/modules/ext:
    • commons-beanutils-1.8.2.jar
    • commons-collections-3.2.1.jar
    • commons-digester-2.1.jar
    • commons-logging-1.1.jar
    • iText-2.1.7.js2.jar
    • jasperreports-5.6.0.jar
    • servlet-api-2.4.jar
  3. En las propiedades del proyecto, en Libraries, añadiremos por un lado la librería recien creada (iReport-5.6.0) y por otro lado la base de datos que necesitemos. Si hacemos uso de la base de datos de ejemplo de iReport añadiremos el jar hsqldb-1.8.0-10.jar que se encuentra en la misma ruta que los .jar anteriores.
  4. Asociamos la generación del informe a un nuevo evento (por ejemplo, a la pulsación un botón). En este método introduciremos el siguiente código, en caso de que no tengamos que pasarle ningún parámetro al informe:
    • En primer lugar conectamos a la base de datos utilizando el driver HSQLDB:
      • Class.forName(“org.hsqldb.jdbcDriver”).newInstance();
      • Connection c = DriverManager.getConnection(“jdbc:hsqldb:hsql://127.0.0.1/”, “sa”,””);
    • Creamos el objeto JasperPrint, para lo que necesitaremos el fichero jasper, los parámetros -si los hay- y la conexión a la base de datos:
      • JasperPrint print = JasperFillManager.fillReport(“./informes/miinforme.jasper”,null, c);
    • Realizamos la exportación a formato .pdf haciendo uso de JasperExportManager, e indicándole la ruta dónde se almacenará:
      •  JasperExportManager.exportReportToPdfFile(print, “./informes/miinfore.pdf”);
    • Si queremos que se abra el archivo pdf generado necesitamos utilizar la siguiente instrucción:
      •  File path = new File (“./informes/blanco1.pdf”);
      • Desktop.getDesktop().open(path);
  5. En caso de que utilicemos algún parámetro en el informe, realizamos las siguientes operaciones:
    1. Añadimos la clase Map, que permite almacenar elementos clave:valor:
      • Map parametros = new HashMap();
      • parametros.put(“NOMBRE_PARAMETRO”, ELEMENTO_SWING_QUE_LO_CONTIENE);
      • (Ejemplo de la instrucción anterior: parametros.put(“CIUDAD”,”cmbCiudad.getSelectedItem());
    2. Estos parámetros los añadiremos en la llamada al método fillReport:
      • JasperPrint print = JasperFillManager.fillReport(“./informes/miinforme.jasper”, parametros, c);

Para evitar las excepciones que se pueden producir en la ejecución de estas instrucciones, es recomendable situarlas entre los bloques try-catch.

Podemos ejecutar la base de datos, en caso de que no esté levantada, a través del iReport para la base de datos Sample, desde Ayuda > Samples > Run Sample Database; o desde NetBeans, desde la pestaña de Services, ejecutando la base de datos correspondiente.

Start a Conversation

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *