PDA

Ver la Versión Completa : jasperreports + irreports


La__X
05-07-2007, 10:18:01
Foro,
Alguien ha trabajado reporteando en java? empleando jasperreports e irreports?
Quiero mandar un parametro tipo Collection o ArrayList para el reporte y obtener algo asi:

ID Descripcion Stock
4 BluePrint Card 19
45 Kardex15 Card 25
.
.
.
(n items)

Alguna ayuda?

Arcioneo
20-07-2007, 09:45:36
Foro,
Alguien ha trabajado reporteando en java? empleando jasperreports e irreports?
Quiero mandar un parametro tipo Collection o ArrayList para el reporte y obtener algo asi:

ID Descripcion Stock
4 BluePrint Card 19
45 Kardex15 Card 25
.
.
.
(n items)

Alguna ayuda?

1) Primero bajate el IReport
2) Copia en tu classpath del IDE que estes usando la libreria de Jasper
3) Diseña la plantilla de lo que vas a enviar, compilala

y bueno, para no hacerla larga checate este pequeño ejemplo:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ireport


Ahi aprendí yo, si quieres algo asm explicadon me dices.

La__X
04-08-2007, 16:17:50
Hola.
GRacias por la respuesta. Pues me baje el IReport e incluso encontre un ejemplo de lo que quiero pero cuando lo quiero ejecutar me salen unos errores que no logro entender.
Tambien adjunto el codigo (http://www.4shared.com/file/20359271/1b614563/PruebaJasper.html) del ejemplo. Lo hecho paso a paso y no se porque no me sale el reporte :(

Exception in thread "main" net.sf.jasperreports.engine.JRException: Error loading object from file : D:\PruebaJasper\RelAlunosDisciplinas.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:257)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:311)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:260)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:274)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:403)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1346)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:662)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:232)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:763)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:688)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at com.GeraRelatorio.<init>(GeraRelatorio.java:36)
at com.GeraRelatorio.main(GeraRelatorio.java:42)
Caused by: java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:763)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:278)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87)
... 15 more
Java Result: 1

Arcioneo
06-08-2007, 15:07:09
Te falta importar la librería (.jar) del jasperreports

Arcioneo
06-08-2007, 15:09:58
Me equivoqué...

1) Verifica que tienes ese fichero en esa ruta, ese fichero es el compilado de tu jasper, no olvides que cuando hiciste el diseño has de compilarlo...


2) Verifica que todos los campos, ya sean "fields" o "parameters" estén declarados y correspondan al tipo que estas enviando...

Te recomiendo a modo de prueba enviar un solo string e imprimirlo en un reporte supersimple y asi ir agregando mas y mas para que veas que si funciona

La__X
07-08-2007, 05:52:42
Hola
Gracias por la respuesta
Si compile el *.jrxml
y asi quedo mi codigo (http://www.4shared.com/file/20359271/1b614563/PruebaJasper.html)

y ahora obtengo estos errores:


Exception in thread "main" net.sf.jasperreports.engine.JRException: Error loading object from file : D:\PruebaJasper\RelAlunosDisciplinas.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:257)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:311)
at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:260)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:274)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:403)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1346)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:662)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:232)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:763)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:688)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at com.GeraRelatorio.<init>(GeraRelatorio.java:36)
at com.GeraRelatorio.main(GeraRelatorio.java:42)
Caused by: java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:763)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:278)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87)
... 15 more
Java Result: 1



El error esta en el subreporte (detalle) porq cuando omito de hacerlo si genera la cabecera y si le mando solo un juego de datos en vez de una coleccion si lo genera.
No se que otra cosa pueda ser :(

Arcioneo
07-08-2007, 11:45:55
Si, como dices, el problema esta en el campo detail...

Ve que campo tienes ahi y de que tipo es, normalmente los campos en detail(de tipo FIELD) son resultado de un query que itera en ese campo del detail, recuerda que el nombre debe ser el de tu campo en el query que hiciste en el jasper