Para implementarlo use los siguientes recursos:
- Ireport 4.7: Para crear el reporte y compilar a .jasper, en la propiedades del reporte se debe indicar lenguaje java. (Por defecto esta seleccionado Groovy)
- Las librerias utilizadas son:
- commons-beanutils-1.8.2.jar
- commons-collections-3.2.1.jar
- commons-digester-2.1.jar
- commons-javaflow-20060411.jar
- commons-logging-1.1.jar
- iText-2.1.7.jar
- jasperreports-4.7.1.jar
- jasperreports-fonts-4.5.0.jar
- jfreechart-1.0.17.jar
- jxl-2.6.10.jar
- png-encoder-1.5.jar
- poi-3.7-20101029.jar
- Creamos una clase con el metodo para crear los reportes PDF:
import java.util.Map;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperExportManager;
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;
/**
*
* @author lcampos
*/
public class UtilJasper {
final public static void repPdf(
Map parametro,
String _rutaJasper,
String _rutaPdf
) {
JasperPrint jasperPrint = null;
JasperReport masterReport = null;
try {
masterReport = (JasperReport) JRLoader.loadObject(_rutaJasper);
jasperPrint = JasperFillManager.fillReport(masterReport, parametro, Mdi.cn);
JasperExportManager.exportReportToPdfFile(jasperPrint, _rutaPdf);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Error al Generar Reporte..");
}
}
}
Observacion: El parametro Mdi.cn, hace referencia a la conexion a la base de datos via JDBC.
El método se llama de la siguiente manera:
//CREAR PDF
Map _parm = new HashMap();
_parm.put("_parm1", parametro1);
_parm.put("_parmN", parametroN);
UtilJasper.repPdf(_parm, _ruta, _urlPdf);
Donde:
_parm: Es el conjunto de parametros que estan definidos es nuestro reporte.
_ruta: Es el directorio en donde se encuentra el archivo .jasper (Fuera del SRC)
_urlPdf: Es el directorio en donde se guarda el PDF creado
Para abrir el PDF creado usaremos el siguiente codigo:
//ABRIR PDF
try {
File path = new File(_urlPdf);
Desktop.getDesktop().open(path);
} catch (IOException ex) {
ex.printStackTrace();
}
No hay comentarios:
Publicar un comentario