Encuesta

¿Qué sistema operativo empleas principalmente cuando desarrollas Java?

28-02-2010 - 878 votos

Destacados Agenda

Más eventos |

Agrega dinamismo a los reportes en JasperReports con DynamicJasper

25/09/2007 10:39 djmamana

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:

  • DJ usa directamente la API de JasperReports, por lo que no hay necesidad de archivos jrxml. Sin embargo se pueden seguir utilizando como plantilla (marca de agua, logo de la compañía, etc.) y permitir a DJ hacer la disposición de los elementos del reporte.
  • Columnas Dinámicas: Se pueden definir las columnas del reporte y su orden de aparición en tiempo de ejecución. Cada una de ellas puede tener su propio estilo (Font de la cabecera, de los datos, colores, bordes, etc.) El ancho de las columnas se acomoda automáticamente hasta alcanzar el ancho de la hoja.
  • Grupo: Se pueden crear grupos dinámicamente usando una columna como criterio, o expresiones más complejas (programadas en Java!). Cada grupo tendrá su cabecera y pie, los cuales pueden tener variables mostrando subtotales de operaciones de las columnas.
  • Formato condicional: DJ provee una manera sencilla de agregar formato condicional a los elementos de una columna. Se pueden utilizar expresiones sencillas o expresiones customizadas escritas en Java para definir cuando utilizar un estilo en particular.
  • Opciones de reporte dinámico configurables en tiempo de ejecución tales como tamaño y orientación de página, márgenes, columnas (tipo guía telefónica), etc. Los elementos siempre se acomodan a las nuevas condiciones.
  • Exportar a los formatos más populares no es un problema, ya que DJ se basa en JasperReports y puede exportar todo lo que JasperReports (Excel, PDF, OpenOffice, Word, HTML, etc.) Aunque DJ agrega valor al poder exportar a Excel sin formateo de los datos, sin salto de página, sin celdas vacías en el medio, lo cual es ideal para usuarios que utilizaran las hojas de cálculo para hacer otras operaciones. Esto es difícil de lograr simplemente utilizando editores como iReport.
  • Subreportes: Agregar un sub reporte se logra en 1 minuto. Los sub reportes también pueden ser dinámicos. Se puede utilizar el DJ para concatenar varios reportes en uno solo.
  • Auto texto: DJ tiene incorporado autotextos tales como “Pagina 1 de 10”, “Creado el 10 de Octubre de 2007”, o mensajes definidos por el usuario. Los mismos se pueden ubicar en la cabecera o pie de página del reporte.
  • Imágenes en el encabezado: Se pueden definir hasta 3 imágenes para la el encabezado de la primer página (izquierda, centro, derecha) y otras 3 distintas para el resto de las páginas. Ideal para agregar en 1 línea de código el logo de la organización, etc.
  • Gráficos (Charts): Agregar reportes se ha vuelta una tarea realmente sencilla a través de DJ. Solo hay que indicarle que columnas utilizar y el tipo de gráfico.
  • Columnas Calculadas: La API de DJ provee una forma amigable de crear una columna calculada, las cuales pueden tener fila a fila una operación entre los elementos de la misma de otras columnas.
  • Soporte para internacionalización a través de i18N
  • Integración con WebWork a través del dynamic-jasper result type.

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

 

Volver a actualidad

Etiquetas: j2se, reports, dynamicjasper

Comentarios: 32

  • Anónimo 25/09/2007 12:37

    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

  • Anónimo 25/09/2007 15:40

    BIRT?  que mejoras tiene BIRT vs IReports?  El rendimiento es el mismo? BIRT no es de pago para uso profesional?

     

    gracias

  • darkcavie 25/09/2007 16:04

    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...

  • Himura 25/09/2007 16:53

    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

  • Anónimo 25/09/2007 19:28

    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.

  • Anónimo 25/09/2007 19:58

    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.

  • abraham 26/09/2007 07:52

    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.

  • Anónimo 26/09/2007 08:46

    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

  • Anónimo 27/09/2007 01:14

    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 -------------------->

     

  • martosoler 27/09/2007 16:07

    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

  • Anónimo 28/09/2007 08:54

    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.

  • Anónimo 28/09/2007 21:01

    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.

  • Anónimo 29/09/2007 02:36

    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 =)!!!

  • djmamana 29/09/2007 04:08

    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

  • tristam 01/10/2007 13:09

    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

  • Anónimo 02/10/2007 00:01

    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 ---------------------> 

     

  • Anónimo 27/11/2007 05:34

    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/

  • djmamana 29/11/2007 03:24

    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

  • Anónimo 04/01/2008 18:29

    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

  • sombro 21/02/2008 14:44

    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.

     

    sombro_cm@yahoo.com

  • Anónimo 02/04/2008 05:48

    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....

  • Anónimo 16/05/2008 18:08

    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!

  • Anónimo 19/05/2008 18:00

    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

  • Anónimo 27/08/2008 17:01

    BUen dia , para los que han usado o usan birt , me baje la version birt 2.3.0 anteriormente tenia la europa y en esa version al exportar a excel mis reportes todo salia correcto , se exportaban encabezados pies de pagina ,si tenia un campo que fuera caracter y tuviera por ejemplo 0456789 me lo exportaba tal cual, ahora con la ultima version ganymode tengo problemas que a lo mejor sean porque desconozco si tengo que configurar algo pero al exportar a excel no me baja los encabezados ni pies de pagina que puedo hacer?????

  • Anónimo 01/10/2008 21:27

    El ireport no sirve para una mierda es una porqueria de reporteador no se puede ni sumar, entonces para que.

  • Anónimo 22/10/2008 16:05

    Buenas Tardes necesito su ayuda es URGENTE!!!!. Tengo 3 compañias la 20 la 30 y la 40 dependiendo la compañia necesito colocar en Jasper Report una imagen. Ayudenme porfa!!! El jasper hace refrencia a img_1 y no entiendo...

  • Anónimo 29/10/2008 17:00

    hola buenos dias como puedo conectar los reportes hechos en ireport con php

  • Anónimo 05/02/2009 14:59

    Hola soy nuevo en el foro tengo una pregunta o mas bien un reto para vosotros
    ¿una vez generado un documento (por ejemplo un doc) como puedo definir donde va ha salir el puntero?
    ¿o incluso los margenes que va ha tener?
    Tambien me gustaria que los elementos que he puesto con el ireport se pudieran mover, por ejemplo si le doy intros encima de él.

     

    Por eso pienso que el ireport no es muy bueno porque no te deja modificar los informes una vez generados.

    de todas formas por lo que he leido no hay otra alternativa "visual" para hacer reportes

  • Anónimo 27/07/2009 23:02

    hola mu problema es que necesito generar perortes con php y esos datos exportar los a word necesito k me ayuden es k me urgen es para un proyecto

    gracias

     

     

     

  • Anónimo 27/07/2009 23:08

    hola necesito ayuda urgente por k necesito hacer reportes con php y exportarlos a word

    necesito ayuda urgente es para un proyecto

    aqui les dejo mi correo para k me ayuden

    juan_leo@hotmail.com

    gracias

  • Anónimo 28/08/2009 23:12

    IReport, con lo poco que lo he utilizado, y me parece que le falta madurar mucho, aveces los elementos del reporte no quedan exactamente en la disposicion en que uno los coloca, pero me parece excelente este tipo de herramientas ya que facilitan mucho el trabajo de crear reportes, eso de definirlos por completo en pleno codigo me parece una arcaica barbaridad que consume mucho tiempo, y hace complicado cualquier modificacion en el formato del mismo, ya que habria que recompilar toda la aplicacion donde se utiliza.

    En general creo IReport dentro de todo nos facilita muchas cosas. ME gustaria conocer de otras alternativas similares a esta herramienta.

  • Anónimo 14/10/2009 04:08

    Hola. Estoy desarrollando una aplicacion RIA en el que utilizo Dynamic Jasper para generar los reportes, ya que son demasiados complejos como para generarlos con JR.

    Quiero saber si con esta herramienta es posible generar el reporte en el cliente, mas bien que se levante en el cliente sin que se guarde en el servidor.

    Asi lo estoy implementando actualmente ya hasta ahora es la unica solucion que se me ha ocurrido, pero es una solucion muy sucia, ya que los reportes quedan en el servidor, lo cual no es una buena.

    Estoy usando Netbeans para la logica del negocio, y Flex Builder 3 para la visualizacion en el cliente web.

    Agradeceria mucho si me ayudaran a solucionar este problema, encontrar una manera de generar los reportes en el cliente.

    Muchas gracias.

Escribe tu comentario

Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano