none
Parametros Reporting services siendo ingresados por el user (Multivalor) RRS feed

  • 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

    jueves, 4 de abril de 2013 17:18

Respuestas

  • Revisando lo que me dices, te deja el combo vacio pero si puedes editarlo y poner los valores por medio de "enter"

    Gracias Ing. Salomon Bagdadi

    • Marcado como respuesta AngelaMar miércoles, 10 de abril de 2013 17:29
    viernes, 5 de abril de 2013 21:22

Todas las respuestas

  • Hola AngelaMar consulta estos enlaces:

    Parametro Multivalor Reporting Services

    Parametro Multivalor

    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

    jueves, 4 de abril de 2013 17:26
  • 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

    viernes, 5 de abril de 2013 17:36
  • 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

    viernes, 5 de abril de 2013 19:12
  • Entonces en las propiedades del parametro solo pon AllowMultipleValues

    Saludos


    Gracias Ing. Salomon Bagdadi

    viernes, 5 de abril de 2013 20:57
  • Hola, si lo coloco de esa forma como dices habilita el combo vació. Entonces no me funciona para ingresar valores manualmente.

    AngelaMar Bogotá, Colombia

    viernes, 5 de abril de 2013 21:00
  • 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

    viernes, 5 de abril de 2013 21:05
  • Revisando lo que me dices, te deja el combo vacio pero si puedes editarlo y poner los valores por medio de "enter"

    Gracias Ing. Salomon Bagdadi

    • Marcado como respuesta AngelaMar miércoles, 10 de abril de 2013 17:29
    viernes, 5 de abril de 2013 21:22
  • Hola Salomón,

    Tienes razón ya hice pruebas y funciona bien.

    Gracias


    AngelaMar Bogotá, Colombia

    miércoles, 10 de abril de 2013 17:29