Pasión por la tecnología…

abril 14, 2008

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

Archivado en: Business Intelligence,SQL Server Reporting Services — Juan Carlos González Martín @ 21:55

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.

       

El tema Rubric. Create a free website or blog at WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 40 seguidores