domingo, 14 de abril de 2013

Formateo condicional en Reporting Services

Reporting services tiene una característica muy potente: las expresiones. Son aplicables a casi todo y para ilustrar ligeramente las ventajas de uso utilizaremos el reporte que creamos en nuestro post anterior.

Utilizaremos una técnica que inglés se conoce"conditional formatting" o en simple y plano español formateo condicional. Consiste en cambiar el comportamiento de las propiedades que le dan formato al reporte o a sus componentes, filas, campos, encabezados, etc. de una otra forma dependiendo de alguna condición.

Nuestro reporte mencionado anteriormente consistía en un listado de productos y su inventario agrupado por bodega.


Ahora supongamos que necesitamos que si el inventario de un producto está por debajo de 50 la cantidad del mismo debe aparecer en rojo, de lo contrario que se mantenga en negro.

Comencemos. Abrimos nuestra solución de reportes en Visual Studio 2008 (El único IDE que soporta Reporting Services 2008), seleccionamos nuestro reporte el cual nos aparecerá en modo diseño. Aquí hacemos clic derecho sobre el campo que deseamos formatear y elegimos del menú emergente la opción "Placeholder Properties..."

Se nos abrirá una pantalla en la que seleccionaremos la opción Font del panel de la izquierda.

Seguidamente hacemos clic en el Boton ƒx  al lado del casilla de Color. Se nos presentará la pantalla para crear expresiones, En ésta podemos usar una expresión como la siguiente para lograr el efecto deseado.
=Iif(Fields!Stock.Value < 50, "Red", "Black")

Damos dos veces OK, y nos vamos a la cejilla Preview de nuestro reporte para ver como queda nuestro formateo:

Bien. Y que pasa si nos dicen que mejor sería que las cantidades en cero aparezcan en rojo, los menores a 50 amarillo y los mayores o iguales a 50 en verde. El procedimiento es el mismo solo que la expresion a utilizar sería algo como esto:
=Switch(fields!Stock.Value = 0,"Red",
fields!Stock.Value < 50, "Gold",
fields!Stock.Value >= 50, "Green")

Es interesante notar que, como mencioné al principio, este tipo de expresiones se pueden usar en muchas de las propiedades de los diferentes elementos del reporte.

0 comentarios: