Skip to main content

iReport con DataClassG

Cuando deseamos crear reportes con iReport de nuestro API de persistencia creado con DataClassG.
Seguimos estos pasos básicos:
Ir al sitio de Jasper
http://jasperforge.org/project/ireport
Descargar el plugin de NetBeans y la distribución para linux(esta al usaremos para obtener las librerias que agregaremos a nuestro proyecto).
Instalamos el plugin para NetBeans


En el Menú de NetBeans seleccionar Herramientas->Tools->Option->iReport ->Classpath.
Agregamos el JAR


Agregamos las librerias al proyecto. Esta las puedes encontrar en el directorio.
iReport-4.1.1->ireport->modules->ext


Listado de las librerias a incluir


Diseñar el Reporte
Creamos un paquete nuevo para almacenar los reportes


Nuevo->Report->Empty report


Colocamos el nombre usuarios. En el diseño
seleccionamos en la pestaña Reportes ->Reportes->Edit Query


Seleccionar JavaBean DataSource-> en Class name colocar el nombre del beans correspondiente al proyecto de persistencia.
En este ejemplo org.testpersistence.beans.Usuarios y presionar el
botón Read attributes y seleccionar los atributos cedula y nombre y presionar el botón Add selected field(s), de manera que aparezcan en la parte inferior.


Ahora se muestran los campos


Arrastramos a la banda de Detalles


Ahora compilamos el reporte


Invocaremos el Reporte
HashMap map = new HashMap();
Usuarios usuarios = new Usuarios();
UsuariosController uc = new UsuariosController();
if (uc.Listar()) {
t.Imprimir(uc.getUsuarioslist(), map);
} else {
System.out.println(" no se puede listar");
}


Creamos el metodo Imprimir()

private void Imprimir(List aux, HashMap map) throws JRException {
try {
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
//Indicamos la ruta del reporte
InputStream reporte = (InputStream) getClass().getResourceAsStream("reportes/usuarios.jasper");
if (reporte == null) {
Mensajeria.Mensaje("No se pudo cargar el reporte");
} else {
JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
JasperViewer.viewReport(print, false);
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "Imprimir()");
}
}

Reporte










Comments

Anonymous said…
Tengo un problema, he llegado hasta el punto donde se debe poner el 'javaBean DataSource', pero todas las rutas q he probado, no agarra ninguna.

Mi proyecto está hecho en JSF, y para ello, el reporte debe acceder a otro paquete.

Tenes idea o me podrás aconsejar como llegar hasta los entity?

Gracias!

Popular posts from this blog

Primefaces v13

 La versión nueva de primefaces v13.0 elimina el componente <p:repeat>  Consulte los cambios en  https://github.com/primefaces/primefaces/releases/tag/13.0.0 por lo tanto si necesita una solución similar considere utilizar  <p:carousel>  o  <ui:repeat> En la versión 13 genera una excepción

Jmoordb-Core @UpdateMany y @DeleteMany

 Jmoordb-Core @UpdateMany y @DeleteMany Estoy trabajando en una versión nueva de jmoordb-core en la cual se estará implementando nuevas funcionalidades como lo son @DeleteMany y    @UpdateMany con la finalidad de hacer operaciones sobre múltiples documentos de la colección.