sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo mostrar el número de página en el cuerpo del informe de SSRS 2008 R2?

Primero necesita usar variables de informe: haga clic con el botón derecho en el espacio vacío del informe -> Variables -> Cree una variable como PageCount (establezca el valor predeterminado en 0)

Luego, en su encabezado o pie de página -> cree un cuadro de texto y establezca la expresión ->

=Variables!PageCount.SetValue(Variables!PageCount.Value+1)

Aumentará automáticamente para cada página. (IMPORTANTE:NO lo oculte del encabezado o pie de página, SetValue NO funcionará si oculta el cuadro, así que cambie la fuente a 1 o el texto a blanco, haga lo que sea, solo NO lo escondas (imprimirá 'Verdadero' a medida que se realizó la configuración))

Entonces puedes usar:

=Variables!PageCount.Value

en cualquier parte del cuerpo de su informe para acceder al número de página.

IMPORTANTE:TENGA EN CUENTA que traté de usar Globals!PageNumber para configurar la variable, pero al final NO era accesible desde el cuerpo del informe. Por lo tanto, tiene que ser algo accesible desde Encabezado/Pie de página O Cuerpo.

En mi caso, tengo que restablecer el número de página para cada instancia de mi grupo. Así que solo configuro un disparador al final del grupo (por ejemplo, verifico si tengo mis retornos de valor total, porque sé para cada extremo de mi grupo tendré una pantalla Total.

Debido a la función IIF se procesarán tanto la parte verdadera como la falsa, por lo que si coloca setters en IIF como a continuación:

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),Variables!PageCount.SetValue(0))

 ) 

terminará teniendo el valor 0 todo el tiempo, porque el informe verificará la parte verdadera y luego la parte falsa, ambos setters se ejecutarán (el valor se establecerá dos veces)

por lo que necesitamos 2 casillas y algo como:(Tienes que ocultar las casillas innecesarias en tus condiciones de verificación)

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),"")
)

Debe ocultar este cuadro cuando NOT IsNothing(ReportItems!TotalBox.Value)

=IIF(NOT IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(0),"")
)

Nuevamente, debe ocultar este cuadro cuando IsNothing(ReportItems!TotalBox.Value)

Por supuesto, podría usar alguna otra forma de determinar el final de una instancia de grupo, como:hacer un cuadro de texto que SOLO contenga un valor fijo al final de su tabla de grupo. y ocultarlo. cuando marque el gatillo simplemente haga el mismo enfoque que yo.

Funciona bien para todas las versiones anteriores a 2008 R2 (incluida).