Поделиться через


Верхние и нижние колонтитулы страницы в отчете с разбивкой на страницы (построитель отчетов)

Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools

Отчет с разбивкой на страницы может содержать верхний и нижний колонтитулы, которые располагаются в верхней и нижней части каждой страницы соответственно. Верхние и нижние колонтитулы могут содержать статический текст, изображения, линии, прямоугольники, границы, цвет фона, фоновые изображения и выражения. Выражения включают ссылки на поля набора данных для отчетов, имеющих один и только один набор данных, а также вызовы агрегатных функций, которые включают набор данных в качестве области.

Примечание.

Каждый модуль подготовки отчетов обрабатывает страницы по-разному. Дополнительные сведения о разбиении отчета на страницы и о модулях подготовки отчетов см. в статье Разбивка на страницы в отчетах с разбивкой на страницы (построитель отчетов).

По умолчанию, отчеты содержат нижние колонтитулы, но не содержат верхние. Дополнительные сведения о том, как добавлять или удалять их, см. в статье Добавление или удаление верхнего или нижнего колонтитула в отчете с разбивкой на страницы (построитель отчетов).

Верхние и нижние колонтитулы обычно содержат номера страниц, заголовки отчетов и другие свойства отчета. Дополнительные сведения о том, как добавить эти элементы в верхний или нижний колонтитул страницы отчета, см. в статье Отображение номеров страниц или других свойств отчета с разбивкой на страницы (построитель отчетов).

После создания верхнего или нижнего колонтитула страницы он отображается на каждой странице отчета. Дополнительные сведения о том, как скрыть верхние и нижние колонтитулы на первой и последней страницах, см. в статье Скрытие верхнего или нижнего колонтитула первой или последней страницы отчета с разбивкой на страницы (построитель отчетов).

Примечание.

Создать и изменить определение для отчета на страницу (RDL-файл) можно с помощью построителя отчетов (Майкрософт), построителя отчетов Power BI и конструктора отчетов в SQL Server Data Tools.

Верхние и нижние колонтитулы отчета

Верхние и нижние колонтитулы страницы не следует путать с верхними и нижними колонтитулами отчета. В отчетах не предусмотрены специальные области верхнего или нижнего колонтитула отчета. Верхний колонтитул отчета состоит из элементов отчета, которые помещены в верхней части текста отчета в области конструктора отчета. Эти элементы появляются только один раз в качестве первого содержимого в отчете. Нижний колонтитул отчета состоит из элементов отчета, которые помещены в нижней части текста отчета. Эти элементы появляются только один раз в качестве последнего содержимого в отчете.

Верхние и нижние колонтитулы страниц могут включать статическое содержимое, но в основном используются для отображения изменяющегося содержимого, такого как номер страницы или сведения о содержимом страницы. Чтобы отобразить изменяющиеся данных, разные для каждой страницы, необходимо использовать выражение.

Если в отчете определен только один набор данных, то в верхний или нижний колонтитул страницы можно добавить простые выражения, такие как [FieldName] . Перетащите поле из набора данных области данных отчета или коллекции «Встроенные поля» в верхний или нижний колонтитул страницы. От имени пользователя будет автоматически добавлено текстовое поле с подходящим выражением.

Чтобы можно было вычислять суммы или другие статистические данные, относящиеся к значениям на странице, можно использовать статистические выражения, в которых заданы значения ReportItems или имя набора данных. Коллекция ReportItems представляет собой коллекцию текстовых полей на каждой странице, созданную после подготовки отчета к отображению. Имя набора данных должно существовать в определении отчета. В следующей таблице показано, какие элементы поддерживаются в статистическом выражении каждого типа:

Поддерживается в выражении Статистические выражения ReportItems Статистические выражения набора данных (в качестве области должно быть указано имя набора данных)
Текстовые поля в тексте отчета Да Нет
&PageNumber Да Нет
&TotalPages Да Нет
Агрегатная функция Да. Например,

=First(ReportItems!TXT_LastName.Value)
Да. Например,

=Max(Quantity.Value,"DataSet1")
Коллекция полей для элементов на странице Косвенно. Например,

=Sum(ReportItems!Textbox1.Value)
Да. Например,

=Sum(Fields!Quantity.Value,"DataSet1")
Изображение, привязанное к данным Косвенно. Например: =ReportItems!TXT_Photo.Value Да. Например,

=First(Fields!Photo.Value,"DataSet1")

Следующие подразделы этого раздела содержат готовые к использованию выражения, получающие переменные данные, обычно используемые в колонтитулах. Этот раздел также содержит сведения о том, как модуль подготовки отчетов в формате Excel обрабатывает верхние и нижние колонтитулы. Дополнительные сведения о выражениях см. в разделе Выражения (построитель отчетов и службы SSRS).

Применительно к некоторым отчетам бывает удобно включить в верхний или нижний колонтитул каждого отчета вычисляемое значение (например, общую сумму по странице, если страница содержит числовые значения). Но на поля нельзя ссылаться непосредственно, поэтому в верхний или нижний колонтитул необходимо поместить ссылку на имя элемента отчета (например, на текстовое поле), а не на поле данных.

=Sum(ReportItems!Textbox1.Value)

Если текстовое поле находится в таблице или списке, содержащих повторяющиеся строки данных, то значение, выводимое во время выполнения в верхнем или нижнем колонтитуле, будет суммой всех значений экземпляра данных TextBox1 в таблице или в списке для текущей страницы.

При вычислении суммарных показателей страниц при использовании различных модулей подготовки отчета можно ожидать, что будут выводиться различные цифры. Зависящие от страниц данные будут рассчитываться по-разному для каждого из модулей подготовки отчетов. Одна и та же страница может содержать различные итоговые значения при просмотре в формате HTML и в формате PDF, если на одну страницу в PDF приходится разное количество данных. Дополнительные сведения см. в разделе Поведение при подготовке к просмотру (построитель отчетов и службы SSRS).

Отчеты с несколькими наборами данных

Применительно к отчетам с несколькими наборами данных не допускается добавление полей или привязанных к данных изображений непосредственно в верхний или нижний колонтитул. Однако можно создать выражение, косвенно ссылающееся на поле или привязанное к данным изображение, которое необходимо использовать в верхнем или нижнем колонтитуле.

Чтобы поместить переменные данные в верхний или нижний колонтитул:

  • Добавьте текстовое поле в верхний или нижний колонтитул.

  • В текстовом поле введите выражение, создающее изменяющиеся данные, которые необходимо вывести.

  • Включите в выражение ссылки на элементы отчета на странице (например, можно сослаться на текстовое поле, содержащее данные из определенного поля). Не включайте прямую ссылку на поля из набора данных. Например, нельзя использовать выражение [LastName]. Можно использовать следующее выражение для отображения содержимого первого экземпляра текстового поля с именем TXT_LastName:

    =First(ReportItems!TXT_LastName.Value)

В верхнем или нижнем колонтитуле страницы нельзя применять агрегатные функции к полям. Можно использовать только агрегатную функцию по отношению к элементам отчета в тексте отчета. Примеры выражений в верхних и нижних колонтитулах страницы см. в статье Примеры выражений в отчетах с разбивкой на страницы (построитель отчетов).

В верхнем или нижнем колонтитуле можно использовать изображение, хранящееся в базе данных. Однако из элемента отчета Image нельзя ссылаться на поля базы данных напрямую. Вместо этого необходимо добавить текстовое поле в тело отчета, а затем связать текстовое поле с полем данных, которое содержит изображение (учтите, что это значение должно быть сохранено в формате base64). Можно скрыть текстовое поле в тексте отчета, чтобы не происходил вывод изображения в кодировке base64. Затем можно сослаться на значение скрытого текстового поля из элемента отчета Image в верхнем или нижнем колонтитуле страницы.

Предположим, например, что существует отчет, состоящий из страниц с информацией о продукте. В верхнем колонтитуле каждой страницы необходимо отобразить фотографию продукта. Чтобы напечатать изображение, хранимое в верхнем колонтитуле страницы, определите скрытое текстовое поле TXT_Photo в теле отчета, которое будет получать изображение из базы данных, и задайте ему значение с помощью выражения:

=Convert.ToBase64String(Fields!Photo.Value)

В верхнем колонтитуле добавьте элемент отчета Image, использующий текстовое поле TXT_Photo , который будет декодироваться для показа изображения:

=Convert.FromBase64String(ReportItems!TXT_Photo.Value)

Использование верхних и нижних колонтитулов для позиционирования текста

Можно использовать верхние и нижние колонтитулы для позиционирования текста на странице. Предположим, например, что требуется создать отчет, который необходимо отправить по почте заказчикам. Можно использовать верхний или нижний колонтитул для размещения адреса заказчика таким образом, чтобы он был виден в окне конверта даже в свернутом состоянии.

Если текстовое поле используется только для заполнения верхнего или нижнего колонтитула, то можно скрыть поле в теле отчета. Расположение текстового поля в теле отчета может оказывать влияние на то, появится ли значение на верхнем или нижнем колонтитуле первой или последней страницы отчета. Например, если таблицы, матрицы или списки располагаются в отчете на нескольких страницах, то скрытое текстовое поле окажется на последней странице. Если данные нужно отобразить на первой странице, поместите скрытое текстовое поле в верхней части текста отчета.

Проектирование отчетов с верхними и нижними колонтитулами страниц для конкретных модулей подготовки отчетов

При обработке отчета сведения о данных и макете объединяются. При просмотре отчета эти объединенные сведения передаются в модуль подготовки отчетов, который определяет, какое количество данных отчета может поместиться на каждой странице отчета.

Если просмотр отчета на сервере отчетов осуществляется с использованием браузера, то для управления содержимым просматриваемых страниц отчета используется модуль подготовки отчетов HTML. Если намечено доставка отчетов в формате, отличным от того, который используется для просмотра, или решено напечатать отчеты в каком-то конкретном формате, то может потребоваться оптимизировать макет отчета для того модуля подготовки отчетов, который планируется использовать при получении конечного формата отчета. Дополнительные сведения о разбиении отчета на страницы см. в статье Разбивка на страницы в отчетах с разбивкой на страницы (построитель отчетов).

Работа с верхними и нижними колонтитулами страниц в Excel

При определении верхнего и нижнего колонтитулов страницы для отчетов, предназначенных для модуля подготовки отчетов в формате Excel, придерживайтесь следующих правил для получения оптимальных результатов:

  • Используйте нижние колонтитулы для отображения номеров страниц.

  • Используйте верхние колонтитулы для представления изображений, заголовков или другого текста. Не выводите номера страниц в верхнем колонтитуле.

Возможности Excel по работе с нижними колонтитулами ограничены. При определении отчета, содержащего сложные элементы отчета в нижнем колонтитуле, колонтитул не будет обрабатываться должным образом при просмотре отчета в Excel.

Модуль подготовки отчетов в формате Excel помещает изображения и допускает абсолютное позиционирование простых или сложных элементов отчета в верхнем колонтитуле страницы. Побочным эффектом поддержки более разнообразных макетов верхнего колонтитула является сниженная поддержка расчета номера страницы в верхнем колонтитуле. В модуле подготовки отчетов в формате Excel параметры по умолчанию предусматривают вычисление номеров страниц на основе числа рабочих листов. В зависимости от способа определения отчета, это может привести к формированию неверных номеров страниц. Предположим, например, что имеется отчет, отображаемый как один большой рабочий лист, который выводится на печать на четырех страницах. Если в верхнем колонтитуле включены сведения о номере страницы, то на каждой отпечатанной странице в верхнем колонтитуле отобразится «Страница 1 из 1».

Более точный подсчет страниц основан на логических страницах, соответствующих размерам печатаемых листов. В Excel в нижнем колонтитуле страницы автоматически используются логические номера страниц. Чтобы вывести номер логической страницы в верхнем колонтитуле страницы, необходимо настроить сведения об устройстве в целях применения простых верхних колонтитулов. Но следует знать, что при использовании простых верхних колонтитулов отключается возможность использования в области верхнего колонтитула сложных макетов отчета.

Дополнительные сведения см. в разделе Экспорт в Microsoft Excel (построитель отчетов и службы SSRS).