Les champs calculés non persistés ne sont pas calculés dans les tableaux croisés

,

Le groupement en CT a été rendu possible pour les champs calculés en Java en V5 et backporté en V4. Il faudra voir si dans votre cas cela fonctionne au prochain build. Ca devrait même fonctionner pour un champs calculée en axe de ligne ou colonne.

Attention
Le groupement dans ce cas est fait en Java et non en base de données, donc il peut y avoir de grosse différence de performances suivant la volumétrie des lignes à sommer. Il faudra privilégier la persistance de vos champs calculés si la volumétrie à monter en mémoire de la JVM devient trop importante.

Par exemple :

  • Avec un champ persistant : si on a 1 million de lignes en base, un
    select status, sum(amount) from invoice group by status
    ramènera quelques lignes agrégées
  • Mais si non persistant : si le montant est calculé, il y a aura 1 million de lignes en mémoire issues du search normal (pour évaluer les champs calculés au postSearch) avant d’être agrégées par code Java

Une autre approche sera d’avoir la possibilité de faire des champs calculés via des expressions de la base de données, pour éviter les expressions interprétées Rhino ou Java. Là on pourra surement revenir à des expressions SQL avec group-by.