Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mondrian Discussion :

MDX pour avoir un "lastChild" correct


Sujet :

Mondrian

  1. #1
    Membre habitué
    MDX pour avoir un "lastChild" correct
    Bonjour,

    J'ai un petit problème pour afficher ce que je veux avec JPIVOT.

    En fait, j'ai une dimension temps qui contient des années et des mois.
    Quand on clique sur une année, les mois se déroulent.

    Ce que je veux c'est que sur la ligne de l'année, il n'y ai pas la somme des mesures des mois de l'année mais la valeur des mesures du dernier mois de l'année. Pour ça j'utilise la fonction "lastChild". C'est là qu'intervient le problème, je récupère toujours le mois de décembre même si les mesures pour ce mois sont vides.
    Je voudrais récupéré le dernier mois pour lequel les mesures ne sont pas null. Et ça je ne sais pas comment faire... Donc si une âme charitable saurait m'aider, qu'elle me fasse signe !

    Merci d'avance.

  2. #2
    Membre habitué
    C'est bon, j'ai trouvé la solution, je vais la mettre si ça peut intéresser quelqu'un...

    Dans un premier temps je crée une mesure pour savoir si nous sommes sur un mois ou une annee :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    MEMBER [Measures].[Test] AS
                [Temps].children.count


    Si c'est un mois c'est égal à 0 sinon c'est égal à 12.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     /*Entrants SF*/
          MEMBER [Measures].[Entrants SF] AS
          IIF (
                   [Measures].[Test] = 0,
                   [Measures].[Entrant par SF],
                            TAIL( FILTER( [Temps].CURRENTMEMBER.firstChild : [Temps].CURRENTMEMBER.lastChild,
                         NOT ISEMPTY(  [Measures].[Entrant par SF] ) ) * 
            {[Measures].[Entrant par SF] }, 1 ).ITEM(0)
     
               )


    Ici, je créé une mesure. qui prend pour valeur :
    - Si "test" = 0 (si c'est un mois)
    La mesure prend pour valeur la mesure de mon cube
    - Sinon (c'est une année) je prend le dernier mois non null de l'année en cours.

    Je ne sais pas si je suis très clair mais bon ça marche chez moi ! A+