sql-server-2005 - services - report builder parametro varios valores
¿Actualizar los parámetros del informe en función de la selección de parámetros?(SSRS) (4)
Creé un informe en SSRS con dos parámetros de informe. Me gustaría que el segundo actualice sus valores según la selección en el primero. El primero es una lista de agentes de ventas, y el segundo es una lista de distribuidores. Cada agente puede tener muchos distribuidores.
Entonces, si el usuario del informe selecciona un agente, me gustaría que solo sus distribuidores aparezcan en la lista para los segundos parámetros. Obviamente, los valores de los parámetros vendrán de una consulta, pero no sé cómo hacer que vuelva a enlazar la lista una vez que seleccionen un agente.
Esto funciona automágicamente si ordena sus parámetros y conjuntos de datos correctamente
- Primero, configure un conjunto de datos primario (informe), luego un conjunto de datos para cada menú desplegable de parámetros. Codifique la cláusula
WHERE
en los conjuntos de datos para hacer que las dependencias sean correctas entre las variables de parámetros - En segundo lugar, pida sus parámetros en el Informe | Parámetros del menú para que la primera variable / parámetro que desee que el usuario complete se encuentre en la parte superior y haga que el segundo conjunto de datos dependa de ese parámetro. Sigue este orden a través de los parámetros; el (los) parámetro (s) final (es) deben ser de uno (s) de los que depende el conjunto de datos del informe real.
- Repita para los parámetros posteriores
Esto funcionará si su cláusula WHERE
en el segundo y subsiguientes conjuntos de datos tienen variables que el SSRS sabe que están pobladas de parámetros anteriores.
Como ejemplo, tengo tres conjuntos de datos de la venerable base de datos pubs
(muestra en 2000).
pubslist
se utiliza para llenar el parámetro @p y se ve así:
select pub_id, pub_name from publishers
titleslist
llena el parámetro @t, y se ve así:
select title_id, title from titles where pub_id = @p
Finalmente, reportdataset
ve así:
select title, price, ytd_sales from titles where title_id = @t
El orden de los parámetros en el Report | Report Parameters
Report | Report Parameters
menú de Report | Report Parameters
es crucial; debido a que los conjuntos de datos se deben ejecutar en el orden que se muestra arriba, y el parámetro @t está en un conjunto de datos que depende del parámetro @p que se establece primero, movemos @p a la parte superior de la lista.
Ahora, SSRS evalúa el conjunto de datos necesarios para completar el menú desplegable del primer parámetro con etiquetas. Se basa en un conjunto de datos que no necesita un parámetro, por lo que se puede producir de inmediato.
Luego, habiendo obtenido ese valor de parámetro, puede llenar el menú desplegable del segundo parámetro. Eso, a su vez, da como resultado el informe que se está produciendo.
No lo he probado yo mismo, pero vi un ejemplo en el que configuraron los valores disponibles para que provengan de una consulta, y luego usaron una expresión para especificar la consulta. La expresión incluye el valor del primer parámetro.
Primero crea un conjunto de datos con una lista de elementos de los que el usuario seleccionará.
Select ID,Agentname from Agents Order by Agentname
Luego creas el segundo conjunto de datos;
p.ej. Select ID,ItemName from Orders where agentid=@agentid
En su parámetro de informe, haga clic en el parámetro agentid y luego desde una consulta en los valores disponibles. Usted selecciona dataset1 e ID como valor y AgentName como etiqueta.
Su último conjunto de datos serán los datos reales. En esto creas tu declaración como:
Select Quantity, Amount From Orderdetails where OrderID=@orderid
En el servicio de informes, vaya al parámetro y al conjunto de orden para obtener valor de Dataset2
Entonces, el parámetro Order of debe ser agentid, orderid. El servicio de informes solicitará automáticamente el parámetro por orden.
Lo más probable es que necesite crear una fuente de datos compartida para los conjuntos de datos múltiples
- Diseñe primero el informe con la consulta y los campos que se mostrarán sin ningún parámetro. De esta forma, podrá establecer el conjunto de datos principal del informe.
- actualice la consulta del conjunto de datos agregando el parámetro. siempre use @ antes de param_name
- en la vista de diseño del informe, haga clic con el botón derecho y seleccione parámetros en el menú emergente.
- la lista de parámetros tendrá automáticamente el param_name sin el signo @.
- seleccione el parámetro de la lista y actualice sus propiedades ...
Si obtiene una vista previa del informe, le pedirá un valor ingresado para param_name antes de ver el informe ...
ahora ve a la pestaña de datos y agrega un nuevo conjunto de datos ... llámalo dsPopParam
- la consulta se usará para llenar el parámetro param_name ... no se necesitan parámetros aquí.
- repita los pasos 3 a 5, pero en el paso 5 actualice la configuración de propiedad en la sección Valores disponibles para que sea de Consulta y seleccione el conjunto de datos dsPopParam. Los campos Valor y Etiqueta serán los campos devueltos por la consulta de dsPopParam.
- seleccione la pestaña vista de nuevo y observe esta vez el cuadro de lista desplegable que contiene la lista de parámetros ....
Nota importante : en caso de que el informe no se haya procesado o se haya lanzado una excepción, simplemente vuelva a la pestaña de datos, seleccione el conjunto de datos del informe y ejecute la consulta, se le pedirá que ingrese un valor para param_name ... ingréselo y ejecútelo. .. luego cambia a la pestaña de vista previa y