Добавление верхних и нижних колонтитулов
Отчет может содержать верхний и нижний колонтитулы, которые располагаются в верхней и нижней части каждой страницы соответственно. Верхние и нижние колонтитулы могут содержать выражения, статический текст, изображения, линии, прямоугольники, границы, цвет фона и фоновые изображения. Выражения включают ссылки на поля набора данных для отчетов, имеющих один и только один набор данных, а также вызовы статистических функций, которые включают набор данных в качестве области.
Примечание |
---|
Каждый модуль подготовки отчетов обрабатывает страницы по-разному. Дополнительные сведения о разбиении отчета на страницы и модулях подготовки отчетов см. в разделе Основные сведения о разбиении на страницы в службах Reporting Services. |
По умолчанию верхние и нижние колонтитулы страницы не являются частью отчета. Пошаговые инструкции по их добавлению см. в разделе Как добавить или удалить верхний или нижний колонтитул страницы (службы Reporting Services).
После создания верхнего или нижнего колонтитула страницы он отображается на каждой странице отчета. Пошаговые указания о том, как подавлять верхние и нижние колонтитулы страницы на первой и последней страницах, см. в разделе Как скрыть верхний или нижний колонтитул первой или последней страницы (службы Reporting Services).
Верхние и нижние колонтитулы отчета
Верхние и нижние колонтитулы страницы не следует путать с верхними и нижними колонтитулами отчета. В отчетах не предусмотрены специальные области верхнего или нижнего колонтитула отчета. Верхний колонтитул отчета состоит из элементов отчета, которые помещены в верхней части текста отчета в области конструктора отчета. Эти элементы появляются только один раз в качестве первого содержимого в отчете. Нижний колонтитул отчета состоит из элементов отчета, которые помещены в нижней части текста отчета. Эти элементы появляются только один раз в качестве последнего содержимого в отчете.
Отображение изменяющихся данных в верхнем или нижнем колонтитуле страницы
Верхние и нижние колонтитулы страниц могут включать статическое содержимое, но в основном используются для отображения изменяющегося содержимого, такого как номер страницы или сведения о содержимом страницы. Чтобы отобразить изменяющиеся данных, разные для каждой страницы, необходимо использовать выражение.
Если в отчете определен только один набор данных, то в верхний или нижний колонтитул страницы можно добавить простые выражения, такие как [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 обрабатывает верхние и нижние колонтитулы. Дополнительные сведения о выражениях см. в разделе Работа с выражениями отчетов.
Добавление номера страницы в верхний или нижний колонтитул
Нижние колонтитулы обычно содержат номер страницы. Чтобы отобразить номера страниц в колонтитуле отчета, создайте текстовое поле в нижнем колонтитуле и добавьте в него следующее выражение:
=Globals.PageNumber & " of " & Globals.TotalPages
Чтобы определить формат для номеров страниц и текста независимо друг от друга, введите следующий текст непосредственно в текстовом поле в верхнем или нижнем колонтитуле страницы:
[&PageNumber] of [&TotalPages]
Можно выбрать каждый раздел текста и применить отдельные форматы к тексту. Дополнительные сведения см. в разделе Как форматировать текст в текстовом поле.
Добавление заголовка отчета, имени, пути и времени выполнения отчета к верхнему или нижнему колонтитулу
Используйте следующие выражения для вывода заголовка из текстового поля ReportTitle или имени отчета, под которым он хранится в базе данных сервера отчетов, а также информации метки времени, касающейся создания отчета:
=ReportItems!ReportTitle.Value
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
Добавление вычисляемых итогов по странице к верхнему или нижнему колонтитулу
Применительно к некоторым отчетам бывает удобно включить в верхний или нижний колонтитул каждого отчета вычисляемое значение (например, общую сумму по странице, если страница содержит числовые значения). Но на поля нельзя ссылаться непосредственно, поэтому в верхний или нижний колонтитул необходимо поместить ссылку на имя элемента отчета (например, на текстовое поле), а не на поле данных.
=Sum(ReportItems!Textbox1.Value)
Если текстовое поле находится в таблице или списке, содержащих повторяющиеся строки данных, то значение, выводимое во время выполнения в верхнем или нижнем колонтитуле, будет суммой всех значений экземпляра данных TextBox1 в таблице или в списке для текущей страницы.
При вычислении суммарных показателей страниц при использовании различных модулей подготовки отчета можно ожидать, что будут выводиться различные цифры. Зависящие от страниц данные будут рассчитываться по-разному для каждого из модулей подготовки отчетов. Одна и та же страница может содержать различные итоговые значения при просмотре в формате HTML и в формате PDF, если на одну страницу в PDF приходится разное количество данных. Дополнительные сведения см. в разделе Основные сведения о подготовке отчета к просмотру.
Отчеты с несколькими наборами данных
Применительно к отчетам с несколькими наборами данных не допускается добавление полей или привязанных к данных изображений непосредственно в верхний или нижний колонтитул. Однако можно создать выражение, косвенно ссылающееся на поле или привязанное к данным изображение, которое необходимо использовать в верхнем или нижнем колонтитуле.
Чтобы поместить переменные данные в верхний или нижний колонтитул:
Добавьте текстовое поле в верхний или нижний колонтитул.
В текстовом поле введите выражение, создающее изменяющиеся данные, которые необходимо вывести.
Включите в выражение ссылки на элементы отчета на странице (например, можно сослаться на текстовое поле, содержащее данные из определенного поля). Не включайте прямую ссылку на поля из набора данных. Например, нельзя использовать выражение [LastName]. Можно использовать следующее выражение для отображения содержимого первого экземпляра текстового поля с именем TXT_LastName:
=First(ReportItems!TXT_LastName.Value)
В верхнем или нижнем колонтитуле страницы нельзя применять статистические функции к полям. Можно использовать только статистическую функцию по отношению к элементам отчета в тексте отчета. Примеры выражений в верхних и нижних колонтитулах страниц см. в разделе Примеры выражений (службы Reporting Services).
Добавление привязанного к данным изображения в верхний или нижний колонтитул
В верхнем или нижнем колонтитуле можно использовать изображение, хранящееся в базе данных. Однако из элемента отчета Image нельзя ссылаться на поля базы данных напрямую. Вместо этого необходимо добавить текстовое поле в тело отчета, а затем связать текстовое поле с полем данных, которое содержит изображение (учтите, что это значение должно быть сохранено в формате base64). Можно скрыть текстовое поле в тексте отчета, чтобы не происходил вывод изображения в кодировке base64. Затем можно сослаться на значение скрытого текстового поля из элемента отчета Image в верхнем или нижнем колонтитуле страницы.
Предположим, например, что существует отчет, состоящий из страниц с информацией о продукте. В верхнем колонтитуле каждой страницы необходимо отобразить фотографию продукта. Чтобы напечатать изображение, хранимое в верхнем колонтитуле страницы, определите скрытое текстовое поле TXT_Photo в теле отчета, которое будет получать изображение из базы данных, и задайте ему значение с помощью выражения:
=Convert.ToBase64String(Fields!Photo.Value)
В верхнем колонтитуле добавьте элемент отчета Image, использующий текстовое поле TXT_Photo, который будет декодироваться для показа изображения:
=Convert.FromBase64String(ReportItems!TXT_Photo.Value)
Использование верхних и нижних колонтитулов для позиционирования текста
Можно использовать верхние и нижние колонтитулы для позиционирования текста на странице. Предположим, например, что требуется создать отчет, который необходимо отправить по почте заказчикам. Можно использовать верхний или нижний колонтитул для размещения адреса заказчика таким образом, чтобы он был виден в окне конверта даже в свернутом состоянии.
Если текстовое поле используется только для заполнения верхнего или нижнего колонтитула, то можно скрыть поле в теле отчета. Расположение текстового поля в теле отчета может оказывать влияние на то, появится ли значение на верхнем или нижнем колонтитуле первой или последней страницы отчета. Например, если таблицы, матрицы или списки располагаются в отчете на нескольких страницах, то скрытое текстовое поле окажется на последней странице. Если данные нужно отобразить на первой странице, поместите скрытое текстовое поле в верхней части текста отчета.
Проектирование отчетов с верхними и нижними колонтитулами страниц для конкретных модулей подготовки отчетов
При обработке отчета сведения о данных и макете объединяются. При просмотре отчета эти объединенные сведения передаются в модуль подготовки отчетов, который определяет, какое количество данных отчета может поместиться на каждой странице отчета.
Если просмотр отчета на сервере отчетов осуществляется с использованием обозревателя, то для управления содержимым просматриваемых страниц отчета используется модуль подготовки отчетов HTML. Если намечено доставка отчетов в формате, отличным от того, который используется для просмотра, или решено напечатать отчеты в каком-то конкретном формате, то может потребоваться оптимизировать макет отчета для того модуля подготовки отчетов, который планируется использовать при получении конечного формата отчета. Дополнительные сведения о разбиении отчета на страницы см. в разделе Основные сведения о разбиении на страницы в службах Reporting Services.
Работа с верхними и нижними колонтитулами страниц в Excel
При определении верхнего и нижнего колонтитулов страницы для отчетов, предназначенных для модуля подготовки отчетов в формате Excel, придерживайтесь следующих правил для получения оптимальных результатов:
Используйте нижние колонтитулы для отображения номеров страниц.
Используйте верхние колонтитулы для представления изображений, заголовков или другого текста. Не выводите номера страниц в верхнем колонтитуле.
Возможности Excel по работе с нижними колонтитулами ограничены. При определении отчета, содержащего сложные элементы отчета в нижнем колонтитуле, колонтитул не будет обрабатываться должным образом при просмотре отчета в Excel.
Модуль подготовки отчетов в формате Excel помещает изображения и допускает абсолютное позиционирование простых или сложных элементов отчета в верхнем колонтитуле страницы. Побочным эффектом поддержки более разнообразных макетов верхнего колонтитула является сниженная поддержка расчета номера страницы в верхнем колонтитуле. В модуле подготовки отчетов в формате Excel параметры по умолчанию предусматривают вычисление номеров страниц на основе числа рабочих листов. В зависимости от способа определения отчета, это может привести к формированию неверных номеров страниц. Предположим, например, что имеется отчет, отображаемый как один большой рабочий лист, который выводится на печать на четырех страницах. Если в верхнем колонтитуле включены сведения о номере страницы, то на каждой отпечатанной странице в верхнем колонтитуле отобразится «Страница 1 из 1».
Более точный подсчет страниц основан на логических страницах, соответствующих размерам печатаемых листов. В Excel в нижнем колонтитуле страницы автоматически используются логические номера страниц. Чтобы вывести номер логической страницы в верхнем колонтитуле страницы, необходимо настроить сведения об устройстве в целях применения простых верхних колонтитулов. Но следует знать, что при использовании простых верхних колонтитулов исключается возможность обработки сложного макета отчета в области верхнего колонтитула. Дополнительные сведения об изменении настроек устройства см. в разделе Настройки сведений об устройстве Excel.
Дополнительные сведения см. в разделе Экспорт в Microsoft Excel.
См. также