Blog del CIIN

Blog del Centro de Innovación en Integración de Cantabria

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

SQL Server Reporting Services: Preguntas y Respuestas (II)!

Después del primer post de la serie sobre preguntas habituales en seminarios sobre SQL Server Reporting Services (SSRS), aquí tenemos la segunda entrega en la que nos centraremos en lo versátil  que es SSRS gracias al juego que da el uso de parámetros. Como veréis, realmente se trata de una única sección, y en concreto de una pregunta y su correspondiente respuesta, la que trataremos en esta nueva entrega. Empecemos.

Parámetros de informe: ¿Cómo puedo poner el valor All de un parámetro de un informe?

Hay dos formas de conseguir esta funcionalidad:

  • Opción 1: Aprovechando que en la definición de la consulta T-SQL que nos permite llenar el dataset podemos aprovechar las capacidades de programación de T-SQL, de manera que podemos añadir cierta lógica en la sentencia SELECT. Así, por ejemplo:
    • Tendríamos un bloque IF que controla los casos en los que el usuario está filtrando por un valor concreto del parámetro.
    • En el bloque ELSE tendríamos la sentencia T-SQL en la que se devuelven todos los resultados sin aplicar un parámetro en la clausula Where.

if @category <> 0

Begin

SELECT * from dbo.vProductProfitability

               WHERE dbo.vProductProfitability.Year=@anyo

 and dbo.vProductProfitability.MonthNumberOfYear=@mes and dbo.vProductProfitability.CategoryKey = @category

End

else

Begin

SELECT * from dbo.vProductProfitability

               WHERE dbo.vProductProfitability.Year=@anyo

 and dbo.vProductProfitability.MonthNumberOfYear=@mes

End

--select para definir el filtro y que aplique a todos los registros

SELECT ProductCategoryKey As CategoryKey,

               ProductCategoryName As Category

                               FROM DimProductCategory

union

SELECT 0  As CategoryKey, 'todos' As Category

  • Opción 2: Aprovechando que SSRS nos permite trabajar con parámetros multivalor. Por ejemplo, si tengo una consulta que me permite filtrar por un cierto parámetro, haremos lo siguiente:
    • Definir la query del dataset para que en lugar de utilizar el operador =, utilice IN.

image

    • En la configuración del parámetro, simplemente marcamos el check Multivalue.

image

    • De esta forma, al ejecutar el informe se ofrecerá la opción All Values:

image

    • Y el resultado de aplicar el filtro (Select All) sería:

image

Y hasta aquí el segundo post de la serie de Preguntas y Respuestas sobre SSRS. Tengo algún capítulo más que añadir, pero esperaré a completarlo con más preguntas. Espero que os haya resultado interesante.

       

Published 14/4/2008 23:51 por Juan Carlos González Martín

Comparte este post:

Comentarios

# re: SQL Server Reporting Services: Preguntas y Respuestas (II)!@ Tuesday, April 15, 2008 1:42 PM

Espinete,

Gracias a los que habitualmente leeis el blog del CIIN...nos da fuerza para seguir publicando cosas nuevas todas las semanas.

Un saludo

JC's

Juan Carlos González Martín

# re: SQL Server Reporting Services: Preguntas y Respuestas (II)!@ Tuesday, May 06, 2008 9:25 PM

Excelente de mucha ayuda! Muchas Gracias!!!!

pero ahora tengo un pregunta.

como hacer esto pero para un campo de datetime donde la comparacion es con el formato dd/MM/yyyy,

tengo una consulta asi:

declare @total decimal

select @total = count(tipogestion) from gestion where operador in (@Operador) and remesa in (@Remesa)

select tipogestion as Contacto, count(tipogestion) As Cantidad, convert (numeric (5,2),count(tipogestion)*100/@total) as Porcentaje

from gestion where (remesa in (@Remesa)) and (operador in (@Operador )) and (convert(datetime,Fechahorainicio,103) in (convert(datetime,@Fecha,103)))

group by tipogestion, pero no sale ningun row y las fechas si existen en que formato necesito hacer esta comparacion?.

Cristian Moreno

# re: SQL Server Reporting Services: Preguntas y Respuestas (II)!@ Friday, February 27, 2009 9:24 PM

Por favor necesito saber como hacer una suscripcion controlada por base de datos para este tipo de reporte con parametros de seleccion multiple

Paulina