Transmettre le paramètre via l'url au service de rapports sql server
j'essaie de passer un paramètre via l'url à SSRS et il semble ne pas fonctionner!
j'essaie de passer un userId (string) via l'url qui sera passé à la base de données et utilisé par la requête.
url de base: <!--5 http://blah/Reports/Pages/Report.aspx?ItemPath=MyReport
essayé ceci mais ça ne fonctionne pas: http://blah/Reports/Pages/Report.aspx?ItemPath=MyReport&UserId = fred
idées
8 réponses
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. Quand je dois le faire, je me contente de parcourir le rapport en utilisant le chemin reportserver ("reports" est le gestionnaire de rapport) et de copier l'url puis Ajouter &<ParameterName>=<value>
à la fin.
j'ai eu la même question et plus, et bien que ce fil soit vieux, il est toujours bon, donc en résumé pour SSRS 2008R2 j'ai trouvé...
les Situations
- vous voulez utiliser une valeur d'une URL pour rechercher des données
- vous voulez afficher un paramètre d'une URL dans un rapport
- vous voulez passer un paramètre d'un rapport à un autre rapport
Actions
le Cas échéant, assurez-vous de remplacer Rapports / Pages / Rapport.aspx?ItemPath= ReportServer?. En d'autres termes: Au lieu de cela:
http://server/Reports/Pages/Report.aspx?ItemPath=/ReportFolder/ReportSubfolder/ReportName
Utilisez cette syntaxe:
http://server/ReportServer?/ReportFolder/ReportSubfolder/ReportName
ajouter le(S) paramètre (s) au rapport et définir comme caché (ou visible si l'action de l'utilisateur est autorisée, mais gardez à l'esprit que pendant que le paramètre du rapport va changer, L'URL va changement basé sur une mise à jour de l'entrée).
fixer les paramètres à L'URL avec Et ParameterName=Valeur
les paramètres peuvent être référencés ou affichés dans le rapport en utilisant @ParameterName, qu'ils soient définis dans le rapport ou dans L'URL
pour masquer la barre d'outils où les paramètres sont affichés, ajouter & rc: Toolbar=false à L'URL (référence)
en regroupant tout cela, vous pouvez lancer une URL avec des valeurs intégrées, ou appeler cela comme une action à partir d'un rapport et lire par un autre rapport:
http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID=ABC123&rc:Toolbar=false
dans l'ensemble de données du rapport requête de propriétés: sélectionnez stuff dans la vue où User = @UserID
dans le rapport, définissez la valeur de l'expression à [UserID] (or =Fields!Nom d'utilisateur.Valeur)
gardez à l'esprit que si un rapport a plusieurs paramètres, vous pourriez avoir besoin d'inclure tous les paramètres dans L'URL, même si elle est vide, selon la façon dont votre requête d'ensemble de données est écrite.
Pour passer d'un paramètre à l'aide de l'Action = Aller à l'URL, l'expression de jeu:
="http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID="
&Fields!UserID.Value
&"&rc:Toolbar=false"
&"&rs:ClearSession=True"
assurez-vous d'avoir un espace après une expression si suivie par & (un saut de ligne n'est pas suffisant). Aucun espace n'est requis avant une expression. Cette méthode peut passer un paramètre, mais ne cache pas qu'elle est visible dans l'URL.
Si vous n'incluez pas &rs:ClearSession=Vrai, alors le rapport n'est pas de rafraîchissement jusqu'à la session de navigation, le cache est effacé.
Pour passer d'un paramètre à l'aide de l'Action = Aller à signaler:
- Spécifier le rapport
- Ajouter un paramètre(s) pour exécuter le rapport
- Ajouter paramètre (s) que vous souhaitez passer (les paramètres doivent être définis dans le rapport de destination, donc à ma connaissance, vous ne pouvez pas utiliser de commandes spécifiques à une URL comme rc:barre d'outils en utilisant cette méthode); cependant, je suppose qu'il serait possible de lire ou de définir la case à cocher de L'utilisateur Prompt, comme vu dans reporting sever paramètres, à travers le code personnalisé dans le rapport.)
Pour référence, / = %2f
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
http://<server>/reportserver?/<path>/<report>&rs:Command=Render&<parameter>=<value>
essayez de changer "Reports" en "ReportServer" dans votre url
essayez de passer plusieurs valeurs via url:
/ReportServer?%2fService+Specific+Reports%2fFilings%2fDrillDown%2f&StartDate=01/01/2010&EndDate=01/05/2010&statuses=1&statuses=2&rs%3AFormat=PDF
ça devrait marcher.
j'ai résolu un problème similaire en passant la valeur du paramètre dans l'URL au lieu de l'étiquette du paramètre.
par exemple, j'ai un rapport avec un paramètre nommé viewName et les valeurs prédéfinies disponibles pour ce paramètre sont: (labels/values) orders/sub_orders, orderDetail/sub_orderDetail, product/sub_product.
pour appeler ce rapport avec une URL pour le rendre automatiquement pour parameter=product, vous devez spécifier la valeur pas le étiquette.
Ce serait une erreur:
http://server/reportserver?De données /+Dictionnaire/DetailedInfo&viewName=produit&rs:Commande=Render
Ceci est correct: http://server/reportserver?De données /+Dictionnaire/DetailedInfo&viewName=sub_product&rs:Commande=Render
essayez de changer " Reports "en" ReportServer " dans votre url.
Pour accéder simplement à ce http://host/ReportServer/
et de là, vous pouvez aller aux pages du rapport. Il y a vos parmaters comme ça.
&<parameter>=<value>
Pour plus de détails informations: