Reportes en java con Jasper Reports y iReport

04 octubre 2007 | | |

Jasper Reports es una libreria para generar reportes en java esta escrita en java y es OpenSource.Para utilizarla es necesario generar un archivo xml con las especificaciones del reporte, que después puede ser impreso o exportado a varios formatos que soporta la librería( PDF, XML, HTML, CSV, XLS, RTF, TXT).

Para evitarse dolores de cabeza es mejor usar un editor gráfico para hacer los reportes en este caso es iReports muy sencillo de utilizar y practico

Ejemplo de como implementar el reporte generado en iReport en java

Nota*
Si marca algún classnofound es porque no se encuentran todas las librerías necesarias dentro del proyecto así que importenlas para que no tengan problemas

import java.sql.*;
import javax.swing.JOptionPane;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.JasperReport;

public class reporte {

public reporte() {
}

public static Connection conexion() {
Connection jdbcConnection = null;
try{

Class.forName("com.mysql.jdbc.Driver");
jdbcConnection = DriverManager.getConnection("tu conexion");
}catch(Exception ex) {
String Msg = "No se puede conectar ala base de datos: " + ex.getMessage() + " " + ex.getLocalizedMessage();
System.out.println(Msg);
}
return jdbcConnection;
}

public static void Report(){
JasperViewer visor=null;
JasperDesign jasperDesign=null;
JasperReport jasperReport=null;
Connection jdbcConnection=null;
JasperPrint jasperPrint =null;
try{
jasperDesign = JRXmlLoader.load("reportes/reporte.jrxml");//Se carga el reporte suponiendo que esta en un subdirectorio
jasperReport = JasperCompileManager.compileReport(jasperDesign);//Se compila
jdbcConnection = conexion();//Se obtiene la conexion ala base
jasperPrint = JasperFillManager.fillReport(jasperReport,null,jdbcConnection);
visor = new JasperViewer(jasperPrint,false); //Creamos un visor para previsualizar el reporte
visor.setTitle("Reporte");
visor.setVisible(true); //Lo hacemos visible
}catch(Exception ex) {
JOptionPane.showMessageDialog(null,"Error leyendo el reporte"+ex);
}
}
public static void main (String[] args){
new reporte().Report();
}
}


Jasper Report
http://jasperforge.org/sf/projects/jasperreports
iReport
http://sourceforge.net/projects/ireport/

5 comentarios:

  1. TNT says:

    gracias por tu codigo es justo lo q necesito... solo un detalle .. me da error en la siguiente linea

    jasperPrint = JasperFillManager.fillReport(jasperReport, jdbcConnection);


    symbol : method fillReport(net.sf.jasperreports.engine.JasperReport,java.sql.Connection)
    location: class net.sf.jasperreports.engine.JasperFillManager
    jasperPrint = JasperFillManager.fillReport(jasperReport, jdbcConnection);
    1 error

    Espero puedas ayudarme

  2. Mike says:

    Corregido XD

  3. Anónimo says:

    me sirvio mucho gracias

  4. Anónimo says:

    soy nuevo en java y estoy realizando una aplicación y necesito realizar reportes con gráficas seria el mismo código?
    y me puedes decir de donde descargo las librerías para esto
    mi correo es cesar_26mt@hotmail.com
    agradezco su ayuda

  5. Anónimo says:

    Ola, ando buscando como hacer, para que el visor de reportes cuando se abra, ocupe toda la pantalla, es decir, quede maximizado.
    Res: racso534@hotmail.com