Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Mes meilleurs voeux à tous et félicitation quant au fonctionnment de ce forum.
Enoncé du problème:
J'admet c'est un peu tiré par les cheveux
Une base de données, des records pour y stocker entre autre les bugs et leur numéro de version.
Je fais un graphique représentant le nombre de bug par version. Formule1
=count ({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)
Sauf que pour une valeur spécifique de version, je dois additionner un reliquat d'une précédente gestion.
En substance,
si version = '2.1.*'
alors je compte les bugs + ce reliquat
sinon je compte les bugs de la version
En faisant cette formule de calcul sur un objet texte , cela fonctionnement parfaitement :
=count ({<typefiche={Bug, Anomalie}, versionAffect={'2.1.*'}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)+ 100 (exemple devaleur de reliquat)
J'ai essayé assez naivement de faire un :
if (left(versionaffect,5)='2.1.0', formule1+100 , formule1) -> Marche pas
Une idée ou alors une autre façon de faire ?
J'ai placé versionAffect en dimension mais avec un calcul pour spécifier que tout ce qui est 2.2.0 devient 2.2.1.
=if (left(versionAffect,5) = '2.2.0', '2.2.1',left(versionAffect,5))
Pas encore un truc simple
Il suffit d'intégrer le terme conditionné à l'intérieur du aggr:
=sum(aggr(
count(
{<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef
)
+ if( wildmatch( versionAffect, '2.1.0*) , 100)
,versionAffect
))
En reprenant la formule :
La valeur pour la version 2.1.0 passe à 3203.
La courbe ne présente plus les valeurs pour les autres versions.
JE me suis apercu d'une coquille dans ce que je vous ai envoyé:
Il faut taper wildmatch( versionAffect, '2.1.0*' ) i.e. fermer l'expression régulière par une quote.
Désolé. En espérant que ca marche...
J'avais corrigé, car la formule m'indiquait une erreur dans les parenthèses.
Le problème reste entier hélas.
J'ai déjà eu ce problème: lorsqu'on utulise aggr, il faut coupler sum avec total<les-clés> sinon QV met tout sur une des valeurs:
Essayez de remplacer
sum( aggr(
par :
sum( TOTAL<versionAffect> aggr(
Rappel de la formule :
=sum(TOTAL <versionAffect> Aggr(count({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)+
if( wildmatch( versionAffect, '2.1.0*'), 100),versionAffect))
Résultat: J'ai toujours 3203
Essayez de mettre versionAffect en dimension de votre graphique et nous allons essayer de trouver la bonne valeur. Ensuite, on remettra la dimension calculée...
Autre chose, votre table Qv est-elle issue d'une source unique ou est-elle reconstituée par des JOIN avec possibilité de champs positionnés à NULL ?
J'ai trouvé le vrai problème. C'est if( wildmatch() , 100) qui élimine les valeurs non matchantes: il faut ajouter le terme 0 donnant la valeur prise en cas d'échec du match d' où la formule:
=sum(TOTAL <versionAffect>
Aggr(count({<typefiche={Bug, Anomalie}, resolution={'Fixed','Non resolu', 'A traiter dans futur projet'}>} clef)
+
if( wildmatch( versionAffect, '2.1.0*'), 100, 0)
,versionAffect))