En este post explicaré cómo crear informes con la herramienta JasperReports. En este tutorial enseñaré cómo usarlo en la versión JasperReports 16.0. Es importante usar las versiones de las diferentes API-JAR (librerías) que pongo en este tutorial. Para hacer esto he empleado Java 8 y NetBeans 8.0, pero también sirve NetBeans 12. Además de estas librerías no debes de olvidar las de MySQL, además de arrancar nuestro server MySQL.
![](https://infogonzalez.com/wp-content/uploads/2021/02/Captura-de-pantalla-55-copia.png)
Las diferentes librerías que he empleados para hacer estos pasos son las siguientes:
- commons-beanutil.jar
- commons-collections.jar
- commons-digester.jar
- common-logging.jar
- itext-.jar (para exportar a PDF)
- poi.jar (para exportar a XLS)
- jxl.jar (para exportar a XLS)
- jfreechart.jar (para graficos)
- jdt-compiler.jar
En nuestro proyecto de NetBeans debe de aparecer los siguientes imports. Es importante incluirlos ya que en caso de faltar alguno no funcionará.
import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.Connection;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.extensions.ExtensionsEnvironment;
import java.io.PrintWriter.;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import java.util.logging.;
import net.sf.jasperreports.engine.JasperExportManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperPrintManager;
//import net.sf.jasperreports.engine.export.JExcelApiExporter;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.xml.JRXmlWriter;
El código para hacer funcionar JasperReports, dentro del Main, método o función en Java debe de ser el siguiente:
Map paramMap = new HashMap();
JasperReport report = (JasperReport) JRLoader.loadObject(miInforme);
JRXmlWriter.writeReport(report, "destino.jrxml", "UTF-8");
JasperReport reporte = JasperCompileManager.compileReport("destino.jrxml");
System.out.println("aqui");
JasperPrint print = JasperFillManager.fillReport(reporte, parameters, conn);
JasperExportManager.exportReportToPdfFile(print, "salida.pdf");
System.out.println("Informe impreso");
Map parameters = new HashMap();
String archivo = null;
File miDir = new File(".");
miDir.getCanonicalPath();
archivo = miDir.getCanonicalPath() + "\\DepartamentosG.pdf";
informe = miDir.getCanonicalPath() + "\\DepartamentosG.jrxml";
File miArchivo = new File(archivo);
File miInforme = new File(informe);
Pues voy dejando hasta aquí mi tutorial de hoy, espero que os haya gustado y haya sido de utilidad.
FUENTES
- http://chuwiki.chuidiang.org/index.php?title=Ejemplo_b%C3%A1sico_con_Jasper_Report