|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
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 |
|
|
00
|
|
|
#2 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
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
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Marie Ingénieur développement logiciels Inscription : septembre 2008 Messages : 48 ![]() |
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 |
|
|
10
|
|
|
#4 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
+1 pour toi pour la jointure
Petit conseil, n'hésite pas à utiliser le script de ton DataSet, c'est beaucoup plus simple
__________________
![]() ![]() ![]() David55 |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com