web-dev-qa-db-fra.com

Passage de paramètre via le service de génération de rapports du serveur SQL via l'URL

J'essaie de transmettre un paramètre via l'URL à SSRS et il semble que cela ne fonctionne pas!

J'essaie de passer un userId (chaîne) via l'URL qui sera passé à la base de données et utilisé par la requête.

uRL de base: http: //blah/Reports/Pages/Report.aspx? ItemPath = MyReport

essayé ceci mais cela ne fonctionne pas: http: //blah/Reports/Pages/Report.aspx? ItemPath = MyReport & UserId = fred

Des idées

39
AwkwardCoder

En plus de ce que Shiraz a dit, essayez quelque chose comme ceci:

http://<server>/ReportServer/Pages/ReportViewer.aspx?%2f<path>%2f<ReportName>&rs:Command=Render&UserID='fred'

Notez que le chemin ne fonctionnera que si vous êtes dans un seul dossier. Lorsque je dois faire cela, je navigue simplement dans le rapport en utilisant le chemin du serveur de rapports ("reports" est le gestionnaire de rapports) et copie l'adresse URL, puis ajoute &<ParameterName>=<value> à la fin.

46
Mozy

J'ai eu la même question et plus, et bien que ce fil soit vieux, il reste quand même bon, donc en résumé pour SSRS 2008R2 j'ai trouvé ...

Situations

  1. Vous voulez utiliser une valeur d'une URL pour rechercher des données
  2. Vous souhaitez afficher un paramètre à partir d'une URL dans un rapport
  3. Vous souhaitez passer un paramètre d'un rapport à un autre

Actes

Le cas échéant, veillez à remplacer Reports/Pages/Report.aspx? ItemPath = par ReportServer? En d'autres termes: Au lieu de ceci:

http://server/Reports/Pages/Report.aspx?ItemPath=/ReportFolder/ReportSubfolder/ReportName

Utilisez cette syntaxe:

http://server/ReportServer?/ReportFolder/ReportSubfolder/ReportName

Ajoutez des paramètres au rapport et définissez-les comme masqués (ou visibles si l'action de l'utilisateur est autorisée, mais gardez à l'esprit que, même si le paramètre de rapport change, l'URL ne pas change en fonction d'une entrée mise à jour).

Attachez des paramètres à l'URL avec & ParameterName = Value

Les paramètres peuvent être référencés ou affichés dans un rapport à l'aide de @ParameterName, qu'ils soient définis dans le rapport ou dans l'URL.

Pour masquer la barre d’outils où sont affichés les paramètres, ajoutez & rc: Toolbar = false à l’URL ( référence )

En réunissant tous ces éléments, vous pouvez exécuter une URL avec des valeurs incorporées ou l'appeler en tant qu'action d'un rapport et lue par un autre rapport: 

http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID=ABC123&rc:Toolbar=false

Dans la requête sur les propriétés du jeu de données de rapport: SELECT les éléments de la vue WHERE User = @UserID

Dans le rapport, définissez la valeur de l'expression sur [UserID] (ou = Fields! UserID.Value)

N'oubliez pas que si un rapport comporte plusieurs paramètres, vous devrez peut-être inclure tous les paramètres dans l'URL, même s'ils sont vides, en fonction de la manière dont votre requête de jeu de données est écrite.

Pour transmettre un paramètre à l'aide de Action = Aller à l'URL, définissez l'expression sur:

="http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID="
 &Fields!UserID.Value 
 &"&rc:Toolbar=false"
 &"&rs:ClearSession=True"

Assurez-vous de laisser un espace après une expression si elle est suivie de & (un saut de ligne ne suffit pas). Aucun espace n'est requis avant une expression. Cette méthode peut transmettre un paramètre mais ne le cache pas car elle est visible dans l'URL.

Si vous n'incluez pas & rs: ClearSession = True, le rapport ne sera pas actualisé tant que le cache de session du navigateur n'aura pas été vidé.

Pour transmettre un paramètre à l'aide de Action = Aller au rapport:

  • Spécifiez le rapport
  • Ajouter des paramètres pour exécuter le rapport
  • Ajoutez le (s) paramètre (s) que vous souhaitez transmettre (les paramètres doivent être définis dans le rapport de destination. Par conséquent, à ma connaissance, vous ne pouvez pas utiliser de commandes spécifiques à une URL telles que rc: toolbar utilisant cette méthode); Cependant, je suppose qu'il serait possible de lire ou de définir la case à cocher Invite de l'utilisateur, comme indiqué dans les paramètres de reporting de serveur, via le code personnalisé du rapport.)

Pour référence, /=% 2f

49
snyderj

Je viens de résoudre ce problème moi-même. J'ai trouvé la solution sur MSDN: http://msdn.Microsoft.com/en-us/library/ms155391.aspx .

Le format est fondamentalement 

http://<server>/reportserver?/<path>/<report>&rs:Command=Render&<parameter>=<value>
8
Izhar Lotem

Essayez de remplacer "Reports" par "ReportServer" dans votre URL

6
Shiraz Bhaiji

Essayez de transmettre plusieurs valeurs via l’URL:

/ReportServer?%2fService+Specific+Reports%2fFilings%2fDrillDown%2f&StartDate=01/01/2010&EndDate=01/05/2010&statuses=1&statuses=2&rs%3AFormat=PDF

Cela devrait marcher.

3
Matthew Burrows

J'ai résolu un problème similaire en transmettant la valeur du paramètre disponible dans l'URL au lieu du libellé du paramètre. 

Par exemple, j'ai un rapport avec un paramètre nommé nomVue et les valeurs disponibles prédéfinies pour le paramètre sont les suivantes: (étiquettes/valeurs) orders/sub_orders, orderDetail/sub_orderDetail, product/sub_product. 

Pour appeler ce rapport avec une URL à afficher automatiquement pour paramètre = product, vous devez spécifier la valeur et non l'étiquette.
Ce serait faux: http: // serveur/serveur de rapports?/Données + Dictionnaire/Informations détaillées & viewName = produit & rs: Command = Render

C’est correct: http: // serveur/serveur de rapports?/Données + Dictionnaire/Informations détaillées & viewName = sous_product & rs: Command = Render

1
RonG

Selon link , vous devrez peut-être aussi préfixer votre paramètre avec & rp si vous n'utilisez pas la syntaxe de proxy

0
majjam

Essayez de remplacer "Reports" par "ReportServer" dans votre URL . Pour cela, accédez simplement à ce http://Host/ReportServer/ et à partir de là, vous pourrez accéder aux pages du rapport. Ajoutez-y vos paratères comme ceci &<parameter>=<value>

Pour des informations plus détaillées:

http://dobrzanski.net/2008/08/11/reporting-services-problem-with-passing-parameters-directly-in-the-url/

https://www.mssqltips.com/sqlservertip/1336/pass-parameters-and-options-with-a-url-in-sur-sql-reporting-services/

0
SHIBIN