Menu

ShowDialog y Varios grupos en la vista NO funciona

2024-06-26
2024-06-28
  • Juan Pelaez Boismorand

    Buenas,
    De una entidad estoy haciendo una consulta para lo cual utilizo una acción donde monta un ShowDialog utilizando una View personalizado, si en este view defino varios grupos da error, no reconoce los campos delos grupos anteriores es como si solo admtiera un grupo desde el Showdialog .

    Codigo :

    Obra obraView = new Obra();
    showDialog();
    getView().setTitle("Consulta de Obras");
    getView().setModel(obraView);
    getView().setKeyEditable(false);
    getView().setViewName("Consulta");
    getView().setValue("idObra", obraRec.getIdObra());
    getView().setValue("nombra", obraRec.getNombra());
    getView().setValue("numCon", obraRec.getNumCon());
    getView().setValue("nomCon", obraRec.getNomCon());
    getView().setValue("codContratista", codTratista);
    getView().setValue("nomContratista", nomTratista);
    getView().setValue("codTecnico", codNico);
    getView().setValue("nomTecnico", nomNico);
    getView().setValue("codDirector", codDirec);
    getView().setValue("nomDirector", nomDirec);
    getView().setEditable("tipoObra", false);
    getView().setValue("tipoObra.clave", obraRec.getTipoObra().getClave());
    getView().setValue("tipoObra.descripcion", obraRec.getTipoObra().getDescripcion());
    getView().setEditable("ejecutadaPor", false);
    getView().setValue("ejecutadaPor.clave", obraRec.getEjecutadaPor().getClave());
    getView().setValue("ejecutadaPor.descripcion", obraRec.getEjecutadaPor().getDescripcion());
    getView().setEditable("plazoGarantia", false);
    getView().setValue("plazoGarantia", obraRec.getPlazoGarantia());

            setControllers("EdicionConsultaObra");
    
            @View(name="Consulta",
        members=        
         "idObra, nombra;"
        + ">[#" 
        + "numCon, nomCon;" 
        + "codContratista, nomContratista;" 
        + "codTecnico, nomTecnico;" 
        + "codDirector, nomDirector;"
    
        + "tipoObra, ejecutadaPor, plazoGarantia;"
        +  "];"
        )
    

    ASI FUNCIONA PERFECTAMENTE ....


    @View(name="Consulta",
    members=
    "idObra, nombra;"
    + ">[#"
    + "numCon, nomCon;"
    + "codContratista, nomContratista;"
    + "codTecnico, nomTecnico;"
    + "codDirector, nomDirector;"
    + "]
    ;"
    + ">[#"
    + "tipoObra, ejecutadaPor, plazoGarantia;"
    + "]
    ;"
    )
    ASI DA EL SIGUIENTE ERROR :
    DETALLADO: Tiempo petición=2614 ms
    jun. 26, 2024 1:14:18 P. M. org.openxava.controller.ModuleManager manageRegularException
    GRAVE: 'numCon' no existe en la vista 'Consulta' de 'Obra'
    org.openxava.util.XavaException: 'numCon' no existe en la vista 'Consulta' de 'Obra'

    si voy eliminando campos del primer grupo el error apunta al siguiente campo, es como si no reconociera el primer grupo para nada ....

     
  • Juan Pelaez Boismorand

    Puntualizar que el tema de GRUPOS lo utilizo de forma EXTENSA en la vista por omisión de esta entidad y no da problemas ......

     
  • Javier Paniza

    Javier Paniza - 2024-06-28

    Hola Juan:

    Lo que he visto raro es que hay dos grupos con el mismo nombre. Los grupos tienen que tener nombre únicos, que deberías seguir la normativa de nombres de Java. Me parece extraño que soporte el > como un nombre de grupo. Lo de nombre es importante porque se puede usar para acceder al grupo, así:

    getView().getGroupView("datosPersonales");
    

    Ahora si tu haces:

        getView().getGroupView(">");
    

    ¿Cuál de los dos grupos debería escoger?

    Escribe tu vista así:

    @View(name="Consulta",
    members=
    "idObra, nombra;"
    + "grupo1[#"
    + "numCon, nomCon;"
    + "codContratista, nomContratista;"
    + "codTecnico, nomTecnico;"
    + "codDirector, nomDirector;"
    + "]
    ;"
    + "grupo2[#"
    + "tipoObra, ejecutadaPor, plazoGarantia;"
    + "]
    ;"
    )

    Y en tu archivo de etiquetas añade:

    grupo1=>
    grupo2=>
    

    No pensaba que nadie usaría un > como identificador, o que usara el mismo identificador para dos elementos diferentes. Pero ahora que he visto que es posible puedes añadir una petición para modificar OpenXava para que de un aviso o un error cuando alguien use un identificador no válido (como >) o defina varios grupos con el mismo nombre. De esta forma el siguiente que se encuentre con tu problema no perderá tanto tiempo.


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

     
  • Juan Pelaez Boismorand

    Buenas Javier,

    SI, tienes razón, el problema es poner el mismo calificativo o titulo a los grupos, tal y como de detallas tu funciona perfectamente.

    Lo de ">" es que no les quería poner titulo a los grupos y creo que si no pongo nada no va.

    gracias

     

Log in to post a comment.