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 :

Trier un Joint Data Set


Sujet :

BIRT

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut Trier un Joint Data Set
    Bonjour,

    J'ai un Joint Data Set (DataSetJoin1) qui est la jointure entre 2 Data Set (DataSet2 et DataSet3) sur un identifiant commun aux 2 Data Set.

    Je voudrais avoir un tri sur ce DataSetJoin1 sur une autre colonne que celle des identifiants des 2 tables qui est automatique.

    Comment puis-je faire cela ?

    Merci d'avance

  2. #2
    Membre habitué Avatar de TheChovix
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 77
    Points : 166
    Points
    166
    Par défaut [RE]
    Bonjour davelop,

    Je ne sais pas trop si ma réponse sera pertinente ou non, tout dépend de la version de la version de BIRT que tu utilises (même s'il ne doit pas y avoir de grandes différences); mais il me semble que tu peux modifier les dites colonnes directement dans les Propriétés de ton DataSet.

    Resource Explorer > Clic droit sur ton dataset > Propriétés

    Cela se profile comme suit :
    Nom : join_ds.gif
Affichages : 179
Taille : 11,5 Ko

    Tu sélectionnes la colonne de chaque table que tu veux joindre, et le type de jointure que tu souhaites utiliser, en général c'est un Inner Join qui est utilisé par défaut.

    En espérant que cela pourra t'aider.

    Cordialement.
    Le seul bogue à ne pas corriger c'est celui qui fait fonctionner le projet.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    Merci de ta réponse.

    Mais le problème n'est pas là, la jointure est faite mais je veux trier le résultat de ce Joint Data Set sur une autre colonne que celles utilisées pour la jointure.

    Dans l'image de ton exemple, le résultat de ton DataSet sera trié par CustomerNumber.
    Mais moi je voudrais le trier par CustomerName par exemple.

    Précision : Je pourrais le trier directement dans le tableau dans le rapport en rajoutant un "sorting" dans les propriétés du tableau.
    Mais je dois le faire en amont directement dans mon Joint DataSet car ensuite j'utilise des regroupements et agrégats dans mon tableau. Et pour cela le dataset doit être trié par la colonne de mon regroupement.

    Merci
    David

  4. #4
    Membre habitué Avatar de TheChovix
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 77
    Points : 166
    Points
    166
    Par défaut [RE]
    Ah d'accord.

    Malheureusement, je n'ai pas l'environnement de travail qu'il faudrait pour vérifier ce que je suis en train de te conseiller.
    Je ne pense pas que ça puisse être pertinent dans ton cas, mais tu pourrais essayer de modifier la requête d'appel dans ton dataSet qui doit être par défaut un SELECT * FROM taTable.
    Par exemple en utilisant la clause ORDER BY ou GROUP BY.

    Sinon tu peux directement modifier les options de filtrage et de groupement que te proposent l'éditeur de tableau.

    Désolé de ne pas pouvoir être plus précis.
    Le seul bogue à ne pas corriger c'est celui qui fait fonctionner le projet.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut
    Non car justement dans le Joint Data Set, il n'y a pas de requête SQL. La jointure se fait entre les 2 autres dataSet simplement en indiquant le type de jointure comme le montre ta copie écran.
    Et trier les 2 dataset en amont ne change rien car le Joint dataset re-tri le résultat sur la colonne utilisé par la jointure.

    Et modifier les options du tableau ne change rien non plus comme je l'indique car les données doivent être trié avant d'être utilisée par le tableau.

    Merci quand même d'avoir regardé

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Points : 836
    Points
    836
    Par défaut
    Effectivement je ne crois pas qu'il soit possible de trier un dataset joint avant son utilisation. Nativement du moins, car c'est possible en utilisant un peu de scripts. L'idée est la suivante:

    - Insérer une table cachée (option visibility) utilisant le joined dataset au début du rapport, et triée sur le critère souhaité
    - Dans la méthode onCreate de cette table, stocker chaque ligne dans un liste dynamique (par exemple un objet ArrayList). Ces lignes se retrouvent donc dans le bon ordre
    - Créer un dataset scripté utilisant la liste dynamique, et utiliser ce dataset pour le reste du rapport.

    Voilà, c'est pas évident car les datasets scriptés sont assez méconnus, mais avec un peu de méthode la complexité reste très raisonnable.

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/07/2007, 15h48
  2. Réponses: 4
    Dernier message: 05/07/2007, 11h11
  3. Bug? (The List must be able to access one data set)
    Par nicolemans72 dans le forum BIRT
    Réponses: 3
    Dernier message: 19/01/2007, 20h53
  4. [C#]Remplir un tree view avec un data set
    Par maitesn1 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/07/2006, 09h32
  5. Query data set
    Par Sandra dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/01/2003, 10h08

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