J'essaie de convertir l'un de nos rapports les plus simples à Reporting Services.Sélection de paramètre pour la mise à jour
Le rapport Excel original appelle plusieurs procédures stockées en utilisant les résultats de l'un pour structurer le suivant lorsqu'il parcourt les données.
J'ai actuellement 2 ensembles de données appelant les procédures stockées.
Le premier est appelé GetGlobalCustomers
. Cela remplit un ensemble de résultats qui renvoie les informations de connexion pour chaque base de données (nous avons divisé notre base de données par client) et renvoie les champs ID
, Name
, Customer
et Server
.
La seconde est appelée GetSchedules
qui a besoin du serveur et du nom fournis par GetGlobalCustomers
pour interroger la base de données correcte.
Cependant je veux seulement sélectionner le client par son nom, pas le serveur individuel/nom (qui remémoration client est sur quel serveur et ce que leur nom de base de données est presque impossible).
J'ai donc un paramètre appelé CustomerName
, poussé en haut de la liste des paramètres qui présente à l'utilisateur le client à sélectionner en premier avec la valeur ID
. J'ai aussi deux paramètres appelés DBServer
et DBName
. Comment définir DBServer
et DBName
pour être dépendant du client sélectionné? Il ne semble pas y avoir de moyen facilement apparent.
Je suppose qu'il doit faire partie des valeurs disponibles et spécifier des valeurs, mais je ne peux pas comprendre comment dire "Pour ce client ID
utiliser cette base de données/nom". Je pense que je pourrais en créant deux ensembles de données supplémentaires qui effectuent une sélection par des requêtes d'identification pour dbserver
/dbname
, mais si je dois le faire chaque fois que je veux choisir le paramètre que je vais avoir des dizaines de jeux de données.
Je pense que vous m'avez mal compris (ou je ne me suis pas bien expliqué). J'ai une base de données qui contient l'information globale. Cela a une liste de toutes les bases de données et de leurs emplacements. Ceci est accessible via GetGlobalCustomers pour récupérer le serveur/nom à utiliser dans les requêtes suivantes. Autant que je sache, je n'ai pas besoin de changer de source de données car la procédure de stockage utilise les paramètres pour localiser la base de données correcte. Actuellement, je passe l'ID de la base de données et en utilisant un select de la table maître pour la paire nom/serveur qui est horriblement inefficace. –