IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

BIRT Discussion :

crosstab / filtre / soustraction


Sujet :

BIRT

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 43
    Points
    43
    Par défaut crosstab / filtre / soustraction
    Bonjour,

    J'ai un crosstab A avec des données de l'année 2009 et un crosstab B avec des données de l'année 2010. (le filtre sur l'année se fait au niveau du crosstab, il ne s'agit pas d'une de mes dimensions).

    Je souhaite avoir un crosstab qui va être la soustraction de A par B. Je ne sais pas si je suis assez claire, je m'explique :

    A - 2009 :
    Première dimension : Statut (G, C, R).
    Seconde dimension : Nationalité (Français, Nationaux, Etrangers).
    Mesure : nombre d'élève

    #######G|C|R
    Français#|
    Nationaux|AGREGATION
    Etrangers|

    Agrégation : le crosstab automatiquement va afficher le nombre d'élève par nationalité et statut. Dans mon cube j'ai une dimension temps (année). Ce que je souhaite c'est avoir cette agrégation avec l'année 2009, une autre avec l'année 2010 et une donnée avec la soustraction des deux.

    Le problème c'est que la dimension temps n'apparait pas dans mon crosstab (je veux pas l'afficher, c'est l'utilisateur qui choisit l'année) et donc je ne peux pas filtrer sur cette dimension dans mes agrégations.

    Je pense que ce que je demande n'est pas possible avec un crosstab mais on sait jamais ... La seule solution serait de passer une table ou un seul crosstab ? Je suis donc obligée d'ajouter le temps à mes dimensions ?

    Si ma requête n'est pas claire je peux apporter des précisions.

    --
    Marie

  2. #2
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Bonjour,

    Je pense que le plus simple serait que tu fasses un troisième tableau croisé, copié sur le modèle des deux précédents, mais sans filtre général sur l'année.
    Dans ce tableau, tu peux modifier chaque donnée d'agrégation pour lui ajouter un filtre individuel (sur l'année). Ensuite, en dupliquant chaque donnée, et en modifiant le filtre de chaque copie (sur l'autre année - tu devras renommer cette copie pour bien distinguer les deux données différentes), tu te retrouveras avec tes deux données dans la même cellule. Tu n'auras plus qu'à faire une troisième donnée étant la différence des deux premières (tu n'es pas obligée de garder les deux premières affichées, elles existeront toujours dans le "binding" de ton tableau).

    Si jamais tu devais rendre le système dynamique (même comportement sur plusieurs années au lieu de deux), ça ne serait sans doute plus faisable comme ça.

    Bon courage.

    Edit : je suis allé un peu vite sur la gestion de l'année. Pour qu'elle soit accessible tu risques de devoir pas mal bidouiller ton tableau. Si tu bloques dis le moi, je ferai un exemple.

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 43
    Points
    43
    Par défaut
    Bonsoir,

    Je ne pense pas que ta solution fonctionne. C'est impossible d'ajouter un filtre individuel sur une donnée par rapport à l'année. Les seuls filtres possibles sont par rapport aux dimensions utilisés par le tableau (dans mon exemple la dimension nationalité et statut). Ce n'est pas possible de filtrer une donnée par rapport à une autre dimension. Ou alors je ne vois pas par quel moyen car ds le filtre je ne peux pas sélectionner la donnée de ma dimension année.

    Je me demande s'il n'y a pas moyen d'ajouter la dimension année au niveau des colonnes. Je fais des tests dans ce sens en ce moment. C'est plutôt infructueux mais je continue à chercher.


  4. #4
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Je n'ai pas le temps de le faire maintenant mais l'idée que j'ai en tête, c'est de rajouter la dimension "temps" à ton tableau, de la mettre en amont de tes colonnes, trouver le moyen de virer les colonnes individuelles et tout faire dans le total.

    Bon, c'est quand même assez pourri. Je verrai plus tard si j'ai le temps.

    Bon courage.

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Je me suis trompée. Lorsqu'on crée un crosstab on peut filtrer ses agrégations avec n'importe quelles dimensions. Seulement dans les expressions on ne peut auto-compléter seulement les dimensions utilisées en ligne et en colonne. Mais c'est quand même possible d'écrire du code avec d'autres dimensions et ça fonctionne.

    Du coup la solution est de garder les mêmes dimensions pour le crosstab. D'ajouter une agrégation pour mon nombre d'étudiant avec un filtre sur 2009 puis une autre agrégation avec un filtre sur 2010. Ensuite une donnée qui fait la différence.

    C'est ce que je vais faire aujourd'hui. Si ça ne fonctionne pas exactement comme ça je reviendrais poster la solution finale.

    Bonne journée,

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

Discussions similaires

  1. filtre dans crosstab
    Par eryck dans le forum BIRT
    Réponses: 1
    Dernier message: 16/08/2010, 08h24
  2. Filtre Aggregation CrossTab
    Par elferachi dans le forum BIRT
    Réponses: 9
    Dernier message: 25/06/2008, 12h13
  3. TADOTable et filtre
    Par GaL dans le forum C++Builder
    Réponses: 16
    Dernier message: 02/07/2002, 16h52
  4. Filtre passe Bande
    Par Mau dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 28/06/2002, 17h03
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

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