sábado, 16 de abril de 2016

Merge filas en Reporting Services

El título de esta entrada es engañoso. Realmente no vamos a ver como se combinan celdas de varias filas, lo que vamos a ver es como simularlo para que quede algo así:
Lo primero que hay que hacer es cambiar la propiedad de la celda HideDuplicate y ponerle el ámbito del DataSet.
Esto lo que hará es que no pintará los valores repetidos, pero las líneas de separación siguen apareciendo. Ahora solamente tenemos que ocultar las líneas intermedias para simular una única casilla.
Para esto, nos situamos sobre la celda y ocultamos la línea inferior (None). La línea superior la mostramos supeditada a una función que haremos en la sección de código.
La expresión para el Top es:
=Code.FGrupoSexo(Fields!sexo.Value)
Ahora en Informe - Propiedades del Informe declaramos una variable para controlar el valor del campo sexo en el que estamos. Creamos una función sencilla en vb que pasándole el valor del campo sexo actual lo compara con el anterior y devuelve Solid o None si ha cambiado.

Para finalizalizar, creamos una línea fuera del grupo, únicamente para pintar la línea inferior del último registro de la tabla ya que esta no lo pintará nuestro código personalizado al ser la última