Reporte complejo

Necesito hacer un reporte (jasreport)que va modificando el query segun vaya seleccionando items en disitintos combobox
El asunto es que se va concatenando la query , pero no se como realizarla la modificacion del string query en jasperreport

A esto le llamo reporte complejo, algún experto en reportes que me de una ayuda

Saludos

Gracias por su apoyo en mis 14 semanas como aprendiz de java

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

puedes colocar el query?

estas usando el diseñador de query? del ireport... o el query es diseñado por ti, de igual forma podrias colocar el query q quieres usar?

Modificar queryString de un reporte

Necesito realizar un reporte en jasperreport, donde se le pasa solo una consulta dependiendo en la condicion que entre, como puedo modificar el query String de un reporte?

SELECT * FROM ventas WHERE 1=1  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
SELECT * FROM ventas WHERE 1=1 AND cliente='JAMIL ENRIQUEZ'  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
SELECT * FROM ventas WHERE 1=1 AND cliente='JAMIL ENRIQUEZ' AND tipo='Cayena'  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
SELECT * FROM ventas WHERE 1=1 AND cliente='JAMIL ENRIQUEZ' AND variedad='Piña de primera' AND tipo='Cayena'  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
SELECT * FROM ventas WHERE 1=1 AND cliente='JAMIL ENRIQUEZ' AND variedad='Piña revuelta'  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
SELECT * FROM ventas WHERE 1=1 AND tipo='MDDOS'  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
SELECT * FROM ventas WHERE 1=1 AND variedad='Piña de primera' AND tipo='MDDOS'  AND (fecha BETWEEN '2011-07-01' AND '2011-07-28' )
Imagen de neko069

Parámetros

En el iReports tienes que crear tus parámetros, que son los que reciben valores a la hora de la creación de tu reporte, y en la parte de código, cuando invocas al reporte, le pasas un Map que contiene tanto el nombre de los parámetros(que debe ser el mismo que diste de alta en el reporte) como el valor, en pares llave-valor

La duda es

Hay que realizar un reporte por cada consulta?
hay una forma de modificar el queryString del reporte?

Imagen de neko069

RE:La duda es


Hay que realizar un reporte por cada consulta?

Sí, por cada consulta, es un reporte distinto, si quieres hacer un sólo reporte con varias consultas, considera los subreportes, que son reportes independientes, incrustados en uno general.

hay una forma de modificar el queryString del reporte?

No, ya cuando construyes tu reporte, en ése sentido es estático, si quieres cosas más dinámicas, considera utilizar iText, con ésa librería puedes crear clases que creen tus reportes de forma dinámica, PERO es demasiado talachudo, lo que te puedo decir es: diseña tu reporte, a modo que metas subreportes, te evitarás dolores de cabeza innecesarios..

Solucionado

Acabo de encontrar en stackoverflow un codigo que ayuda a modificar el queryString y funcional muy bien
y te olvidas de los subreportes.

Ver link stackoverflow

Imagen de neko069

.... No veo la liga...

.... No veo la liga...
Ah, perdón, yo soy el ciego!

UPDATE: Leí el artículo de la liga, y otro más que viene en otra liga de ése foro, y me queda la duda, quieres meter el SQL por código, porque no hallaste como meterle parámetros a tu reporte, o porque vas a modificar la consulta en tiempo de ejecución del reporte?

Modifico la consulta en tiempo de ejecución

Estoy modificando la consulta en tiempo de ejecución.

Saludos

Y con JPA???

Hola amigos
Una Pregunta ????
Lo que tu haces jamilMX como lo puedo hacer con JPA????
La verdad es que ya he revisado el manual de EclipseLink el cual estoy utilizando para la persistencia pero no me muestra ningún dato

Por favor necesito una pequeña ayuda Gracias.....

modificar la query en runtime?

Te refieres a modificar la consulta en tiempo de ejecucion.?

Cuentame a que te refieres no entendí.

Exactamente

Si lo que quiero hacer es lo que tu haces y esta en el link que indicas con jdbc pero necesito hacer con JPA
X fa necesito una ayuda
Gracias....

Ya esta

X si a alguien le sirva lo que hice fue
Crear un
Context contexto = new InitialContext();
DataSource ds = (DataSource) contexto.lookup("jdbc/acceso"); el (jdbc/acceso) esta creado en el Pool de Conexion en Glassfish
Connection conexion = ds.getConnection();

y asi obtengo el objeto de conexion y logre hacer el reporte

Aunque no creo que sea muy eficiente.

Saludos...