Печать шапки на всех страницах отчета.

Уже несколько раз наталкивался на вопрос по поводу печати шапки таблицы на каждой страницы отчета кроме первой. Решений данного вопроса несколько. Эта статья представляет одно из решений.

Задача:

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

Реализация:

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

У вновь созданного Detail1 обязательно установите FEQ (к примеру: ?Detail1)

Как видите на рисунке продублирована информация (номера уолонок) из PageHeader на Detail`е

На Detail1 так же положим белый бокс шириной во всю ширину PageHeader и высотой немногим больше высоты PageHeader.

На всех последующих страницах мы будем печатать только номера колонок… т.е. то что создали в PageHeader`е

Позицию Ypos для Detail1 нужно установить как отрицательный размер по высоте PageHeader. Т.е. Если ваш PageHeader высотой 400/1000 дюйма то, Ypos для Detail1 нужно установить равным -400/1000 дюйма.

Отключаем печать нашего Detail1 в настройках отчета. Report Properties->Filters

Для того что бы Detail1 печатался только на первой странице в точку вставки (см рис.) добавим код

На этом все!

Как это работает:

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

Скачать пример: Печать шапки на всех страницах отчета

В примере смотреть первый отчет в менюшке …