Je vous résume rapidement mon problème (qui n'est qu'un exemple) :
J'ai un champs "Qté Vendue Projet" que je désire analyser un niveau le plus fin (Projet détaillé : qui est un attribut d'une dimension projet) à date ...
Trois cas possibles de calcul en mdx :
- Cas 1 : Si je suis sur un projet de type "Forfait" : Qté Vendue Projet=Qté
- Cas 2 : Si je suis sur un projet de type "Régie" : Qté Vendue Projet=Qté réalisée passée (autre champs MDX) + Qté planifiée futur (autre champs MDX)
- Cas 3 : Si je suis sur un projet de type "Pointage" : Qté Vendue Projet=0
J'ai donc crée un champs calculé MDX :
Mais au résultat au travers d'une analyse avec plusieurs attributs différents j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE MEMBER CURRENTCUBE.[MEASURES].[Qté Vendue Projet] AS CASE ISLEAF([Projet].[Projet Détaillé].CurrentMember) WHEN TRUE THEN IIF([Measures].[Mtt Vendu]=Null, Null, IIF([Projet].[Type Projet] IS [Projet].[Type Projet].&[Pointage], 0, IIF([Projet].[Type Projet] IS [Projet].[Type Projet].&[Régie], [Measures].[Qté Réalisée Passée]+[Measures].[Qté Planifiée Futur], [Measures].[Qté Vendue] ) ) ) ELSE SUM(EXISTING(DESCENDANTS([Projet].[Projet Détaillé].CurrentMember,, LEAVES)),[MEASURES].[Qté Vendue Projet]) END, FORMAT_STRING = "#,#.00", VISIBLE = 1 ;
Client vient d'une dimension client et "Type Projet" (Régie, Forfait, Pointage) ainsi que le "Projet Détaillé" par lui même de la dimension projet ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Client 1 12492 = Forfait + Pointage => Pas OK (Résultat attendu : 6225 => 6225+0 ou 6085+140+0+0) Forfait 6225 = Projet 1 + Projet 2 => OK Projet 1 6085 Projet 2 140 Pointage 0 = Projet 3 + Projet 4 => OK Projet 3 0 Projet 4 0 Client 2 273 = Forfait + Régie => Pas OK (Résultat attendu : 7099 =>259+6840 ou 259+6700+140) Forfait 259 = Projet 5 => OK Projet 5 259 Régie 6840 = Projet 6+Projet 7 => OK Projet 6 6700 Projet 7 140 Total Général 12765 => Client 1 + Client 2 => Pas OK (Résultat attendu : 13324 => 6225+7099 ou 6225+0+259+6840 ou 6085+140+0+0+259+6700+140)
Donc :
Je précise que j'aimerais bien trouver une solution qui ne dépendent pas des attributs choisis mais uniquement de l'élément "Projet Détaillé" qui est le plus bas ... Mais déjà si cela pouvait marcher sur cet exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Client Type Projet Projet Détaillé
J'espère que vous allez pouvoir m'aider
Merci d'avance !
Partager