Ir al contenido principal

IReport + Java - Ejemplo Parte 1


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

Entradas más populares de este blog

GENERAR CÓDIGO AUTO CORRELATIVO – SQL

Ejemplo de Código en  Mysql : donde el campo numero es de tipo  char(10)  y la serie de  char(4) . select          (case             when                 (ordencompra.var_OrdenCompra_Numero = '9999999999')             then                 convert( right(concat('0000',                             (ifnull(ordencompra.var_OrdenCompra_Serie, 0) + 1)),                     4) using latin1)             when (ifnull(ordencompra.var_OrdenCompra_Serie, 0) = 0) then convert( right(concat('0000', 1), 4) using latin1)             else ordencompra.var_OrdenCompra_Serie         end) AS SERIE,         (case             when                 (ordencompra.var_OrdenCompra_Numero = '9999999999')             then                 right(concat((ordencompra.var_OrdenCompra_Numero + 2)),                     10)             else right(concat('0000000000',                         (ordencompra.var_OrdenCompra_Numero + 1)),                 10)        

Sistema de Ventas - Java

Este sistema de ventas esta desarrollado en java, utilizando como editor de lenguaje de programación NetBeans, la cual puedes conseguirlo gratuitamente desde su web oficial :  http://netbeans.org/downloads/index.html . Bueno el sistema no esta terminado pero ayudara a muchos a solucionar sus problemas de desarrollo en java como cargar imágenes a un jpanel desde un directorio, agregar datos jtable, consultas básicas en java conectados directamente a un gestor de base de datos " MYSQL ", que por cierto el scrip de la base de datos lo he subido junto con los archivos del sistema, también hay un ejemplo simple, utilizando reportes en java con ireport y jasperreport. bueno espero que les pueda ayudar en cualquier duda que tenga sobre como utilizar diferentes componentes que tiene java, con la finalidad de poder desarrollar un buen aplicativo que ustedes tengan en mente. Verdad me olvidaba si dese an visualizar el ejemplo de reportes en java, tienes que descargarse el plu

EDITAR, FORMATEAR COLUMNAS DE UN JTABLE

Si eres un aprendiz sistemas en escritorio en java y te topaste con que quisiste editar las columnas de un JTable y encima personalizar sus columnas y agregar diferente tipos de datos, pues te presento una forma de hacerlo… Primer Paso:  Definamos el  DefaulTableModel  y los campos de la tabla que usted desea editar, si no hubiera campos pues, solo quitas la condicional y dejas el  return false ; DefaultTableModel ListaPermiso = new DefaultTableModel() { @Override public boolean isCellEditable(int row, int column) {     if (column == 3) {  return true;  }     return false;  } }; Segundo Paso:  Es formatear el JTable y asignar el DefaultTableModel al mismo. ListaPermiso.setColumnIdentifiers( new String[]{“ID”, “NOMBRE”, “DESC” , });// Aquí definimos la cabecera de la tabla. ((DefaultTableCellRenderer) tbListaPermiso.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER);// Este código es para centrar las cabeceras de la tabla. //de está manera de