Ignorer les ocurrences nulles dans les colonnes d'un crosstab

Request description

Bonjour,

J’ai un TC basique avec une date en colonne et un champ Integer en valeur.
J’ai regroupé l’axe date par mois, mais pour certains mois je n’ai pas de données.
Je souhaite que pour les mois sans données, la courbe soit “lissée” jusqu’au mois suivant au lieu de retomber à 0. Est-ce possible ?

Merci d’avance pour votre aide
Emmanuelle

[Platform]
Status=OK
Version=5.3.46
BuiltOn=2024-08-30 12:32

Bonjour,

Non je ne pense pas, et ça n’a pas trop de sens : le “count group by month” retourne à juste titre des 0 sur les mois vides. Si ce n’est pas linéaire faute de données, pourquoi afficher une courbe ? Autant afficher un “chart bar” si ce sont bien des valeurs discrètes.

Sinon il faut essayer de surcharger la méthode searchCrosstab pour retourner d’autres données, par exemple :

  • retirer les tuples vides mais je ne sais pas si chart.js sait afficher un chart line “partiel”
  • ou en créer avec des données extrapolées (ex: moyenne ou palier/valeur du mois précédent non vide), mais ça peut devenir confusant pour l’utilisateur qui va croire qu’il y a des données ce mois là
public List<String[]> searchCrosstab(Crosstab c)

Mais mon avis est de laisser les 0 en chart line ou bar.

Merci pour ton retour rapide, avec les bar c’est moins choquant mais j’ai quand même des trous :-/
Je vais dans ce cas regarder ce hook pour remplacer par la valeur précédente en cas de 0 dans la liste retournée.

Ok en appelant le super.searchCrosstab tu devrais récupérer les valeurs vides à corriger.

A valider que d’un point de vue métier ça a du sens de recopier la valeur du moins précédent non vide = palier de valeur tant que pas de nouvelle valeur connue.

Mais ça pourrait être une interpolation linéaire comme à l’école :wink:

Oui c’était tentant de coder ça mais les mois où il n’y a rien c’est que personne n’a travaillé donc on va faire du plat :slight_smile:

Désolée j’ai encore une question, j’ai pu lisser la courbe mais je ne vois pas comment supprimer le total qui n’a pas de sens dans notre cas (évolution d’un pourcentage dans le temps basé sur la table historique)

Ou alors ce n’est pas les CT que je dois utiliser pour un graph aussi basique ?

Je ne pense pas qu’on puisse retirer par paramétrage le Total du tableau dès que la donnée est numérique.

  • Mais on peut afficher le Max ou la Moyenne et pas la Somme
  • Ou masquer le tableau s’il ne sert pas dans la vue
  • Ou par CSS à ajouter dans une ressource STYLES de l’objet ou dans la vue, exemple :
.crosstab.crosstab-MyCTname table th:last-child, 
.crosstab.crosstab-MyCTname table td:last-child  {
   display: none;
}

on peut bien sûr développer un objet externe qui affiche un simple chart, il doit y avoir des exemples dans les tools & tips.

1 Like

Merci beaucoup je vais regarder tout ça, je clos ce ticket :slight_smile:

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.