38

Estoy tratando de pasar un parámetro a través de la url a SSRS y parece que no funciona!Pasando el parámetro vía url al servicio de informes del servidor sql

Estoy tratando de pasar un userId (cadena) a través de la url que se pasará a la base de datos y será utilizada por la consulta.

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

intentado esto pero no funciona: http://blah/Reports/Pages/Report.aspx?ItemPath=MyReport&UserId=fred

Cualquier idea

+0

El problema era Iw como intentar acceder al informe a través de una URL 'estático', esto demuestra urlonly un informe ya generado, no hacer la generación de informes 'dinámico' - si desea que esta tiene que usar una URL algo así como 'http: // ... /ReportServer/Pages/ReportViewer.aspx' Como se indica a continuación. – AwkwardCoder

Respuesta

44

Además de lo que Shiraz dijo, intente algo como esto:

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

Tenga en cuenta que la ruta solo funcionaría si se encuentra en una sola carpeta. Cuando tengo que hacer esto, simplemente busco el informe usando la ruta del servidor de informes ("informes" es el administrador de informes) y copio la URL, luego agrego &<ParameterName>=<value> hasta el final.

+0

Gracias un millón: D – rlee923

+0

¿Qué sucede si quiero pasar un parámetro dinámico a través de algo como @Model – JsonStatham

+0

muchas gracias! Esto funcionó. – Maxsteel

6

Intente cambiar "Informes" a "ReportServer" en su URL

3

Trate de pasar a través de múltiples valores url:

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

Esto debería funcionar.

45

que tenían la misma pregunta y más, y aunque este tema es viejo, todavía es una buena idea, por lo que en resumen para SSRS 2008R2 encontré ...

Situaciones

  1. desea utilizar un valor de una dirección URL para buscar datos
  2. que desea visualizar un parámetro desde una URL en un informe
  3. que desea pasar un parámetro de un informe a otro informe

acciones

Si procede, asegúrese de reemplazar Informes/Páginas/Report.aspx? ItemPath = con servidor de informes?. En otras palabras: lugar de esto:

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

Utilice esta sintaxis:

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

Añadir parámetro (s) para el informe y se establece como oculto (o visible si la acción del usuario permitió, a pesar de tener en Tenga en cuenta que, si bien el parámetro del informe cambiará, la URL cambiará a en función de una entrada actualizada.

Fije los parámetros a la URL con & ParameterName = Valor

parámetros pueden ser referenciados o mostrados en el informe usando @ParameterName, ya sea que estén establecidos en el informe o en la URL

Para ocultar la barra de herramientas donde se muestran los parámetros, añadir & rc: Barra de herramientas = false al URL (reference)

poner que en su conjunto, puede ejecutar una URL con los valores implícitos, o llamar a esto como una acción de un informe y leído por otro informe:

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

En el informe de las propiedades del conjunto de datos de consulta: SELECT cosas a la vista donde el usuario = @IDUsuario

En el informe, establecer el valor de la expresión a [ID de usuario] (o = campos UserID.Value!)

Keep Tenga en cuenta que si un informe tiene múltiples parámetros, es posible que deba incluir todos los parámetros en la URL, incluso si están en blanco, según cómo se escriba la consulta del conjunto de datos.

para pasar un parámetro utilizando Action = Ir a URL, expresión de conjunto a:

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

Asegúrese de tener un espacio después de una expresión si es seguido por & (un salto de línea no es suficiente). No se requiere espacio antes de una expresión. Este método puede pasar un parámetro pero no lo oculta ya que es visible en la URL.

Si no incluye & rs: ClearSession = True, entonces el informe no se actualizará hasta que se borre la caché de la sesión del navegador.

Para pasar un parámetro utilizando Action = Ir a reportar:

  • Especificar el informe
  • Añadir parámetro (s) para ejecutar el informe
  • Añadir parámetro (s) que desea transmitir (la los parámetros deben definirse en el informe de destino, por lo que, a mi conocimiento, no puede usar comandos específicos de URL, como rc: toolbar, utilizando este método); Sin embargo, supongo que sería posible leer o establecer la casilla de verificación Preguntar al usuario, como se ve en los parámetros severas de información, a través de un código personalizado en el informe.)

Como referencia, / = %2f

+0

Niza el la barra de herramientas = falso, exactamente lo que estaba buscando. – kralco626

+0

La parte que me faltaba era tener que reemplazar ese 'ItemPath' con' ReportServer? '. ¡No pude encontrar esto documentado en ningún lado! ¡Gracias por ahorrarme horas de frustración! – confusedKid

1

me resolvió un similares problema al pasar el valor del parámetro disponible en la URL en lugar de la etiqueta del parámetro.

Por ejemplo, tengo un informe con un parámetro llamado viewName y los valores disponibles predefinidos para el parámetro son: (labels/values) orders/sub_orders, orderDetail/sub_orderDetail, product/sub_product.

Para invocar este informe con una URL para representar automáticamente para parameter = product, debe especificar el valor, no la etiqueta.
Esto sería un error: http://server/reportserver?/Data+Dictionary/DetailedInfo&viewName=product&rs:Command=Render

Esto es correcto: http://server/reportserver?/Data+Dictionary/DetailedInfo&viewName=sub_product&rs:Command=Render

0

Según este link también puede tener como prefijo el parámetro con & rp si no se usa la sintaxis de proxy

0

Prueba a cambiar " Informa "a" ReportServer "en su url. Para eso simplemente acceda a este http://host/ReportServer/ y desde allí puede ir a las páginas del informe. Hay anexar sus parmaters como esto &<parameter>=<value>

Para obtener información más detallada:

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-sql-reporting-services/

Cuestiones relacionadas