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?