Доступ к номеру страницы в тексте отчета в службах SSRS

Я хочу использовать Globals!PageNumber в части тела отчета. Как я могу получить доступ к телу отчета?

Я использую SQL Server Reporting Service 2008 R2.


person Mike    schedule 21.01.2011    source источник


Ответы (4)


Создайте функции в коде в свойствах отчета:

Номер страницы:

Function PageNumber() As String    
    Return Me.Report.Globals!PageNumber    
End Function

Всего страниц:

Function TotalPages() As String   
    Return Me.Report.Globals!TotalPages    
End Function

Доступ к нему в теле через выражение:

=code.PageNumber & " of " & code.TotalPages

Ознакомьтесь с Пример использования функции Concat

person Struan    schedule 30.07.2012
comment
Ты прав. нам нужно реализовать собственный код для доступа к значению части тела в заголовке. Спасибо. - person Mike; 01.08.2012
comment
привет, я пишу обе функции в свойствах отчета — область кода и пишу =code.PageNumber & of & code.TotalPages в текстовом поле в части тела отчета. он показывает 1 из 1, когда всего страниц 6 .. что может быть не так? пожалуйста, предложите... - person hemanth; 04.01.2013
comment
Почему этот ответ принят? Это не работает, так как номер страницы нельзя использовать в теле отчета. - person pabrams; 13.01.2014
comment
У меня не работает, всегда дает страницу 1 из 1, независимо от того, сколько страниц. - person Kevin; 25.07.2014
comment
Я использую этот метод в выражении, чтобы скрыть текстовое поле на странице 1 отчета, которое потенциально может перейти на несколько страниц, и это работает. Я использую следующее выражение: - =IIF(code.TotalPages = 1 OR (code.TotalPages › 1 AND code.PageNumber ‹› code.TotalPages), true, false) - person Neil; 21.11.2019

К сожалению, в Reporting Services (до RS2008) на каждой странице будет отображаться «Страница 1 из 1». Проблема в том, что тело рендерится раньше шапки и футера, поэтому код не может получить доступ к правильной нумерации страниц, так как она определяется ПОСЛЕ всех элементов в теле.

Если ваш отчет в основном представляет собой большую таблицу с предопределенным количеством строк в каждой таблице, попробуйте использовать row_number в своем SQL в качестве обходного пути для ручного расчета номеров страниц: http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/c2047eee-41a8-4d79-ae58-dbf60f6e7554/

person Tingo    schedule 04.12.2012

вы не можете использовать номер страницы в теле. используйте его только в нижнем или верхнем колонтитуле отчета.

person masoud ramezani    schedule 23.01.2011
comment
См. также соответствующий элемент MS Connect. - person Jeroen; 05.07.2012

Для этого вам нужно использовать Переменные отчета:

Перейдите к Report Menu из главного меню в Visual Studio, > нажмите Report Properties > Добавьте новую переменную с именем PageCount (значение по умолчанию 0)

Затем внутри заголовка нижнего колонтитула создайте одно текстовое поле и установите ниже выражение,

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

Он будет автоматически увеличиваться для каждой страницы.

ПРИМЕЧАНИЕ. Не скрывайте его из верхнего или нижнего колонтитула, SetValue не будет работать, если вы скроете поле, поэтому измените шрифт текстового поля на белый цвет. (Делайте все, что хотите, но только не скрывайте это. Затем вы можете использовать выражение ниже, чтобы получить значение номера страницы внутри тела отчета.

=Variables!PageCount.Value

Я взял ссылку из этого ответа< /а>.

person pedram    schedule 06.01.2016