Hacer una tabla de filas fijas en Reporting Services

by Maxi Accotto 8. julio 2011 21:07

 

En este post veremos un ejemplo de como hacer una tabla de filas fijas en Reporting Services (cualquiera de sus versiones y ediciones)

El uso de tablas fijas se lo puede aplicar a varios reportes, por ejemplo si queremos hacer un formulario donde siempre existan 10 renglones por mas que no todos estén completos eso seria una tabla de filas fijas, pero también hay otro centenar de ejemplos donde esto aplicaría.

Si usamos directamente el Dataset de SSRS este como es variable, lo que nos sucederá es que no lograremos el efecto esperado.

En los siguientes pasos muestro como se podría resolver este tema y además adjunto el RDL de ejemplo.

  • Lo primero que voy a hacer es crear mi dataset (en mi ejemplo se llama Ordenes) y este trae el detalle de las Ordenes de venta.
  • Luego voy a insertar mi tabla en el reporte de forma normal.
  • Creare una variable a nivel reporte que me cuente la cantidad de registros que vienen en mi dataset, luego la usaremos en las propiedades de las líneas de nuestra tabla.

image

image 

  • Ahora lo que haremos es agregar tantos filas a nuestra tabla como necesitemos, por ejemplo en mi caso son 10 filas, recuerde que siempre tiene una fila donde va el data con lo cual en total serian 11 filas para que la tabla quede fija en 10.

image

  • El próximo paso es ir a las opciones de visibilidad de cada fila y luego definir una expresión que nos indique si la fila se muestra o no dependiendo de la cantidad de registros del Dataset, si este ultimo trajo 3 registros entonces se deberían mostrar 7 filas , si trae 4 se deberían mostrar 6 y así con el resto de los casos para que siempre quede fija en 10 filas.
  • Hacemos click en la fila (parte gris)

image

  • Luego hacemos click con el botón alterno del mouse sobre lo seleccionado y vamos a la opción Row Visibility…
  • Ahora seleccionamos la opción Show or hide based on an expression

image

  • Pulsamos el botón de expresión (Fx) y escribimos la siguiente expresión , el 1 indica la fila, esto hay que hacerlo para cada fila incrementando este valor

=iif(
     10-Variables!CantidadRow.Value >= 1,false,true)

image

  • Ahora repetimos la operación para cada una de las filas incrementando el valor

image

  • En la ultima fila tendremos lo siguiente

image

 

Con esto ya tenemos el efecto deseado para que nuestra tabla siempre tenga 10 filas visibles por mas que el dataset traiga menos.

Tags:

Reporting Service

Comentarios (1) -

28/07/2011 7:55:45 #

Genio! que bueno este truco, lo que lo he buscado y me he roto el coco. Como siempre usted nos sorprende.
Maxi sabe que sos mi idolo

Diego

Agregar Comentario




biuquote
  • Comentario
  • Vista Previa
Loading


Maximiliano Damian Accotto