Reportes Con Para Metros Jasper Reports

download Reportes Con Para Metros Jasper Reports

of 6

Transcript of Reportes Con Para Metros Jasper Reports

REPORTES CON PARAMETROS http://www.javatutoriales.com/2009/03/creacion-de-reportes-con-jasperrepots-y_30.html Crear proyecto java aplication Reportes con Parametros . y Agrega reporte:

Ahora pasaremos a agregar "Parameters" a este reporte. Los parmetros son valores que usualmente se pasan al reporte desde el programa que crea el "JasperPrint" del reporte (nuestra aplicacin Java) haciendo uso de un "java.util.Map". En este caso pasaremos loos parmetros: nombres, apellidos, cedula, cdigo.

Al igual que con los Fields, para poder hacer uso de un parmetro primero hay que declararlo en el "Report Inspector" (situado en el panel izquierdo del iReport), por lo que nos dirigimos a esta ventana y hacemos clic derecho sobre el nodo "Parameters". Al hacer esto se abrir un men contextual. Seleccionamos la opcin "Add Parameter" (la nica habilitada).

Con esto se agregar un nuevo parmetro llamado "parameter1" de tipo "java.lang.String". Cambiamos en nombre del parmetro en la ventana de propiedades a "miNombre" (recuerden que este nombre es el que deberemos usar desde nuestra aplicacin Java para establecer el valor del parmetro).

Agregamos otro parmetro llamado "autor" de la misma forma que agregamos el de "titulo".

Ahora agregamos los parametros en la banda "Page Header", la cual se repite en la parte superior de cada una de las pginas (en la primer pgina aparece despus del ttulo), arrastrndolo a esta banda.

Si dejamos esta expresin tal y como est ("$P{miNombre}") solo se mostrar en nombre (por ejemplo si nombre es "Juan", solo veremos la palabra "Juan" ). Esto podra no ser claro para quienes revisen este reporte, por lo que queremos indicar de forma explcita que a lo que se refiere el valor de este parmetro es el nombre. Para hacer esto nos dirigimos a la ventana de propiedades de este parmetro (para lo cual debemos tenerlo seleccionado) y buscamos la categora "Text field properties". Ahi se encuentra una propiedad llamada "Text Field Expression" cuyo valor es "$P{autor}".

Lo que haremos es editar esta expresin para anteponer la palabra "Nombre: ". Para hacer esto presionamos el botn "...", con lo que se abrir una ventana que nos permitir editar la expresin. En esta ventana modificamos la expresin "$P{miNombre}" para que quede "Nombre: " + $P{miNombre}. Con esto lo que logramos es que a la cadena esttica "Nombre: " se le concatene el valor de la expresin dinmica "$P{miNombre}". Por lo que ahora el lo que aparecer en la parte superior de cada pgina del reporte ser la cadena "Nombre: Juan".

Efectuamos las mismas acciones para los otros parmetros.

Ahora presionamos el botn "Compile Report" para que se genere el reporte compilado "reporte2.jasper".

Veamos una vista previa del reporte, para esto hacemos clic en la pestaa "Preview". Nos pedir los valores de los dos parmetros. Si colocamos para el parmetro "Nombre" el valor "Diego" y asi para los dems parmetros la vista preview que veremos ser el siguiente:

Ahora veremos cmo pasarle estos valores desde nuestra aplicacin Java, por lo que abrimos nuestro IDE de trabajo, NetBeans. (Agregamos la librera JasperReports) Crearemos un objeto "java.util.Map" que contendr nuestros parmetros. Colocaremos el nombre de los parmetros (en este caso "miNombre" y "miApellido", etc) como llave y sus respectivos valores, "Juan" para el nombre , etc.Map misParametros = new HashMap(); misParametros.put("miNombre", "Diego Armando"); misParametros.put("miApellido", "TobarIbarra"); misParametros.put("miCedula", "1.085.897.837"); misParametros.put("miCodigo", "24036206");

La clase main queda asi: import java.util.Map; import java.util.HashMap; import net.sf.jasperreports.engine.JRExporter; import net.sf.jasperreports.engine.JREmptyDataSource; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.view.JasperViewer; public class ReporteConParameros {

public static void main(String[] args) {

try { JasperReport miReporte = (JasperReport) JRLoader.loadObject("src/reporteconparameros/Reporte1.jasper"); Map misParametros = new HashMap(); misParametros.put("miNombre", "Diego Armando"); misParametros.put("miApellido", "TobarIbarra"); misParametros.put("miCedula", "1.085.897.837"); misParametros.put("miCodigo", "24036206"); JasperPrint jasperPrint = JasperFillManager.fillReport(miReporte, misParametros,new JREmptyDataSource()); JasperViewer miJViewer = new JasperViewer(jasperPrint,false); miJViewer.setTitle("Mi Reporte"); miJViewer.setVisible(true); //exportar a pdf JRExporter exporter = new JRPdfExporter(); } catch(Exception e) { System.out.println("dffhb"); e.getMessage(); e.getLocalizedMessage(); } } }