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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    juin 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 231
    Points : 183
    Points
    183

    Par défaut 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é
    Profil pro
    Inscrit en
    juin 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 231
    Points : 183
    Points
    183

    Par défaut

    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+


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/07/2012, 15h46
  2. Réponses: 0
    Dernier message: 17/06/2008, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo