2010-11-10 42 views
1

j'ai cette requête mdx:..filtre et mdx renommer

avec un membre [mesures] [MemberName1] comme [dequipo.jequipo] .CurrentMember.Caption ' sélectionnez NON EMPTY {[Measures] [MemberName1] } Columns, Hierarchize (Union ({[dequipo.jequipo]. [Toutes dequipo.jequipos]}, [dequipo.jequipo]. [Toutes dequipo.jequipos] .children)) sur les lignes de [Ctrabajo]

Je veux les valeurs du champ de légende. Avec cette requête, je les ai. cependant, pour le cas [dequipo.jequipo]. [Tous dequipo.jequipos] n'a pas de valeur de légende. Il montre "Tout dequipo.equipo" mais je voudrais montrer seulement TOUT ou un autre mot comme "TODOS" (mot espagnol). Toutes les idées s'il vous plaît?

Répondre

0

Vous devez normalement définir ceci dans le concepteur de cube dans Visual Studio.

Ouvrez votre dimension et recherchez dans l'onglet Propriétés de la dimension, il doit y avoir une propriété "AttributeAllMemberName", définissez-la comme vous le souhaitez.

0

Vous pouvez le faire dans votre déclaration de membre personnalisée. Vous ajoutez une instruction 'IF' pour voir si le membre (que le forumla utilise actuellement) est au niveau supérieur de la dimension ou non.

Je ne peux pas vérifier ce MDX à l'heure actuelle, mais je crois que vous avez besoin:
with member [Measures].[MemberName1] as IIF([dequipo.jequipo].CurrentMember.level = 0, 'TODOS', '[dequipo.jequipo].CurrentMember.Caption')

la fonction IIF (immédiat si) a 3 arguments:
1 - test vrai/faux (je vérifie si le niveau est égal à zéro, ce qui signifie le haut)
2 - valeur à renvoyer si vrai
3 - valeur à renvoyer si elle est fausse

Désolé qui est un peu vague.