Crear reporte

Dentro de la carpeta resources debemos crear la carpeta reportes y dentro de ella una carpeta para cada entity.

Ahora creamos el reporte. Dar clic derecho en la carpeta tipo vehiculo File-->New --> Other

Seleccionar:

Categories: Report

File Types: Empty report

En el nombre usamos el mismo nombre del reporte

Se muestra el diseñador

En la parte izquierda en el tab Report Inspector, en la sección Fields, agregamos los atributos que tenemos definidos en el entoty Tipovehiculo.java (Recordar colocar el mismo nombre y tipo de cada atributo).

Sección Fields del reporte

Los arrastramos al diseñador y agregamos un titulo y numero de pagina.

Luego compilamos el reporte

En la parte inferior en el ide se muestra el resultado de la compilación

En la carpeta de reportes tenemos el archivo .jasper generado

Si revisamos el código de TipovehiculoContoller.java

  • El método print(), en la ruta indicamos el path donde esta almacenado el archivo .jasper, y el list que recibirá sera un con un solo objeto correspondiente al documento actual, y no definimos parámetros en el reporte por lo tanto el HGashMaop parametros estará vacío.

 @Override
    public String print() {
        try {
            List<Tipovehiculo> list = new ArrayList<>();
            list.add(tipovehiculo);
            String ruta = "/resources/reportes/tipovehiculo/tipovehiculo.jasper";
            HashMap parameters = new HashMap();
// parameters.put("P_parametro", "valor");

            printer.imprimir(list, ruta, parameters);
        } catch (Exception ex) {
            JsfUtil.errorMessage("imprimir() " + ex.getLocalizedMessage());
        }
        return null;
    }
  • En le método printAll(), se verifica si la persona filtro algunos registros en la pagina list, si no lo hizo se incovacaran todos los documentos y se pasaran al reporte.

 @Override
    public String printAll() {
        try {
            List<Tipovehiculo> list = new ArrayList<>();
            if (tipovehiculoFiltered.isEmpty()) {
                list = tipovehiculoList;
            } else {
                list = tipovehiculoFiltered;
            }

            String ruta = "/resources/reportes/tipovehiculo/tipovehiculo.jasper";
            HashMap parameters = new HashMap();
// parameters.put("P_parametro", "valor");

            printer.imprimir(list, ruta, parameters);
        } catch (Exception ex) {
            JsfUtil.errorMessage("imprimir() " + ex.getLocalizedMessage());
        }
        return null;
    }

Si ejecutamos el proyecto

En la pagina list

al dar click en Imprimir

Si hemos seleccionado un tipo vehiculo de la lista y estamos en la pagina view

Al hacer click en el botón Imprimir, tenemos la salida del reporte individual

Last updated