wake-up-neo.com

Übergabe von Parametern per URL an den SQL Server Reporting Service

Ich versuche, einen Parameter über die URL an SSRS zu übergeben und es scheint nicht zu funktionieren!

Ich versuche, eine userId (string) über die URL zu übergeben, die an die Datenbank übergeben und von der Abfrage verwendet wird.

basis-URL: http: //blah/Reports/Pages/Report.aspx? ItemPath = MyReport

versuchte es, aber es funktioniert nicht: http: //blah/Reports/Pages/Report.aspx? ItemPath = MyReport & UserId = fred

Irgendwelche Ideen

39
AwkwardCoder

Versuchen Sie nicht nur das, was Shiraz gesagt hat:

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

Beachten Sie, dass der Pfad nur funktioniert, wenn Sie sich in einem einzigen Ordner befinden. Wenn ich dies tun muss, browse ich einfach über den Berichtserverpfad zum Bericht ("Berichte" ist der Berichts-Manager) und kopiere die URL und füge am Ende &<ParameterName>=<value> hinzu.

46
Mozy

Ich hatte die gleiche Frage und mehr, und obwohl dieser Thread alt ist, ist er immer noch gut, also habe ich für SSRS 2008R2 zusammenfassend ...

Situationen

  1. Sie möchten einen Wert aus einer URL zum Nachschlagen von Daten verwenden
  2. Sie möchten einen Parameter aus einer URL in einem Bericht anzeigen
  3. Sie möchten einen Parameter von einem Bericht an einen anderen Bericht übergeben

Aktionen

Ersetzen Sie gegebenenfalls Reports/Pages/Report.aspx? ItemPath = durch ReportServer?. Mit anderen Worten: Statt dessen:

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

Verwenden Sie diese Syntax:

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

Fügen Sie dem Bericht Parameter hinzu, und legen Sie ihn als ausgeblendet fest (oder sichtbar, wenn die Benutzeraktion zulässig ist. Beachten Sie jedoch, dass, obwohl sich der Berichtsparameter ändert, die URL nicht basierend auf einem aktualisierten Eintrag geändert wird).

Hängen Sie die Parameter an die URL mit & ParameterName = Value an

Parameter können mit @ParameterName im Bericht referenziert oder angezeigt werden, unabhängig davon, ob sie im Bericht oder in der URL festgelegt sind

Um die Symbolleiste auszublenden, in der Parameter angezeigt werden, fügen Sie der URL & rc hinzu: Toolbar = false ( reference )

Zusammenfassend können Sie eine URL mit eingebetteten Werten ausführen oder diese als Aktion aus einem Bericht heraus aufrufen und von einem anderen Bericht lesen: 

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

Fragen Sie in den Eigenschaften des Berichts-Datasets ab: SELECT stuff FROM view WHERE User = @UserID

Setzen Sie im Bericht den Ausdruckswert auf [UserID] (oder = Fields! UserID.Value).

Beachten Sie, dass Sie bei einem Bericht mit mehreren Parametern möglicherweise alle Parameter in die URL aufnehmen müssen, auch wenn diese leer sind, je nachdem, wie Ihre Datasetabfrage geschrieben wird.

Um einen Parameter mit Action = Gehe zu URL zu übergeben, setzen Sie den Ausdruck auf:

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

Stellen Sie sicher, dass nach einem Ausdruck ein Leerzeichen steht, wenn gefolgt von & (ein Zeilenumbruch reicht nicht aus). Vor einem Ausdruck ist kein Platz erforderlich. Diese Methode kann einen Parameter übergeben, blendet diesen jedoch nicht aus, da er in der URL sichtbar ist.

Wenn Sie & rs nicht angeben: ClearSession = True, wird der Bericht nicht aktualisiert, bis der Browsersitzungscache gelöscht wird.

So übergeben Sie einen Parameter mit Action = Gehe zum Bericht:

  • Geben Sie den Bericht an
  • Fügen Sie Parameter hinzu, um den Bericht auszuführen
  • Fügen Sie Parameter hinzu, die Sie übergeben möchten (die Parameter müssen im Zielbericht definiert werden. Daher können meines Wissens keine URL-spezifischen Befehle wie rc: toolbar mit dieser Methode verwendet werden). Ich nehme jedoch an, dass es möglich ist, das Kontrollkästchen Benutzer auffordern, wie in der Berichterstellung von Parametern angegeben, durch benutzerdefinierten Code im Bericht zu lesen oder festzulegen.)

Zu Referenzzwecken /=% 2f

49
snyderj

Ich habe dieses Problem gerade selbst gelöst. Ich habe die Lösung auf MSDN gefunden: http://msdn.Microsoft.com/en-us/library/ms155391.aspx .

Das Format ist im Grunde 

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

Ändern Sie in Ihrer URL "Reports" in "ReportServer"

6
Shiraz Bhaiji

Übergeben Sie mehrere Werte per URL:

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

Das sollte funktionieren.

3
Matthew Burrows

Ich habe ein ähnliches Problem gelöst, indem ich den Wert des verfügbaren Parameters in der URL anstelle der Bezeichnung des Parameters übergeben habe. 

Zum Beispiel habe ich einen Bericht mit einem Parameter namens viewName und den vordefinierten Available Values ​​für den Parameter sind: (Labels/Werte) orders/sub_orders, orderDetail/sub_orderDetail, product/sub_product. 

Um diesen Bericht mit einer URL aufzurufen, die automatisch für parameter = product gerendert wird, müssen Sie den Wert und nicht die Bezeichnung angeben.
Dies wäre falsch: http: // server/reportserver?/Data + Dictionary/DetailedInfo & viewName = Produkt & rs: Befehl = Rendern

Dies ist richtig: http: // server/reportserver?/Data + Dictionary/DetailedInfo & viewName = sub_product & rs: Befehl = Rendern

1
RonG

Nach diesem link müssen Sie Ihrem Parameter u. U. vorangestellt sein, wenn Sie keine Proxy-Syntax verwenden

0
majjam

Ändern Sie "Reports" in "ReportServer" in Ihrer URL . Greifen Sie dazu auf diesen http://Host/ReportServer/ zu und von dort aus können Sie zu den Berichtsseiten gehen. Hängen Sie Ihre Parmater wie folgt an &<parameter>=<value>

Für detailliertere Informationen:

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-mit-a-url-in-sql-reporting-services/

0
SHIBIN