Access Page number in report body In SSRS
I want to use Globals!PageNumber
in Report body part. How can I access inside Report body?
I am using SQL Server Reporting Servi开发者_开发问答ce 2008 R2
.
Create functions in the code under the report properties:
Page Number:
Function PageNumber() As String
Return Me.Report.Globals!PageNumber
End Function
Total Pages:
Function TotalPages() As String
Return Me.Report.Globals!TotalPages
End Function
Access it in the body via an expression:
=code.PageNumber & " of " & code.TotalPages
Check out Sample Usage of the Concat Function
Unfortunately in Reporting Services (up to RS2008), this will produce "Page 1 of 1" on every page. The problem is that the body is rendered before the header and footer, therefore the code cannot access the correct pagination, since it is determined AFTER all elements in the body.
If your report is basically a large table with predefined number of rows on each table, try using row_number in your SQL as a workaround to manually calculate page numbers: http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/c2047eee-41a8-4d79-ae58-dbf60f6e7554/
you can't use page number in body. use it only in report footer or header.
For that you need to use Report variables:
Go to Report Menu
from main Menu in Visual Studio, > Click on Report Properties
> Add new variable - named as PageCount
(Default value to 0)
Then inside header of footer create one textbox and set below expression,
=Variables!PageCount.SetValue(Variables!PageCount.Value+1)
It will automatically increase for each page.
NOTE: Do not hide it from header or footer, the SetValue
will not work if you hide the box, so change the font of textbox to white color. (Do whatever you want but just do not hide it. Then you can use below expression to fetch pagenumber value inside report body.
=Variables!PageCount.Value
I have taken reference from this answer.
精彩评论