Menu

Contenido de combo de @DescriptionsList dependiente del valor de otro combo

2024-06-17
2024-06-21
  • Iván Castillo

    Iván Castillo - 2024-06-17

    Hola soy nuevo y sorprendido con muchas cosas.
    Ahora estoy atorado con algo que parece sencillo en otras plataformas pero que no le encuentro.

    tengo una entidad Tipo cuenta.
    Luego una entidad cuenta que pertenece a un tipo.
    Luego una entidad Movimiento que tiene un tipo cuanta y una cuenta asociada.
    Lo que busco es que cuando se seleccione el tipo cuenta, el combo de la cuenta solo tenga los valores permitidos de las cuentas que están asociadas a ese tipo. ver imagen adjunta.

    Pero no logro saber cuál es el proceder.

    Si pueden guiarme por favor.

    @Entity @Getter @Setter
    public class Tiposcuenta {
    
        @Id @GeneratedValue(generator="system-uuid") @Hidden
        @GenericGenerator(name="system-uuid", strategy = "uuid")
        @Column(length=32)
        String oid; // La definición de propiedad incluye anotaciones de OpenXava y JPA
    
        @Required
        @Column(length=15)
        String nombre;
    
     public class Cuenta {
    
        @Id @GeneratedValue(generator="system-uuid") @Hidden
        @GenericGenerator(name="system-uuid", strategy = "uuid")
        @Column(length=32)
        String oid; // La definición de propiedad incluye anotaciones de OpenXava y JPA
    
        @ManyToOne( // La referencia se almacena como una relación en la base de datos
                fetch=FetchType.LAZY, // La referencia se carga bajo demanda
                optional=false) // La referencia no puede estar sin valor
        @DescriptionsList // Así la referencia se visualiza usando un combo
        @Required
        Tiposcuenta tipoCuenta;
    
        @Column(length=20)
        @Required
        String nombre;
    
    public class Movimiento {
        @Id @GeneratedValue(generator="system-uuid") @Hidden
        @GenericGenerator(name="system-uuid", strategy = "uuid")
        @Column(length=32)
        String oid; // La definición de propiedad incluye anotaciones de OpenXava y JPA 
    
    
        @Column(length=10)
        @ReadOnly
        int numero; // Numero de movimiento
    
        @ManyToOne( // La referencia se almacena como una relación en la base de datos
                fetch=FetchType.LAZY, // La referencia se carga bajo demanda
                optional=false) // La referencia no puede estar sin valor
        @DescriptionsList // Así la referencia se visualiza usando un combo
        @Required
        @NoCreate
        @NoModify
        @ReadOnly(onCreate=false)
        Tiposcuenta tipoCuentaOrigen;
    
        @ManyToOne( fetch=FetchType.LAZY,optional=false) // La cuenta origen es obligatoria
        @DescriptionsList // Así la referencia se visualiza usando un combo
        //@OnChange(value = )
        @Required
        @NoCreate
        @NoModify
        @ReadOnly(onCreate=false)
        Cuenta cuentaOrigen;
    
     
  • Javier Paniza

    Javier Paniza - 2024-06-19

    Hola Iván,

    Para indicar que los valores de un combo dependende de otro como has de usar los atributos depends y condition de @DescriptionsList, así:

    @DescriptionsList(
         depends="tipoCuentaOrigen", 
         condition="${tipoCuenta.id} = ?" 
    )
    Cuenta cuentaOrigen;
    

    Tendrás que ajustar la condición, porque puede que no sea tipoCuenta.id, tendrás que poner los nombres que toquen según tu código.

    Mirate la documentación que explica lo de los combos dependientes:
    https://www.openxava.org/OpenXavaDoc/docs/view_es.html#Vista-Personalizacion+de+referencia-Lista+descripciones+%28combos%29


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • Iván Castillo

    Iván Castillo - 2024-06-21

    Que Bien Que Fácil... Ya me funciono.
    Javier Admiro mucho tu trabajo. Gracias

     

Log in to post a comment.