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
Mario 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?
Francisco 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 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 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 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

Un ejemplo sencillo de Refactorización y Genericos

Un ejemplo sencillo de Refactorización y Genericos

public class Refactorizador<K, V> {

    public V copyFromBeans(K k, V v) {
        try {
            Class claseK = k.getClass();
            Class claseV = v.getClass();

            Method[] metodosK = claseK.getMethods();

            for (Method method : metodosK) {
                if (isGetter(method)) {
                    Method metodoGetK = claseK.getDeclaredMethod(method.getName());
                    Method metodoSetV = claseV.getDeclaredMethod(changeGetBySet(method.getName()), method.getReturnType());
                    metodoSetV.invoke(v, metodoGetK.invoke(k));
                }

            }

        } catch (Exception e) {
            System.out.println("refactorizador() " + e.getLocalizedMessage());
        }
        return v;
    }

     public  boolean isGetter(Method method) {

        if (!method.getName().startsWith("get")) {
            return false;
        }
        if (method.getName().startsWith("getCla…

Apache NetBeans

Apache NetBeans
https://wiki.apache.org/incubator/NetBeansProposal

Si, algo que se esperaba desde hace muchos años, una liberación de NetBeans, para convertirlo en un IDE más abierto, y que permita mayor contribución de la comunidad y de otras empresas, ya inicio su primera etapa en la incubadora de la Fundación Apache.
Las implicaciones que esto conlleva son múltiples por una parte esta la evolución de NetBeans, al permitir que más contribuyentes puedan aportar a sus mejoras, también garantiza que aquellas instituciones no sientan que es una sola organización la que controla la evolución. A las comunidades les permite sentirse que participan de un proyecto con todas las garantías que ofrece la Fundación Apache.

Muchos pensaran que Oracle esta dejando morir el proyecto, la realidad es diferente, hay muchos ingenieros que están participando del proyecto en la fundación Apache.
Es una noticia excelente para los desarrolladores, instituciones, empresas que utilizan NetBeans , se estima qu…

JGMongo con JEE7 +(Primefaces+MongoDB+GlassFish)

Mostrare un ejemplo básico del uso de JGMongo, (Java Mapper Object para MongoDB), en un entorno JavaEE 7.

Desarrollaremos una simple aplicación maven Java Enterprise Edition, que utiliza la base de datos NoSQL MongoDB, NetBeans como IDE de Desarrollo, Java Server Faces como Framework en conjunto con PrimeFaces. Es un ejemplo muy básico donde se almacena los datos de los países en una colección llama paises La vista final sera la siguiente un formulario para captar los datos

Y una pagina donde se muestran los países almacenados en la base de datos.
Pasos previos: 1. Instalar MongoDB 2. Crear el proyecto Maven 3. Agregar la dependencia al archivo pom.xml   <repositories> <repository>    <id>jitpack.io</id>    <url>https://jitpack.io</url> </repository> </repositories>
    <dependency>    <groupId>com.github.avbravo</groupId>    <artifactId>jgmongo</artifactId>    <version>0.1</version> </dependency&…