DynamicJasper (DJ) es un proyecto open-source que permite a desarrollador crear rapidamente una gran variedad de reportes a través de una intuitiva API escrita en Java. Esta permite definir programáticamente las columnas, grupos, totales, gráficos (charts), sub-reportes, el formato de salida (pdf, Excel, html, etc.) en tiempo de ejecución. La API maneja todo lo relacionado con la diagramación y posicionamiento de los elementos del reporte haciendo el proceso de diseño fácil y automático.
DynamicJasper tiene como objetivo abarcar el 99% de los reportes que se basan en columnas como así también los que tienen grupos (cortes de control). La API permite agregar variables en las cabeceras y pie de las columnas y grupos con operaciones tales como suma, contar, etc. Se puede definir en tiempo de ejecución el orden de aparición de las columnas, los grupos, las variables, los estilos, estilos condicionales, sub-reportes, etc. Existe una aplicación web online de ejemplo que muestras las características principales de DynamicJasper
Características:
La documentación es completa, incluye una sección “how-to” con ejemplos de cómo realizar las tareas más comunes. También hay disponibles ejemplos funcionando (que generan el reporte en PDF).
A partir de la versión 1.3.0 DJ soporta JasperReports 2.0
Web: http://dynamicjasper.sourceforge.net/
descarga: http://sourceforge.net/project/showfiles.php?group_id=188060
Etiquetas: j2se, reports, dynamicjasper
En los ultimos 2 meses esta noticia ha aparecido, con esta, ya tres veces. Joder que cansinos con la libreria esta. Siendo además que existen alternativas mejores, como BIRT de Eclipse
BIRT? que mejoras tiene BIRT vs IReports? El rendimiento es el mismo? BIRT no es de pago para uso profesional?
gracias
Es cierto, creo que debemos proponer mejoras para el mecanismo de votación de noticias (las votaciones negativas creo que son buena idea) porque esta no es noticia, pero podría ser un interesantísimo artículo.
Por otro lado, para los casos simples BIRT si es opción, y no es de pago para uso comercial hasta donde tengo entendido. Pero para casos complejos es mejor Jasper Dynamics, que es el nombre con que había aparecido en las menciones anteriores. Ojalá mi jefe entendiera que se pueden usar los dos, cada uno en su nicho, pero bueno...
Es un buen artículo, yo actualmente trabajo con un API similar, se llama Alphablox es de IBM y es de paga. El API es bueno aunque no soporta mucho para la configuración del reporte mas bien su fuerte es el manejo de reportes a tiempo ejecución.
No he manejado JasperReports pero parece una buena alternativa.
Saludos
Hola, hay una libreria similar que se esta utilizando para un desarrollo importante en un organismo público de Argentina y por lo tanto debería ser propiedad intelectual del Gobierno Argentino. Que raro no?
Saludos.
BIRT pertenece a la fundación eclipse y permite tanto usarse modo "aplicación de escritorio" (lo digo por la mención a iReport) con notables diferencias sobre todo de facilidad y usabilidad respecto al iReport que más feo no puede llegar a ser. Y sobre todo tiene ventajas, desde mi punto de vista, al usarlo como API pues tiene una filosofía bastante diferente a JasperReports u otras herramientas de reporting, usa una estructura de paginación de flujo, más cercana a las aplicaciones Web (respecto a la estructura por paginación de jasperreports). Además incluye un visor web ya implementado bastante decente y la api es realmente buena usando ampliamente patrones factory y similares.
BIRT es una plataforma para desarrollo de soluciones de reporting a nivel empresarial, jasperreports es una simple libreria para soluciones más simples. Cada cual para lo suyo.
Hola darkcavie,
El mecanismo de publicación actual de javaHispano permite que un mismo elemento esté en varias secciones. Esta "noticia" la hemos añadió también a los artículos: http://www.javahispano.org/contenidos.type.action?type=ARTICLES&menuId=ARTICLES.
Y llevas razón en que actualmente puede resultar un poco confuso como funcionan algunas cosas dentro del portal. Pero la realidad es que ni nosotros mismos sabemos cómo deben funcionar; y no quiero decir que no comprendemos como funciona el portal (que ha sido desarrollado por gente de la casa) sino que no tenemos claro qué uso le queremos dar a la funcionalidad que está implementada. Estamos, literalmente, aprendiendo y modificando cosas en base al uso que vosotros mismos les dais.
Pues yo hace mucho tiempo q estoy desarrollando con jasperreports, informes muy muy grandes y aunque a partir de un numero determinado de páginas deja el servidor practicamente destrozado es la mejor opcion para generar informes con una libreria free.
En cuanto a DJ nos vendrá muy bien pues podremos ponerle a los cliente un "INFORMENOVA" jeje
hola me he descardado el jar de DynamicJasper y algunos ejemplo de su pagina pero a la hora de ejecutar los ejemplo de me baje me sale error porke me falta un un jar que no se como se llama y bueno el error es esta importacion import ar.com.fdvs.dj.test.domain.Product; bueno si alguien sabe de donde sale esta importacion porfa mandenmelo a mi correo ke es darkx_valen666@hotmail.com desde ya gracias .
< -------------------- SdarknoT -------------------->
A mi me parece que esta libreria que hace uso de la API de Jasper Reports comparada con IReports que es un IDE para armar reportes, se debate la interminable pelea entre "control" de lo que uno esta haciendo y "facilidad" para hacerlo.
Esta libreria provee mucho control pero el tener que hacerlo todo programaticamente me parece un muy feo punto en contra en la era de la vaguez ...
Nosotros usamos IReports y estamos contentos con ello ... HASTA QUE PASE LO CONTRARIO
Es mi opinion
Hola,
yo tengo una aplicación hecha con struts y con Beans para el acceso a la capa de datos, nuestra BD es Oracle 9 y para los informes hemos utilizado El Report de oracle 6. Con esta herramienta tan antigua no se pueden hacer muchas virguerías...de hecho seguramente haya que rehacer de nuevo todos los informes de la aplicación... pero si estuviérais ante esta situación elegirías otra opcion que los reports de oracle? Espero vuestra opinión, Gracias.
Creo que depende de que necesites hacer, y evaluar que me da cada herramienta, particularmente no conozco la herramienta de reportes de Oracle y no me gusta esta atado a tecnologías propietarias. Si actualmente lo que me da la herramienta me sirve para cumplir con los requerimientos del negocio y me da un marco para que pueda hacerlo de manera ágil entonces no veo motivos para no usarla, ahora si tengo que recortar funcionalidad o si para logarla tengo que hacer cosas que luego serán difíciles de mantener o modificar creo que esta claro que debería usar otra cosa, en ese caso un framework como Dynamicjasper seria mas conveniente.
Muy bien con la noticia, yo he desarrollado varios proyectos y he utilizado el ireport como herramienta para elaborar mis reportes.....ahora con este API la cosa suena prometedora, voy a probarla y comentaré de nuevo =)!!!
Hola, respondo a "Anónimo" sobre su inquietud respecto a que herramienta usar...
Hay varios factores a tener en cuenta y varios de ellos te los respondió el otro "anónimo", acá van mis puntos de vista.
1) Como estas en una migración de reportes que YA EXISTEN, es probable que te pidan que los nuevos sean exactamente iguales o con muy poca diferencia a los ya existentes. Ahí hay una limitación y tal vez necesites usar una herramienta donde puedas diseñar graficamente (tipo iReport) y ver que lo que saldrá es igual a lo que tenías.
2) Asegurate de que el cliente (u organización) no tiene problemas en usar librerías open-source, ya que a veces, por más buena que sea la solución, si no hay soporte 7x24, simplemente no es una opción.
3) Asegurate que los reportes actuales no utilicen funciones especiales de Oracle a las que solo podes acceder a través de Oracle Reports. DJ se apoya en JasperReports, lo más que podes tener son data sources comunes y corrientes, de manera que irte a JasperReport/DJ significaría hacer de nuevo los queries en SQL.
4) Paginación: Para reportes muy grandes, Oracle Reports tiene la ventaja de que te puede tirar la primer página del reporte cuando las otras todavía se están calculando, con JasperReports viene todo junto, a veces eso es un problema porque el usuario termina diciendo que el sistema es lento.
5) DJ es muy útil para obtener rápidos resultados y para absorber cambios, si los usuarios aprovechan la migración para hacer cambios, ir y venir en este proceso, Dj te va a servir mucho.
6) DJ no es excluyente de JasperReports, al contrario, le amplía sus características. Según te convenga podes tener reportes tradicionales usando archivos jrxml, y para los que DJ sea lo más indicado, usarlo.
7) Si es un buen momento para dar valor agregado a la aplicación y darle visibilidad al área, aprovechar la oportunidad (DJ permite columnas dinámicas, grupos dinámicos, etc.)
8) Si los reportes se adaptan a los del tipo que DJ puede hacer rápidamente, no lo dudes, por lo menos yo no disfruto jugar ni con el iReport ni con otras herramientas de reporting, justamente parte de lo que propone DJ es que los reportes no sean “una gran tarea” dentro de los proyectos.
Espero haber contestado alguna de tus dudas.
Saludos y suerte.
Dj
Muy bien, gracias a todos por vuestra opinión, todavía estoy pensando porque Diablos se les ocurrió a quién se le ocurrió hacerlo con report de oracle si existían otras opciones más fáciles. En fin, hablaré del tema y probaré la herramienta DynamicJasper.
PD: Disculpad, pero el Anónimo era yo, solo que no me registre antes de escribir el post.
Lo dicho. Gracias. :P
miren me he descargado todos los jar pero cuando quiero ejecutar uno de los ejemplo que me descargue de la pagina no puedo porque me pide que importe esto import junit.framework.TestCase; y no se de donde sale porfa mandenme algunas ejemplos a mi correo darkx_valen666@hotmail.com
< --------------------- sdarknot --------------------->
Y para hacer reportes no han visto Pentaho Reporting? Parte de la base de JFreeReport, es open source y gratis... Yo solo he mirado la web todavia no lo pruebo pero suena prometedor... les dejo la web http://reporting.pentaho.org/
Hola!!! Pentaho es una suite muy completa para hacer BI (Business Intelligence), es la "pata" del openSource dentro de este mundo.
Este proyecto lo que hizo fue junta/integrar las tres herramientas necesarias para hacer BI: 1 motor de cubos (mondrian), un engine de reporting (JFreeReports) y una herramienta de ETL (Kettle) para poder importar datos de casi cualquier lado al cubo. Finalmente el componente "Pentaho" quien explota la información.
Esta suite herramientas va mucho mas allá del problema que pretende abordar DynamicJasper, con suerte DynamicJasper podría reemplazar/complementar a JFreeChart en esta suite si es que no hubiese altos requisitos de layout y diseño en los reportes, por lo general son reportes de BI tienen alto impacto visual, cuando el DJ apunta mas que nada a listados más comunes y corrientes
Este mensaje es para todos ustedes que tanto saben de reporteadores, yo apenas estoy empezando, pero he estado en estos ultimos dias tratando de probar ejemplos que he bajado de internet sobre codigo java usando el ireport y el jasperreport pero hasta ahora ninguno me ha funcionado, siempre me salen excepciones, les agradezco si tienen ejemplos que realmente funcionen, enviarmelos al correo: beltranchamorro@yahoo.es
Estoy probando reporteadores pero no me han funcionado por excepciones y errores, bueno estoy en eso en realidad, si alguien me puede ayudar lo agradeceria, algun tutorial, ejemplos, etc.... cualquier cosa es bien recivida (java), gracias.
People:
Y a mi que en mi universidad mi jefe de proyecto me esta obligando a hacer un reportador para una aplicacion desktop, despues de esto no me quedan ganas de seguir jejeje.
Creo que mejor trato de convencerlos en usar uno hecho, o mejor aun, mejorar uno existente
Saludos....
IREPORTS!!!!
Hola!, tengo una base de datos bastante simple,
datatime (DATETIME) value (DOUBLE) template_id(INT)
+----+---------------------+-------+-------------+--------+
| id | datatime | value | template_id |
+----+---------------------+-------+-------------+--------+
| 6 | 2008-05-09 09:00:00 | 0 | 1 |
| 7 | 2008-05-09 09:05:00 | 0.1 | 1 |
| 8 | 2008-05-09 09:10:00 | 0.2 | 1 |
| 9 | 2008-05-09 09:15:00 | 0.3 | 1 |
| 10 | 2008-05-09 09:20:00 | 0.4 | 1 |
| 1 | 2008-05-09 09:00:00 | 0.5 | 2 |
| 2 | 2008-05-09 09:05:00 | 1 | 2 |
| 3 | 2008-05-09 09:10:00 | 1.5 | 2 |
| 4 | 2008-05-09 09:15:00 | 2 | 2 |
| 5 | 2008-05-09 09:20:00 | 2.5 | 2 |
+----+---------------------+-------+-------------+--------+
la idea es crear un grafico de series de tiempo que muestre en el eje X datatime y en el eje Y valores de value.
El query que se hace sobre la tabla es:
Select * from data_value
order by template_id, datatime;
y en las propiedades del grafico creo dos series de tiempo:
- La primera:
* Expresion de la serie: "template = 1"
* Expresion valor de X = $F{prueba}
* Expresion valor Y = ( $F{template_id}.equals(new Long(1)) ? $F{value} : null )
- La segunda:
* Expresion de la serie: "template = 2"
* Expresion valor de X = $F{prueba}
* Expresion valor Y = ( $F{template_id}.equals(new Long(2)) ? $F{value} : null )
Pero ocurre que unicamente muestra la linea para template = 2. De hecho, si existieran mas entradas en la tabla para otros templates_id (3,4)... siempra grafica es el ultimo.
Que puedo hacer? Gracias!
hola, eh leido acerca del DJ(DynamicJasper) y la vdd me ha interesado mucho, actualmente necesito elaborar un reporte donde el usuario sea el que decida como sera, y eso de las columnas dinamicas esta perfecto para eso. Tengo un proyecto web en .NET utilizo visual, y kisiera saber como puedo utilizar DJ en mi proyecto o d k manera lo puedo implementar ya que desconozco. Gracias
Escribe tu comentario