Menu

Agrupación en modo lista no suma propiedades sumadas en modo lista

JOSE ELIAS
2021-11-09
2025-12-01
  • JOSE ELIAS

    JOSE ELIAS - 2021-11-09

    Buenos días, JP

    En los tab podemos poner, por ejemplo, partida.importePosicion+ y vemos la columna sumada. Sin embargo, si agrupamos, por ejemplo, por empresa, no se tiene en cuenta esta propiedad y no la presenta como propiedad agregada.

    ¿Es un bug?

     
  • Javier Paniza

    Javier Paniza - 2021-11-11

    Hola José:

    A mi si que me funciona. Con este código:

    @Tab( properties = "year, number, description, amount+" )
    

    Agrupo y me sale como en el pantallazo que te adjunto.

    Puede que no tenga que ver con el sumatario, quizás está relacionado con estar en una referencio o con el tipo de dato.

    ¿Qué pasa si quitas el +? ¿Sale la columna agrupada?
    ¿Que pasa si pones el + en una propiedad plana?
    ¿El dato es BigDecimal? Si no pruebalo con un BigDecimal.

    Haz más prueba y me comentas.


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

     
  • JOSE ELIAS

    JOSE ELIAS - 2021-11-11

    Si es una propiedad BigDecimal plana si que funciona, es cuando este BigDecimal está en una referencia cuando no funciona, directamente no la muestra en pantalla.

     

    Last edit: JOSE ELIAS 2021-11-11
  • Javier Paniza

    Javier Paniza - 2021-11-15

    Hola José:

    Efectivamente, las propiedades de las referencias no se incluyen. He estado revisando el código que decide si una propiedad es agrupable. Es este método de Tab:

    private boolean isPropertyGroupable(String propertyName) { 
        MetaProperty p = getMetaTab().getMetaModel().getMetaProperty(propertyName);
        if (!p.isNumber() || p.isCalculated() || p.hasValidValues()) return false; 
        if (propertyName.contains(".")) return false; // ESTA ES LA CAUSE
        propertyName = propertyName.toLowerCase();
        return !propertyName.contains("year")   && !propertyName.contains("number") 
            && !propertyName.contains("code")   && !propertyName.contains("percentage") 
            && !propertyName.contains("año")    && !propertyName.contains("ano") 
            && !propertyName.contains("anyo")   && !propertyName.contains("numero") 
            && !propertyName.contains("codigo") && !propertyName.contains("porcentaje");
    }
    

    Fíjate que preguntamos si propertyName.contains("."). Ahora mismo no me acuerdo por que puse eso, pero seguro que había una buena razón. Si quieres puedes añadirlo como un bug e intentaré ponerlo.


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

     
  • JOSE ELIAS

    JOSE ELIAS - 2021-11-15

    Registrado, gracias.

     
  • Javier Paniza

    Javier Paniza - 2025-12-01

    Hola JE:

    Este bug ya está resuelto y su arreglo lo incluiremos en OpenXava 7.6.3, disponible en unas pocas semanas.

     

Log in to post a comment.