Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Jasper Report + iReport + NetBeans 4 (http://www.forosdelweb.com/f45/jasper-report-ireport-netbeans-4-a-280528/)

Kangulo 05/05/2005 12:05

Para Wifer
 
Hola Wifer, aparentemente no veo ningun problema en tu codigo, si tu reporte corre en iReport perfectamente y en JSP no, entonces quedaría por descartar las versiones de los archivos en ambas partes, porq que lo que puede estar sucediendo es que lo estas compilando con una version pero lo intentas visualizar con otra, lo cual, por experiencia, da problemas.

Por lo tanto quisiera que verificaras que los *.jar sean los mismos tanto en los directorios iReport\lib como en Tomcat\common\lib


Basicamente estos son los archivos que yo utilizo y q necesitas que sean de igual versión en ambas partes son:

poi-2.0-final-20040126.jar
itext-1.2.jar
jasperreports-0.6.5.jar
mysql-connector-java-3.1.6-bin.jar (En tu caso sería el de Oracle)

luego que las versiones de estos archivos sean iguales reinicia el servidor y prueba a ver y me comentas.

Suerte

Kangulo 05/05/2005 12:27

Como Pasar la Cosulta completa como parametro?
 
DestruKtor, yo lo intente varias veces pero no pude solucionarlo, el problema es que tienes que tener un parametro tipo String, pero al enviarlo como parametro y al ser de este tipo queda el query de esta manera:

'Select * from...'

y lo que pasa entonces es que el ireport no lo toma como un query sino como un literal o string lo cual no es lo q queremos,
asi que, mi solución fue que creé tres reportes, en mi caso, como filtros en el sql tengo y de acuerdo a los filtros seleccionados en el jsp mando a ejecutar uno u otro pagina que llama a uno u otro reporte y le paso los parametros.

Ejemplo de un query sencillo con dos parametros:

tengo un reporte para paises
tengo otro para ciudades
tengo otro para ciudades y paises

se que no es una solucion muy inteligente que se diga, porq realmente debería ser un solo reporte, pero debido a la premura del requerimiento me vi en la obligación de hacerlo de esta manera, y cumple con la funcion, la gran desventaja de esto es, como todo sabemos, el mantenimiento del reporte, si me mandan a agregar, modificar o quitar algo en el reporte, tengo que hacerlo a los tres reportes en vez de uno.

Por eso la importancia y mi interes de que si alguien consigue como realizar esto se lo agradeceria ya q me sería de mucha utilidad.

Saludos y Suerte.

MMF 06/05/2005 05:04

DestruKtor, Kangulo

Veo que todos teníamos el mismo problema: aparecen las dichosas comillas siples que engloban al parámetro y provocan que falle la query.

Creo que he encontrado la solucion en la "JasperAssistant User Guide": si en lugar de usar $P{sql_query} usais $P!{sql_query} desaparecen las comillas por lo que ya no debería producirse el error.

Saludos desde España

stavera 06/05/2005 07:59

Jsp
 
Acano mira mi jsp para que verifique donde esta el error:

File reportFile = new File(application.getRealPath("/reportes/oto.jasper"));
Map parameters = new HashMap();

byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), parameters, conn);

response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

al principio se presentaban dos errores que eran el mismo tuyo y porque no encuentra la ruta con tu la estas invocando y el otro era en el parametro, ya que habia que definirlo haci no tuviera ninguno.

Espero que te sirva, si alguna duda me cuentas.

:adios:

KirsonX 06/05/2005 08:31

PDF Vacio
 
Hola a todos, estoy ejecutando mi reporte con el siguiente ambiente
BDD Oracle.
El archivo jasper esta almacenado en una tabla es recuperado por una funcion y enviado hasta el front end por medio de un middle tier construido con EJB. La pagina se ejecuta perfectamente, sin embargo el mismo reporte que al correrlo desde una aplicacion java o desde ireports se presenta bien, al ejecutarlo en la JSP se despiegla vacio, es decir sin contenido?
A alguno de ustedes le ha pasado algo similar o tiene alguna idea?
Muchas gracias por su ayuda

stavera 06/05/2005 09:09

Mostrar reporte en el visualizador de iReport
 
Hola Destructor tengo una pequeña pegunta, para mostrar el reporte por medio el visor propio de jasperreport al principio del foro a laraos le distes la indicacion de que con la funcion JasperViewer() y pasandole algunos paramentros lo podría hacer, me gutaria saber como se le envian estos paramentros, estoy trabajando con un jsp.

Muchas gracias por tu ayuda.

:adios:

marcelo_v 08/05/2005 22:38

Hola a todos:
Yo tb estoy utilizando el jasperReport, al igual q el iReport, utilice el codigo q esta arriba, si me salen los reportes cuando el reporte no necesita parametro, pero los q tienen parametro, me sale error:
java.io.FileNotFoundException: D:\PROYECTO\Ferreteria\src\ferreteria\Reportes\R_N otaCompra.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObje ct(JRLoader.java:74)
at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:162)

Espero q me puedan ayudar

acano 09/05/2005 01:05

No entiendo porque, sigo sin solucionarlo
 
Por favor Destruktor aver si tu o alguien puede ayudarme.
Antes de nada darte las gracias STAVERA pero me sigue dando el mismo error, teniendo exactamente el mismo codigo, no lo entiendo.
Este es mi codigo:

File reportFile = new File(application.getRealPath("/reports/EntradasN.jasper"));

Map parameters = new HashMap();

byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (),parameters,conn);

response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();




Y esta es la excepcion q levanta:

Error:Error loading object from file : C:\proyectos\Pruebas\PruebasIReports\public_html\E ntradasN.jasper


No tengo ni idea pq puede ser, porfavor agradeceria mucho si alguien pudiera ayudarme.

Kangulo 10/05/2005 05:34

Pasar Query Completo por Parametro
 
Cita:

Iniciado por MMF
DestruKtor, Kangulo

Veo que todos teníamos el mismo problema: aparecen las dichosas comillas siples que engloban al parámetro y provocan que falle la query.

Creo que he encontrado la solucion en la "JasperAssistant User Guide": si en lugar de usar $P{sql_query} usais $P!{sql_query} desaparecen las comillas por lo que ya no debería producirse el error.

Saludos desde España

Bravo MMF :-)
Lo he probado y funciona de maravilla, ya no uso tres reportes sino uno solo maestro y de acuerdo a los filtros paso el query como parametro, de verdad Gracias MMF ha sido muy valiosa tu colaboracion.

Agradecido desde Venezuela. :aplauso:

stavera 10/05/2005 07:48

Para Acano
 
Mira, ya verificastes todas tus librerias, recuerda que las librerias deben de ir en la carpeta lib de ireport y tambien en la Tomcat para que tu jsp lo tome.

Otra solución es la versión del PDF, ya tienes la 7 si no bajala para que te funcione bien, ya que por extrañas razones solo funciona con esta version.

Si tienes alguna otra duda y te puedo ayudar con mucho gusto.

KirsonX 10/05/2005 08:20

Para acano
 
Yo tenia el mismo problema y se debe definitivamente a las librerias. Revisa la version de iReports que estas utilizando, en la carpeta lib del iReport tienes el jar del jasperreports, este jar debe ser el mismo jar que tengas ubicado en tu servidor web (tomcat o cualquiera que uses) de lo contrario siempre te va a pintar el mismo error.

Saludos
KirsonX

stavera 10/05/2005 08:33

Para Kangulo
 
Hola Kangulo
Tengo una pequeña pegunta: has generado reportes por medio del visor propio de jasperreport? mira que al principio del foro Destruktor a laraos le dio las indicaciones de que con la funcion JasperViewer() y pasandole algunos paramentros lo podría hacer, me gutaria saber si lo has trabjado y me puedes ayudar, estoy trabajando con un jsp.

Muchas gracias por tu ayuda.

:adios:

KirsonX 10/05/2005 13:19

Ayuda con subreportes
 
Alguno de ustedes dispone de algun ejemplo con subreportes?
Muchas gracias

Kangulo 10/05/2005 15:26

Para Stavera
 
Cita:

Iniciado por DestruKtor
...si es mediante un JSP, envias el reporte de esta manera al browser, no abres el acrobat y le pasas ninguna ruta, si no que generas el reporte como salida y lo escribes en el buffer de salida hacia el browser y el browser solo ejecuta acrobat y abre tu reporte de esta manera

Código:

byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), parameters, conn);
....si es una aplicacion java usa la funcion
JasperViewer() de la clase
net.sf.jasperreport.view

Hola Stavera: Lamentablemente no he tenido oportunidad de trabajar con iReports desde una aplicacion java de escritorio, hasta los momentos lo poco que he trabajado lo he hecho en un entorno Web, con paginas JSP y Servlets, pero por la explicación que dió Destruktor, me parece que el visor de jaspert solo funciona para aplicaciones que NO se corren sobre un browser, es decir, aplicaciones java de escritorio solamente, y por lo que me dices tu estas trabajando con JSP.

Por otro lado, porque quieres utilizar el Visor de Jasper?, si tu problema es visualizar el reporte en web, a través de todo el foro se han dado ejemplo de como hacerlo en PDF,HTML y Excel.

Si tienes algun inconveniente con esto ultimo, Stavera, puedes postear tu problema y con gusto yo o cualquiera de nosotros te ayudaremos.

Espero haberte sacado de dudas.

Saludos :adios:

stavera 11/05/2005 08:22

Para Destruktor
 
Hola Destruktor, haber si te entiendo solo se coloca la linea que me envias y mi codigo quedaria así si lo hago en el jsp
File reportFile = new File(application.getRealPath("/reportes/oto.jasper"));
Map parameters = new HashMap();

byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath (), parameters, conn);

response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

O como sería no te entiendo muy bien.

Muchas gracias por tu ayuda :adios:

KirsonX 11/05/2005 08:44

Mas dudas sobre subreports
 
Hola Laraos gracias por la referencia del manual.
Para todos tengo una duda con los subreportes, observo que en algunos tutoriales que el reporte maestro puede tener varios subreportes y en general un subreporte se construye como un reporte adicional. Bien esto me genera varios archivos jasper. En el esquema que estoy manejando yo dispongo de una BDD en la cual subo los compilados y luego en la jsp al invocar al reporte, obtengo el jasper desde la base. Al tener varios jasper se me complica un poco el manejo, entonces sería posible que se genere un único archivo jasper?

Saludos
KirsonX

patasgreen20 12/05/2005 09:24

Cualquier AYUDA es buena Hola que tal, tengo un problema con mi reporte, ya que al momento de llamarlo, se ejecuta el acrobat, pero me lo manda en blanco, ni lo que esta dibujado me parece, lei en secciones anteriores que posiblemente de debe a la version del archivo Jasperrepor.0.6.??? yo tengo las 2 la 0.6.6 y 0.6.4, de hecho si me marcaba este error "net.sf.jasperreports.engine.JRException: Error loading object" al dejar solo el archivo "Jasperrepor.0.6.4" se quito el error, pero el PDF sigue saliendo VACIO, alguien me puede ayudar con esta cuestion? de antemano Gracias!!

KirsonX 12/05/2005 11:36

Separacion de lineas
 
Hola a todos, he logrado hacer funcionar un subreporte, ahora tengo problemas con el espaciado de las lineas... y como debo hacer para que los datos del subreporte no se desborden y no interfieran con el resto del contenido del reporte maestro
Si tienen alguna idea se los agradezco

patasgreen20 12/05/2005 13:24

ACANO Se debe a los archivos jasperreport-0.6.6 o jasperreport-0.6.4, pero... te voy a causar otro error, digo para que este como yo, yotengo configurado el jasperreport-0.6.6 en la ruta, ireport\lib y en Root\WEB-INF\lib del tomcat, pero cuando corro la aplicacion al momento en que se habre el acrobat, sale el archivo en blanco, si no te pasa esto me lo haces saber!
Suerte!

Kangulo 12/05/2005 17:01

Ruta de una Imagen por Parametro
 
Hola A Todos, si alguien sabe por favor como cargar un reporte el cual tiene una imagen que se guarda en una carpeta en el servidor y la ruta de esta imagen esta una base de datos, si le coloco como parametro en la ruta de la imagen el campo de la base de datos no me permite compilar el reporte, alguien sabe como se hace esto?

Saludos.

KirsonX 13/05/2005 08:07

Secciones ocultas
 
Es posible definir que algunas secciones y campos de texto del documento se oculten o se muestren en funcion de uno o varios parametros q se pueda pasar al reporte

KirsonX 13/05/2005 09:01

Consulta a un datasource
 
Alguno d ustedes conoce si es posible estructurar una consulta a un datasource en un reporte con iReports<??

Saludos
KirsonX

patasgreen20 13/05/2005 11:13

KirsonX Me podrias ayudar, estoy un poco desesperado, por mi reporte me sale en blanco, el mismo problema que tu tenias y que por lo que veo ya solucionaste, muchas gracias de antemano

KirsonX 13/05/2005 11:21

hola parasgreen
 
es verdad mi problema se arreglo aunque no estoy muy seguro de como...
como estoy en un ambiente de desarrollo y estoy probando codigo cada vez, me encontre con que habia dejado mucho codigo inutil q no tenia nada q ver con el reporte asi q lo empece a retirar hasta dejar solo lo esencial para mi reporte y empezo a funcionar sin mas problemas

lo deje como sigue a continuacion

byte[] bytes = null;

log.trace("Cargar archivo desde el Blob");

JasperReport report = (JasperReport)JRLoader.loadObject(barchivo.getBina ryStream());

log.trace("Tomar campos (fields) del archivo");
String[] vcampos = PDFReport.getJRFieldNames(report);
log.trace("vcampos[0]: "+vcampos[0]);
log.trace("Tamaño col "+dataReporte.size());

log.trace("llamando a collectionToObjectMatriz");
//Object[][] vdata = collectionObjectVectorToObjectMatriz(dataReporte);//collectionToObjectMatriz(dataReporte);
Object[][] vdata = collectionToObjectMatriz(dataReporte);
log.trace("Data es vdata " + vdata.length+vdata[0][0].toString());

log.trace("Generando data source.");
GenericReportDataSource grds = new GenericReportDataSource(vcampos,vdata);
Map parameters = new HashMap();
parameters.put("Titulo", "RUC");

log.trace("runReportToPdf");
bytes = JasperRunManager.runReportToPdf(barchivo.getBinary Stream(),parameters ,grds);
log.trace("luego de runReportToPdf");

if (bytes != null && bytes.length > 0)
{
log.trace("Salida ...");
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes, 0, bytes.length);
outputStream.flush();
outputStream.close();
log.trace("Fin Salida ...");
}

Kangulo 13/05/2005 11:26

Reporte con datasource
 
Kirxon: lo q tienes q sustituir en el codigo es la cadena de conexion por

/*
Connection conexion;
String DRIVER = "org.gjt.mm.mysql.Driver";
String USERNAME = "exo";
String PASSWORD = "exo";
String URL= "jdbc:mysql://localhost/siguard";

Class.forName(DRIVER).newInstance();
conexion = DriverManager.getConnection(URL,USERNAME,PASSWORD) ;
*/


Context init = new InitialContext();
Context context = (Context) init.lookup("java:comp/env");
DataSource dataSource =(DataSource)context.lookup("jdbc/[Nombre del datasource]");
Connection conexion = dataSource.getConnection();

y lo demas lo mantienes igual...de todos modos en las preguntas y respuestas anteriores aparece un ejemplo completo.

Saludos

Kangulo 13/05/2005 11:33

Para patasgreen20
 
Para todos: Es recomendable que leamos todas las preguntas y respuestas que ya han sido posteadas ya que en ellos podemos encontrar una solucion previa al problemas que tenemos y evitamos saturar al foro con preguntas q ya han sido solucionadas con anterioridad, de esta manera tendremos un foro mas rico en cuanto a variedad de soluciones y conocimiento.



Cita:

Iniciado por Kangulo
Hola Wifer, aparentemente no veo ningun problema en tu codigo, si tu reporte corre en iReport perfectamente y en JSP no, entonces quedaría por descartar las versiones de los archivos en ambas partes, porq que lo que puede estar sucediendo es que lo estas compilando con una version pero lo intentas visualizar con otra, lo cual, por experiencia, da problemas.

Por lo tanto quisiera que verificaras que los *.jar sean los mismos tanto en los directorios iReport\lib como en Tomcat\common\lib


Basicamente estos son los archivos que yo utilizo y q necesitas que sean de igual versión en ambas partes son:

poi-2.0-final-20040126.jar
itext-1.2.jar
jasperreports-0.6.5.jar
mysql-connector-java-3.1.6-bin.jar (En tu caso sería el de Oracle)

luego que las versiones de estos archivos sean iguales reinicia el servidor y prueba a ver y me comentas.

Suerte


patasgreen20 13/05/2005 11:44

Cita:

Iniciado por Kangulo
Para todos: Es recomendable que leamos todas las preguntas y respuestas que ya han sido posteadas ya que en ellos podemos encontrar una solucion previa al problemas que tenemos y evitamos saturar al foro con preguntas q ya han sido solucionadas con anterioridad, de esta manera tendremos un foro mas rico en cuanto a variedad de soluciones y conocimiento.

Si ya me chute todo el FORO y ya hice todo lo que decia, pero me sigue saliendo en blanco.

KirsonX 13/05/2005 11:56

Para kangulo y todo aquel q pueda darme una mano
 
Hola a todos voy a ser un poco más específico con mis dudas, pues sospecho que tengo uno de los escenarios más complicados de resolver dentro del foro y he de requerir de toda la ayuda posible para solventarlo.
Mi escenario es el siguiente:
Estoy desarrollando un esquema de generacion de reportes para una institucion publica. Se busca que sea lo mas generico y flexible posible .
Tengo varios retos importantes
1) Mis reportes van a ser generados por usuarios que desconocen por completo el esquema de la BDD, asi que el reporte no usa un objeto conexion sino un JRDatasource. Este datasource debia ser genérico pues no es la idea definir 1 objeto JRDatasource para todos los casos. Hice mi propia implementación basándome en los ejemplos de jasper y aparentemente funcionaria mi esquema.
2) Almacenar la plantilla del reporte en una BDD Oracle, recuperarlo cuando se requiera y sin descargarlo a disco ejecutar el reporte. Esta parte ya la resolvi gracias al uso de objetos BLOB y al metodo JasperReport report = (JasperReport)JRLoader.loadObject(barchivo.getBina ryStream()); que me permite cargar el reporte desde un inputstream.
3) Por la estructura de los documentos me veo obligado a usar subreportes. Ya logre un ejemplo con subreportes. Sin embargo desde mi aplicacion DEBO seleccionar varios datos de entradas y con ellos mandar a generar el reporte. Si tuviera q enviarlos de 1 en 1 NO tendria problemas, pero desean q si escoge 1 o varios datos, el resultado se muestre en un único PDF (en el browser) donde por cada nuevo dato se reinicie la numeración de las páginas.
Para esto yo envio al reporte maestro su propio datasource y desde el reporte maestro le paso otro datasource al subreporte(x parametros). los dos datasource solo tienen un dato en comun que puede ser un dato de identificacion de persona, pero el conjunto de informacion que presentan es completamente distinto. Debo resolver el tema de la numeracion de las paginas y lograr q para entradas múltiples se presente la información del SUBREPORTE para todos los casos. Actualmente solo el primer dato se carga con información en el subreporte y a los subsiguientes no les llega la información.
Espero haber sido claro y si tienen ayudas o sugerencias que me puedan proporcionar lo agradecere mucho
Saludos
KirsonX

COCOL 15/05/2005 16:13

Ejemplo de como usar Jasper Report en Java
 
Me preguntaba si alguien me quisiera dar un pequeño ejemplo de como usar Jasper Report en Java... ya tengo listo iReport ... solo me falta mostrar los reportes desde Java... me gustaría que me dijeran como instalar Jasper Report... y un pequeño ejemplo en codigo en Java....

Se los agradeceré mucho...

DestruKtor 16/05/2005 07:10

Cita:

Iniciado por MMF
DestruKtor, Kangulo

Veo que todos teníamos el mismo problema: aparecen las dichosas comillas siples que engloban al parámetro y provocan que falle la query.

Creo que he encontrado la solucion en la "JasperAssistant User Guide": si en lugar de usar $P{sql_query} usais $P!{sql_query} desaparecen las comillas por lo que ya no debería producirse el error.

Saludos desde España

Exelente :) muchas gracias!!!! :arriba:


La zona horaria es GMT -6. Ahora son las 07:41.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.