SubReporte Referenciado de Usuario

Recordemos que el entity Usuario contiene un List<> referencia a Rol.

public class Usuario {

    @Id
    private String username;
    private String password;    
    private String nombre;
    private String cedula;
    private String celular;
    private String cargo;
    private String email;
    @Referenced(documment = "Rol",
            field = "idrol", javatype = "String", lazy = false,
            repository = "com.crudejb.repository.RolRepository")
    private List<Rol> rol;
   
 
    private String activo;
    @Embedded
    List<UserInfo> userInfo;

    public Usuario() {
    }
    }

Necesitamos crear un subreporte para manejarlo, si no fuese un List<> lo manejamos de manera diferente como se indica en el manual de jmoordbreport.

En el reporte

En el subreporte colocamos Rol

y dar clic en en Generador de reportes,

Observe la notificación del reporte se han creado nuevos reportes:

  • all

  • details

  • rol_subreport

  • usuario_master

Observamos la lista de reportes

En el init() de UsuarioController.java agregamos para indicar el nombre de la empresa

Ejecutamos el reporte

dar clic en el botón imprimir

Podemos ver que no se muestran los Roles ya que es un List<Rol> y estamos invocando el reporte all.jasper, ahora cambiaremos para invocar el reporte master con el subreporte.

Creamos un boton en el formulario list.xtml

antes del </b:panel> superior al datatable

Creamos el método para imprimir en UsuarioController.java

Indicar la ruta del reporte principal:

Indicar la ruta del subreporte

Segmento de código:

Al ejecutarlo

Al dar clic en el botón Subreporte

Haremos el ejercicio de crear un Rol llamador AUDITOR y se lo asigamos al usuario

Editamos el usuario y le agregamos el nuevo Rol

Regresamos al list.xhtm de Usuario

Observamos los dos roles

Last updated

Was this helpful?