Hola espero que les haya gustado mi artículo anterior, esta vez voy a explicarles como personalizar reportes usando Reporting Services, en este caso vamos a dar color a las barras de un gráfico dependiendo de su valor.
Veamos. Tenemos la siguiente tabla
dbo.Indicador
dbo.InfoEvaluado
Usare el siguiente Stored Procedure
CREATE PROCEDURE [dbo].[USP_SeleccionarScore]
@IdInfoEvaluado int
as
SELECT IdInfoEvaluado, codIndicador, Tipo = 'ESTUDIANTIL' ,valor=Convert(decimal,valor1)/100
FROM Indicador where IdInfoEvaluado = @IdInfoEvaluado and
codIndicador = 'SCORE'
union
SELECT IdInfoEvaluado, codIndicador, Tipo = 'VEHICULAR' ,valor= Convert(decimal,valor2)/100
FROM Indicador where IdInfoEvaluado = @IdInfoEvaluado and
codIndicador = 'SCORE'
union
SELECT IdInfoEvaluado, codIndicador, Tipo = 'HIPOTECARIO' ,valor =Convert(decimal,valor3)/100
FROM Indicador where IdInfoEvaluado = @IdInfoEvaluado and
codIndicador = 'SCORE'
order by valor
y el siguiente script
SELECT IdInfoEvaluado, Apellidos + ', ' + Nombre AS NombreCompleto
FROM InfoEvaluado
El Diseño del reporte quedaria de esta manera.
En el chart data vamos a colocar los datos de esta forma.
Hasta acá todo es sencillo, como verán el reporte por defecto nos muestra las barras del mismo color pero nosotros necesitamos que las barras cambien de color dependiendo del valor que tienen. En este caso voy colocar las siguientes condiciones, si el valor esta entre 0 y 45 va a ser Rojo, si el valor esta entre 46 y 80 va a ser Amarillo y si el valor esta entre 81 y 100 es Verde,
Ahora bien vamos a colocar la siguiente expresión. Para esto hacemos click derecho en el Chart Series llamado Valor, y seleccionamos Series Properties
Note que cuando selecciona un Chart Series aparecen unos puntos blancos sobre las barras.
Hacemos Click en el botón fx y se nos muestra la siguiente pantalla.
Y como observaran he colocado un código muy simple. Que paso a mostrar.
=Switch(SUM(Fields!valor.Value)*100>=0 and SUM(Fields!valor.Value)*100<=40,
"Red",SUM(Fields!valor.Value)*100>40 and SUM(Fields!valor.Value)*100<=80,
"Yellow",SUM(Fields!valor.Value)*100>80 and SUM(Fields!valor.Value)*100<=100,
"Green")
Le dan aceptar y listo hacemos un preview y nos mostrara el siguiente gráfico.
Espero que este mini tutorial les haya servido. Y hasta la próxima…. Algo más pueden cambiar su expresión por este otro... en el caso que quieran mostrar de diferente color cada barra según la fila.
=iif(RowNumber(Nothing)=1,"Red",iif(RowNumber(Nothing)=2,
"Yellow","Green"))
GRACIAS ME SIRVIO MUCHO, TENIA DIAS MATANDOME LA CABEZA DE COMO HACER ALGO ASI. GRACIAS SALUDOS DESDE COLOMBIA
ResponderEliminar