Ejemplo de clase para gestionar informe birt

Lo pongo aquí a groso modo. Cuando tenga un ratito le doy mas formato y comento mas y mejor

 

ejecutar un informe desde línia de comanda

Dado que un .rptdesign es un elemento autónomo, que solo requiere para ejecutarlo y btener un informe, de la existencia de un runtime birt (este a su vez requiere un runtime java), podemos lanzar informes directamente desde linia de comanda. Por ejemplo, suponiendo que en c:\carpeta1\birt442 tenemos el runtime de versión 4.4.2, y queremos obtener un informe pdf a partir del diseño c:\carpeta1\prueba.rptdesign 
 

La manera en que birt analiza la comanda es muy fragil y caprichosa (por decirlo de alguna manera). Cosas a tener en cuenta son:
– no le gustan los guiones bajos en las rutas
– no le gusta que le cambien mucho el orden de los flags (por ejemplo, mejor que –file sea el ultimo)
– aunque funciona, muestra una traza de error grave quejandose de la inexistencia de una ruta (en el caso del ejemplo, de c:\carpeta1) 

Otras consideraciones:
Si prueba.rptdesign accede a bd, en la definición del datasource se habrá definido la cadena de conexión y el jar con los drivers.
Ambos se definen en duro con rutas absolutas. Aunque desde java se pueden cambiar dinámicamente, lanzando la comanda directamente no es posible, por tanto, ambas rutas han d’existir (en el caso de los drivers, aunque no existiese la ruta, si ponemos el jar en la misma carpeta que el .rptdesign, o bien en la carpeta c:\carpet1a\birt442\ReportEngine\lib\, será suficiente).
En el ejemplo hemos utilizado flags -p para un hipotético de parámetros. Naturalmente, si vuestro informe no los usa (creo que lo mas habitual es usarlos) o queréis que apliquen los valores por defecto, se pueden obviar.

Otro día vemos como ejecutar informes desde java.

introducción a birt

La industria en general, no es que esté culpando yo a los de Eclipse (o al menos no específicamente), cada vez nos pone más difícil lo de hacer listados. Nos engañan diciendo que las herramientas de reporting ahora son Business Intelligence, y entonces hay que comprar licencias de base de datos, o llorar cuando Crystal Reports se va con Sap y nos deja a todos huerfanitos.

Bueno. Algo habrá que utilizar. Sinceramente, me gusta antes Pentaho o otros productos antes que Birt, pero no vamos a discriminarlo. En próximos dìas le dedicaré algún articulillo para que esté contento. Mientras tanto…

Birt es un proyecto opensource que permite crear informes para clientes pesados y aplicaciones web java.
Tanto el componente diseñador como el runtime, requieren java, por lo que aconsejamos jdk o jre 1.7, o posterior.
.
El diseñador:
.

Para realizar los diseños de informes utilizaremos el componente diseñador. El diseñador puede instalarse como plugin del eclipse que estemos utilizando, o bien instalar un eclipse con el plugin preinstalado.

Nuestro consejo es optar por la opcion del ide con el plugin de diseño birt preinstalado y usarlo solo para eso.

Una vez superada la etapa de diseño, no hay problema por mover el .rptdesign al lugar desde donde queramos que nuestros proyectos lo tomen.
Por ejemplo, podemos descargar el ide eclipse all in one en http://download.eclipse.org/birt/downloads / all-in-one / download now

Lo que nos descarga un eclipse-reporting-neon-R-win32-x86_64.zip desenzipable y operativo directamente para comenzar a diseñar informes.

Para ejecutar informes desde el ide, no nos hace falta descargar nada mas, ya que el paquete aquí comentado incluye un runtime birt,
y el propio eclipse lo maneja. Eso si, si debemos conectar los .rptdesign con los que estamos trabajando a bd’s, necesitaremos indicar las cadenas de conexión correspondientes al momento de definir el datasource, y claro, si para establecer dicha conexión hace falta algun jar con drivers, en la definición del datasource también debemos definirle la ruta de dicho jar.
Lamentablemente, solo admite rutas absolutas, por lo que muchas veces la ruta que utilizemos en fase diseño no se corresponderá con la que queramos emplear en producción. Afortunadamente, desde java podremos modificar dinámicamente algunas de este tipo de carácterísticas del .rptdesign.
.
El runtime:
.

En cuanto a la ejecución de los informes, deberemos utilizar un runtime.

El ide all-in-one, ya trae un runtime incorporado, pero solo nos vale si lanzamos un informe desde el propio ide. Por ejemplo, podemos descargarlo de http://download.eclipse.org/birt/downloads/#runtime
Como mencionábamos mas arriba, para ejectuar los informes (.rptdesign) desde el propio ide del diseñador, no nos hace falta otro runtime
que el que ya viene con el ide. Para proyectos puestos en producción, si que lo necesitamos.