Principales respuestas
Parametros Reporting services siendo ingresados por el user (Multivalor)

Pregunta
-
Hola!!!!
Tengo la siguiente duda,
Estoy creando un reporte en Reporting Services donde uno de los parámetros es el IDCliente, donde el requerimiento es que el usuario pueda digitarlo (es decir, dejarlo como caja de texto), pero que sea multivalor.
Mi consulta es algo asi:
Select * from MiConsulta WHERE IDCliente in(@IDCliente)
Es decir mi parametro @IDCliente puede recibir uno o varios ID, y como esta en una caja de texto se han separado por coma (Ej: 60 ó 60,97,154)
Como logro esto?
Gracias por su colaboración.
AngelaMar Bogotá, Colombia
- Tipo cambiado Alberto PoblacionMVP, Moderator viernes, 5 de abril de 2013 7:42 No es un debate, es una pregunta
Respuestas
Todas las respuestas
-
Hola AngelaMar consulta estos enlaces:
Parametro Multivalor Reporting Services
No se porque trabajar de esa forma el reporte no lo he hecho antes espero esos enlaces te puedan ayudar.
Si se solucionó tu consulta no olvides marcar la respuesta. Saludos
-
En tu parametro solo debes de dar clic en Allow multiple values
Si quieres que ta aparezca una lista de ayuda entonces tendras que crear un nuevo dataset con la consulta de la ayuda y despues en las propiedades del parametro en Available Values debes de poner Get values from a query y seleccionas tu dataset
Gracias Ing. Salomon Bagdadi
-
Hola Salomon!!!
Lo que deseo es que el usuario ingrese manualmente el @IDCliente, pero que permita ingresar uno o varios valores, algo asi (Ej: 60 ó 60,97,154)
El parámetro no debe ser una lista sino una caja de texto.
Saludos, :)
AngelaMar Bogotá, Colombia
-
-
-
Entonces dejalo normal, y en tu SQL tienes que tener la variable como varchar(max) y despues en una tabla temporal poner estos valores
DECLARE @Parametros as table ( Valor varchar(max), Tipo varchar(10) ) IF @Clientes = 'Todos' SET @ClientesFiltro = 0 ELSE SET @ClientesFiltro = 1 IF @ClientesFiltro = 1 BEGIN SET @indx = CHARINDEX(',', @Clientes) WHILE LEN(@Clientes) > 0 BEGIN IF @indx= 0 BEGIN INSERT INTO @Parametros VALUES (@Clientes,'Cliente') SET @Item = @Clientes SET @Clientes = '' END ELSE BEGIN SET @Item = LEFT(@Clientes, @indx-1) INSERT INTO @Parametros VALUES (@Item,'Cliente') SET @Clientes = RIGHT(@Clientes, LEN(@Clientes) - @indx) SET @indx = CHARINDEX(',', @Clientes) END END END IF @ClientesFiltro = 0 INSERT INTO @Parametros SELECT CustomerName, 'Cliente' FROM BillingSource GROUP BY CustomerName -- En tu select en el where pon CustomerName IN (SELECT Valor FROM @Parametros WHERE Tipo = 'Cliente')
Gracias Ing. Salomon Bagdadi
-
-