En este publicación les mostrare como realizo mis reportes de una forma practica y dinámica. Para llamar a un reporte desde un formulario solo envió dos parámetros: el nombre del jasper y la lista de parámetros, lo cual me facilita bastante la programación. Todo el código estará en mi repositorio github.
*Base de datos:
CREATE TABLE public.materiales
(
id_materiales integer NOT NULL DEFAULT nextval('materiales_id_materiales_seq'::regclass),
nombre character varying(200),
descripcion character varying(300),
estado boolean,
CONSTRAINT pk_materiales PRIMARY KEY (id_materiales)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.materiales
OWNER TO postgres;
CREATE TABLE public.persona
(
codigo integer NOT NULL DEFAULT nextval('persona_codigo_seq'::regclass),
nombres_completos character varying(200),
edad integer,
direccion character varying(300),
dni character(8),
CONSTRAINT pk_persona PRIMARY KEY (codigo)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.persona
OWNER TO postgres;
public void gReporte(String nombreArchivoJasper) throws ClassNotFoundException, SQLException, JRException {
try {
URL in = this.getClass().getResource(nombreArchivoJasper);
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(in);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, this.conexionReporte());
JasperViewer view = new JasperViewer(jasperPrint, false);
view.setVisible(true);
} catch (JRException ex) {
throw ex;
}
}
Código: https://github.com/DarwinOmar/iReportJava.git
Descargar desde mega: https://mega.nz/#F!XNRxTAJC
Clave de cifrado: !doX7yEAgNyhZzh_XwXa_iA