Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/06/2011, 10h11   #1
Nouveau Membre du Club
 
Femme Marie
Ingénieur développement logiciels
Inscription : septembre 2008
Messages : 48
Détails du profil
Informations personnelles :
Nom : Femme Marie
Âge : 25
Localisation : France

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

Informations forums :
Inscription : septembre 2008
Messages : 48
Points : 28
Points : 28
Par défaut paramètres dynamiques et jointure

Bonjour,

J'ai une question concernant les paramètres dynamiques. Je souhaite afficher un certain nombre d'élément dans un tableau. J'utilise les paramètres dynamiques pour limiter le nombre de jointure.
J'ai donc une requête de type

Imaginons que je veuille filtrer les auteurs selon leur pays d'origine, j'ai un paramètre dynamique Pays.

Donc si l'utilisateur sélectionne un pays une jointure va s'ajouter à ma requête.

Ma question est la suivante : si dans le rapport je veux afficher le nom du pays et pas seulement son id est-ce que c'est possible ? Ce serait possible si dans ma requête j'avais directement une jointure car les colonnes de la table Pays s'ajouteraient aux colonnes de ma table Auteur. Mais là ce n'est pas le cas.

En fait je pense que si je veux afficher le nom du Pays je suis obligée de faire la jointure au niveau du dataSet. J'ai juste besoin d'une confirmation pour être sur que je ne pars pas à l'ouest.

Merci,

--
Marie
shintaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 18h25   #2
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Bonjour Marie,

Personnellement, j'aurai mis ma jointure quoi qu'il arrive! Tu ne perd rien de le faire au pire des cas tu peux ajouter une condition dans le where si le paramètre est renseigné ce qui te permettra d’exécuter ta requête plus rapidement!
N'hésite pas à utiliser le script du DataSet qui est à mon sens plus simple à utiliser.

Ensuite pour ton problème d'afficher ou non du nom du pays c'est assez simple, utilise la propriété "visibility" et passe le à true si le paramètre est renseigné!


Bon courage et n'hésite pas à poser tes questions si tu as un soucis par la suite
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 18h42   #3
Nouveau Membre du Club
 
Femme Marie
Ingénieur développement logiciels
Inscription : septembre 2008
Messages : 48
Détails du profil
Informations personnelles :
Nom : Femme Marie
Âge : 25
Localisation : France

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

Informations forums :
Inscription : septembre 2008
Messages : 48
Points : 28
Points : 28
Bonjour David,

En fait c'est dans un soucis de performance que je veux utiliser les paramètres dynamiques.

Je ne suis donc pas d'accord pour mettre ma jointure quoi qu'il arrive. Quand on a une table qui fait déjà dans les 300 000 lignes et qu'on risque d'avoir besoin de faire une vingtaine de jointure sur des tables allant de 50 000 à 300 000 lignes on essaie de faire seulement ce qui est nécessaire. Et d'ailleurs plutôt que d'utiliser une clause 'where' il vaut mieux utiliser le 'on' de la jointure qui est plus optimisée.

Et justement les filtres dynamiques sont cools de ce côté là puisque lorsque l'utilisateur ne veut pas mettre de condition alors la jointure ne va pas se faire. En fait la jointure va s'ajouter toute seule dans ma requête si l'utilisateur choisi un opérateur autre que 'pas de condition' (si j'ai bien compris le fonctionnement).

Ton idée de prendre directement le nom du pays depuis le paramètre est bonne sauf dans le cas ou justement l'utilisateur va décider de ne pas mettre de nom (le cas 'pas de condition'). Dans ce cas je vais avoir plusieurs nom de pays différents selon mes auteurs

je crois pas que le problème soit très évident. Et je suis pas sure que tu vas comprendre ce que j'ai dit au dessus :p

En tout cas le seul moyen est de faire ce que tu dis en premier. Si on veut récupérer la colonne d'une table alors on est obligé de faire une jointure directement dans la requête.

je te remercie pour ta réponse, j'avais besoin d'un avis extérieur

--
Marie
shintaa est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/07/2011, 01h31   #4
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
+1 pour toi pour la jointure

Petit conseil, n'hésite pas à utiliser le script de ton DataSet, c'est beaucoup plus simple
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h39.


 
 
 
 
Partenaires

Hébergement Web