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?