Parte IV. Reportes con jmoordbreport
Para crear reportes en Java generalmente usamos JasperReports, desarrolle un plugins para NetBeans que te permite generar de manera rápida los reportes a partir de un entity básico.
Escribà un libro donde se explica como trabaja
Es muy sencillo de usar
Descargamos el plugin desde
Para crear los reportes necesitamos crear la carperta reportes dentro de resources

Dar clic derecho y seleccionar New-->Folder

Indicamos el nombre de la carpeta reportes

QuedarÃa

Instalas el plugin

Seleccionamos Windows->JmoorbdReport

Escribes o pegas el entity

Abrimos el proyecto

Buscar el proyecto web

se muestra el editor

Escribimos el entity o lo pegamos

Recuerde que usted puede cambiar las etiquetas, modificar el archivo .jrxml, compilar el reporte, agregar Agrupaciones y Subreportes en las demás opciones como se describe en el libro de guÃa.
en esta ocasión usaremos el asistente para generar los reportes all.jrxml y detaiis.jrml y compilarlos automáticamente (all.jasper, details.jasper)para ello presionamos el botón Generadar todos los reportes

Nos envÃa la notificación

Observamos dentro de resources/reportes/rol
tenemos 4 archivos generados

Si tenemos iReport instalado en NetBeans o JasperStudio podemos abrir los archivos .jrxml
o podemos usar el mismo plugin para editarlos como se muestra en el tutorial..
Ejecutamos el proyecto
Entramos a rol

dar clic en el botón imprimir

Observamos el reporte

En el titulo aparece null porque tenemos en comentarios el parámetro p_empresa en el método init() de RolController.java
Editamos en RolContoller.java el método init()
public void init() {
try {
/*
configurar el ambiente del controller
*/
HashMap parameters = new HashMap();
Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
// parameters.put("P_EMPRESA", jmoordb_user.getEmpresa().getDescripcion());
JmoordbControllerEnvironment jmc = new JmoordbControllerEnvironment.Builder()
.withController(this)
.withRepository(rolRepository)
.withEntity(rol)
.withService(rolServices)
.withNameFieldOfPage("page")
.withNameFieldOfRowPage("rowPage")
.withTypeKey("primary")
.withSearchLowerCase(false)
.withPathReportDetail("/resources/reportes/rol/details.jasper")
.withPathReportAll("/resources/reportes/rol/all.jasper")
.withparameters(parameters)
.withResetInSave(true)
.build();
start();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
Observamos en el ejemplo que debemos indicar el nombre la empresa o encabezado como parámetro
// parameters.put("P_EMPRESA", jmoordb_user.getEmpresa().getDescripcion());
Aggreamos
parameters.put("P_EMPRESA", "MI EMPRESA");
Código ajustado
@PostConstruct
public void init() {
try {
/*
configurar el ambiente del controller
*/
HashMap parameters = new HashMap();
Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
// parameters.put("P_EMPRESA", jmoordb_user.getEmpresa().getDescripcion());
parameters.put("P_EMPRESA", "MI EMPRESA");
JmoordbControllerEnvironment jmc = new JmoordbControllerEnvironment.Builder()
.withController(this)
.withRepository(rolRepository)
.withEntity(rol)
.withService(rolServices)
.withNameFieldOfPage("page")
.withNameFieldOfRowPage("rowPage")
.withTypeKey("primary")
.withSearchLowerCase(false)
.withPathReportDetail("/resources/reportes/rol/details.jasper")
.withPathReportAll("/resources/reportes/rol/all.jasper")
.withparameters(parameters)
.withResetInSave(true)
.build();
start();
} catch (Exception e) {
errorServices.errorMessage(nameOfClass(), nameOfMethod(), e.getLocalizedMessage());
}
}// </editor-fold>
Ejecutamos nuevamente el proyecto y vemos que el reporte muestra el encabezado.

Si queremos ver el reporte details que corresponde a cada detalle, editamos el rol

dando clic en

se muestra el formulario de edición

dar clic en el botón imprimir


Last updated
Was this helpful?