Skip to main content

Parametros en iReport

Hace unos dias un amigo me comento, que necesita utilizar reportes en sus aplicaciones en java, le comente de que la mejor forma seria usando JasperReports.

Utilizamos el iReport que nos ofrece una interfaz muy agradable para el diseño de los reportes.

Explicare brevemente como utilizar parametros en los reportes.
Primero seleccionamos en el menu Data la opcion Report Query

En el codigo SQL agregamos el parametro P_IDMUNICIPIO. $P indica que es un parametro. {P_IDMUNICIPO} nos indican el nombre del parametro.

Ahora nos ubicamos en la barra de parametros

Damos click derecho y escojemos Add Parameter

En la casilla, Parameter Name escribimos P_IDMUNICIPIO


En nuestro programa Java, le asignamos el valor al parametro
params.put("P_IDMUNICIPIO", sesion.getIdmunicipio());

Aqui podemos ver la ejecucion del reporte.

Comments

Anonymous said…
Hola sabes no puedo enviar dos parametros osea lo que quiero hacer es preguntar por el nombre y por la edad la consulta si la puedo hacer el problema es que no se como enviarle los valores desde java me explico que en un jTextfield ingreso el nombre que quiero buscar y en otro jTextfield la edad y que me muestre los alumnos con ese nombre y con la edad que pregunte si tienes dudas me escribes oprfa necesito hacer eso

seinfeld1983@gmail.com
Anonymous said…
Hola necesito poder consultar por mas de un paprametro me explico ya hice que preguntara por nombre y edad de la tabla alumnos por ej ahora necesito pasarle esos parametros desde java porfa que un jTextfield ingrese el nombre y en otro jTextfield ingrese la edad de los alumnos que busco no puedo hacer mas de una consulta al reporte porfa si sabes ayudame ya he probado de todas formas y si prefieres te envio mi proyecto y lo pruebas mi correo es

seinfeld1983@gmail.com

gracias necesito con urgencia poder hacer mas de una consulta enviando los valores de los parametros desde java
Anonymous said…
Hola necesito poder consultar por mas de un paprametro me explico ya hice que preguntara por nombre y edad de la tabla alumnos por ej ahora necesito pasarle esos parametros desde java porfa que un jTextfield ingrese el nombre y en otro jTextfield ingrese la edad de los alumnos que busco no puedo hacer mas de una consulta al reporte porfa si sabes ayudame ya he probado de todas formas y si prefieres te envio mi proyecto y lo pruebas mi correo es
gracias necesito con urgencia poder hacer mas de una consulta enviando los valores de los parametros desde java
Anonymous said…
Hola necesito poder consultar por mas de un paprametro me explico ya hice que preguntara por nombre y edad de la tabla alumnos por ej ahora necesito pasarle esos parametros desde java porfa que un jTextfield ingrese el nombre y en otro jTextfield ingrese la edad de los alumnos que busco no puedo hacer mas de una consulta al reporte porfa si sabes ayudame ya he probado de todas formas y si prefieres te envio mi proyecto y lo pruebas mi correo es

seinfeld1983@gmail.com

gracias necesito con urgencia poder hacer mas de una consulta enviando los valores de los parametros desde java
Anonymous said…
¡Por el Amor de Dios! ¡que alguien le explique al de los comentarios de arriba que existen las comas!
Anonymous said…
Es posible obtener un Jasper Report sin conectarse a una base de datos ? Si no obteniendo los datos de una JTextTable o otra cosa?
Unknown said…
Más vale tarde que nunca...

Para mandar varios parámetros, lo único que tienes que hacer es primero, llenar un Map, como lo muestra el ejemplo, luego, pasar ese Map a la sentencia fillReport(JasperReport, Map).

Obviamente, y como lo explica el ejemplo, tendrías que craer del lado de Jasper los parámetros necesarios.
Anonymous said…
amigo muy bueno el post, pero las imagenes son muy pequeñas y no puedo ver el codigo java, asi q no entiendo como poner el parametro, no se de donde sale el metodo put.
Anonymous said…
HOLA , EN EL REPORTE DESDE LA ABSE DE DATOS UN DATO VIENE NULL, ME MUESTRA LA PALABRA NULL COMO PODRÍA PONER EN SU LUGAR UN GUION O ALGO
OCTAVIO ROBLETO said…
Buenos dias amigo, una pregunta, soy nuevo en jasperreport y en ireport y he estado tratando de mandarle como parametro parte de una sentencia sql por ejemplo en el codigo sql del ireporte tengo select * from tabla y me gustaria mandarle el where si lo hubiere los where con los and, por que esto? si hago esto select * from tabla where columna=$P{parametro} y la sentencia no devuelve valores (es null), quisiera que me devolviera todos los registro de la tabla por eso no se como hacerlo desde el java al jasperreport porque lo que me dice es que el reporte no tiene datos o si hago estoselect * from tabla $P{parametro} me da error porque me gustara que ese parametro fuera todo el string de where columna=cualquiercosa, y asi sucesivamente si lo necesitara y si no mando nada seral solo el select sin where, espero me haya explicado lo suficiente y que me puedas ayudar
Saludos.
OCTAVIO ROBLETO said…
Mi duda es la siguiente:
Tengo un reporte de jasperreport diseñado en ireport versiones 4.02, mi idea principal es pasar un parámetro desde JAVA al reporte.jasper, esto yo lo sé hacer , mi inquietud es cuando ya esta armado por ejemplo “ select * from tabla” el reporte me develve todos los registros, ahora bien si yo quiero filtrar el select seria algo asi “select * from tabla where columna=$P{parametro} ” pero si no quiero un where me devuelve vacio, mi idea que no funciona en el ireport seria algo asi “select * from tabla $P{parametro} ” ya que da error de sintaxis, lo que quisiera es algo así:
Si $P{parametro} =””;
Sentencia sql del jasper queda asi “select * from tabla”
Si $P{parametro} =” where columna=1”;
Sentencia sql del jasper queda asi “select * from table where columna=1”
Si $P{parametro} =” where columna=1 and columna2=masculino”;
Sentencia sql del jasper queda asi “select * from table where columna=1 and columna2=masculino”, y asi dependiendo lo que quiera mandar.
Espero me ayuden o me den una solución parecida gracias.
OCTAVIO ROBLETO said…
Mi duda es la siguiente:
Tengo un reporte de jasperreport diseñado en ireport versiones 4.02, mi idea principal es pasar un parámetro desde JAVA al reporte.jasper, esto yo lo sé hacer , mi inquietud es cuando ya esta armado por ejemplo “ select * from tabla” el reporte me develve todos los registros, ahora bien si yo quiero filtrar el select seria algo asi “select * from tabla where columna=$P{parametro} ” pero si no quiero un where me devuelve vacio, mi idea que no funciona en el ireport seria algo asi “select * from tabla $P{parametro} ” ya que da error de sintaxis, lo que quisiera es algo así:
Si $P{parametro} =””;
Sentencia sql del jasper queda asi “select * from tabla”
Si $P{parametro} =” where columna=1”;
Sentencia sql del jasper queda asi “select * from table where columna=1”
Si $P{parametro} =” where columna=1 and columna2=masculino”;
Sentencia sql del jasper queda asi “select * from table where columna=1 and columna2=masculino”, y asi dependiendo lo que quiera mandar.
Espero me ayuden o me den una solución parecida gracias.
Andy said…
Bueno en el reporte que se visualizará la $p.... es un parametro que se debe asignar cuando haces consultas, pero si solo quieres que te muestre solo una columna haces:
'select campo_de_tabla from nombre_de_tabla'
Andy said…
Bueno en el reporte que se visualizará la $p.... es un parametro que se debe asignar cuando haces consultas, pero si solo quieres que te muestre solo una columna haces:
'select campo_de_tabla from nombre_de_tabla'
PORFAVOR QUIERO TODO EN NETBEANS MOSTRAR EL REPORTE ENVIANDO EL PARAMETRO NO SE VE EN LA IMAGEN...
Anonymous said…
Que tal Amigo.
Me gustaría preguntarte como comparar un parametro y de esta forma filtrar el query. Es decir.
Necesito un reporte de bitacora; si el parametro trae "ALL" significa que debe presentar la información de todos los usuarios; pero si no trae "ALL" debe de filtrar el reporte de acuerdo al usuario que trae en el parámetro.
Como puedo hacer esto?

Saludos y gracias de antemano.
Anonymous said…
soy nueva en esto ... he intentado hacer parametros que me busquen por edad, es decir que me muestren los alumnos q estan en ese rango de edad .... pero no me sale ... me sale "reporte sin paginas"

espero su ayuda ... mi correo es : mazziel1993@hotmail.com

atte gracias

Popular posts from this blog

Tutorial básico de aplicaciones Web con NetBeans parte 1

NetBeans ofrece un excelente soporte para el desarrollo de aplicaciones Web, en esta ocasión lo haremos utilizando el Framework Java Server Faces 2.0. En el Menu Seleccionamos Nuevo->Proyecto y luego en Categorias Java Web y en tipo de Proyectos Web  Application indicamos el nombre del proyecto Seleccinamos el servidor Web, usamos GlassFish ya que este soporta EJB3.0 y JSF 2.0 Framework Java Server Faces El IDE genera el esquelto del proyecto Web Pages   almacenamos las paginas .html, xhtml, jsf, los archivos de recursos, los scripts .js, imagenes Source Packages    Son las clases Java  Test Packages    Son las clases que usamos para los Test Libraries     Tenemos las bibliotecas de Java y GlassFish necesarias para ejecutar la aplicación Web. Test Libraries     Están las bibliotecas usadas para los test  Configuration Files    Archivos de configuración de la aplicación. Ejecutamos la...

Incrementar Memoria NetBeans

Algunas veces necesitamos incrementar la memoria para un mejor rendimiento. http://www.netbeans.org/community/releases/55/uml-download.html Este es un ejemplo para UML. Descripción en ingles. Increasing Memory Settings (applicable to all builds) The default memory settings for NetBeans should be increased for UML projects. If you have the available memory, Locate your NetBeans installation directory ($install_dir). This can be found by starting up NetBeans and selecting Help -> About then select the Detail tab. Edit the $install_dir/etc/netbeans.conf file. Find the line defining netbeans_default_options . Increase the maximum memory attribute to -J-Xmx512m. If you experience heap overflows while working with larger files, you should increase this value further.

Cambiando el estado de un checkbox

Cambiando el Estado de un CheckBox Algunas veces deseamos controlar el estado de un checkbox o cambiarlo segùn determinadas condiciones. Pasos: 1. Creamos un proyecto Web. 2. En el diseñador agregamos un checkbox y dos botones. * Dar click derecho en el checkbox y luego seleccionar Add Binding Attribute, para agregar los atributos al checkbox, de manera que los podamos usar en nuestro código. Generando automáticamente private Checkbox checkbox1 = new Checkbox(); public Checkbox getCheckbox1() { return checkbox1; } public void setCheckbox1(Checkbox c) { this.checkbox1 = c; } 3.Damos click derecho en el botón Habilitar, y seleccionamos Edit Action Event Handler. A continuación, agregamos el código: this.checkbox1.setSelected(true);, el método setSelected con valor true, marca el checkbox como seleccionado, y un valor de false, quita la marca. public String button1_action() { // TODO: Process the action. Return value is a navigation // ...