REPORTE EN JAVA + IREPORT DENTRO DE UN FORMULARIO
Este es un pequeño ejemplo de como trabajar reportes en java, utilizar el ireport ya sea como plugin dentro del Netbeans o externo. los dos funcionan de la misma manera, pero lo que vengo a mostrarles a continuación es como, poder montar un reporte en con extensión .jasper dentro de un Formulario ya sea un JDialogModal, JFrame o un JInternalFrame, hasta en un jpanel. los pasos son muy parecidos. así que le explicare un ejemplo sencillo de como hacerlo.Bueno a continuación veremos como lograrlo, pero para ello tenga en cuenta la secuencia de los pasos ok.
Paso nro 1: Este es el diseño que se quiere lograr.
Paso nro 2: Codificar la clase
package aq.reporte;
import aq.dao.BD;
import java.awt.Dimension;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JDialog;
import net.sf.jasperreports.engine.JRException;
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.view.JRViewer;
/**
* @author Richard
*/
public class rptBalanceGeneral {
private Connection cnn;
public rptBalanceGeneral() {
cnn = BD.getConnection();
}
public JRViewer runRBalanceGeneral(Date fechaApertura,JDialog inicio) {
JRViewer viewer = null;
try {
String master = System.getProperty("user.dir") + "\\src\\aq\\reporte\\rptCuadreCaja.jasper";
if (master == null) {
System.out.println("no encuentro el archivo de reporte maestro");
System.exit(2);
}
JasperReport masterReport = null;
try {
masterReport = (JasperReport) JRLoader.loadObject(master);
} catch (JRException e) {
System.out.println("error cargando el reporte maestro:" + e.getMessage());
System.exit(3);
}
Map parametro = new HashMap();
parametro.put("fechaApertura", fechaApertura);
JasperPrint jasperPrint = JasperFillManager.fillReport(masterReport, parametro, cnn);
if (jasperPrint.getPages().isEmpty() == false) {
viewer = new JRViewer(jasperPrint);
viewer.setOpaque(true);
viewer.setVisible(true);
viewer.setZoomRatio(Float.parseFloat("0.99"));
viewer.setSize(new Dimension(1050, 580));
viewer.setLocation(10, 100);
inicio.getContentPane().add(viewer);
inicio.pack();
}
} catch (Exception j) {
System.out.println("mensaje de error:" + j.getMessage());
} finally{
try {
cnn.close();
} catch (SQLException ex) {
System.out.println("mensaje :" + ex.getMessage());
}
}
return viewer;
}
}
Paso nro 2: Codificar el Boton para cargar el reporte dentro del formulario.
Nota: Tener en cuenta la declaración de las variables jvRprtbgeneral y la clase rptBalanceGeneral().
private rptBalanceGeneral rptbgeneral;
private JRViewer jvRptbgeneral;
Espero que les sea de mucha ayuda :), y les sirva para sus proyectos que están iniciando :), ya que este ejemplo no solo carga el reporte dentro de un formulario sino, que también valida la si el reporte hay documento y te envía un mensaje.
Comentarios
Publicar un comentario