Reporte Múltiples Parámetros

Le hago está pregunta porque llevo un tiempo investigando y no consigo la solución o por lo menos no la solución más adecuada.

Estoy realizando un reporteador, para lo cual utilizo la librería jasper report y utilizo ireport para crear los reportes, este programa (por si no lo conoces), lo que hace es que genera un archivo xml con extensión .jasper donde se almacena el diseño del reporte y el query sql. A través del lenguaje java (jsp) le paso los parámetros y se ejecuta el reporte, el cual en mi caso genera un pdf (esta librería permite generar el reporte en diferentes formatos).

El caso es el siguiente: debo generar una cantidad grande de reportes y hay reportes que deben tener la misma estructura pero se generan partiendo de diferentes parámetros, por ejemplo por el id, los que están por ejemplo entre el id >0 y <100, por fechas desde-hasta, en fin hay algunos casos que puedo tener hasta 10 o más formas diferentes de filtrar el mismo reporte. Esto hasta donde se no lo puedo resolver con una sola consulta, me dirás si me equivoco, pero creo que necesitaría una consulta sql diferente por cada caso, como la consulta se almacena dentro del xml no encuentro forma de validar que consulta se va a ejecutar en cada caso. Podría generar un .jasper para caso, pero aparte de que serian demasiados, la idea es que un usuario pueda generar la plantilla y usarla para generar determinado reporte, lo complica un poco la situación.

¿Tienes alguna idea o sugerencia de como podría resolver este problema? Ah olvidaba decirte que pensé hacerlo con procedimientos almacenados, pero aún estoy leyendo sobre el tema y he hecho algunas pruebas pero no he tenido buenos resultados y además por lo que leí, entiendo que un procedure solo puede devolver un registro, lo cual me hace dudar de que pueda encontrar la solución por esa vía.

Respuesta
2

Verdaderament eno e trabajado con estas librerías, por lo que es posible que no sea de mucha ayuda, y de java se cosas básicas, mis conocimientos están mas orientados a Php, Visual, entre otros.

Pero, creo que leyendo lo que me mencionas, concuerdo contigo en que debes realizar una consulta sql para cada caso, se supone que esto viene dado por ciertos parámetros, por lo que yo al menos haría mediante validaciones IF ej:

if (fecha >=  xxxx and  fecha) {

consulta_sql = "select ......";

}else if ($xxx as xxx .... aa...){

consulta_sql = "select ......";

}else if (aa > aaa and  b < aaa ) {

consulta_sql = "select ......";

}

Tomando finalmente el paremtro de esa consulta_sql, y esa consultarla a la bd.

1 respuesta más de otro experto

Respuesta

¿Pudiste solucionar el problema?.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas