Как управлять отступом сверху на второй странице отчета

06.09.2018

Часто, при отображении отчета вы можете наблюдать как не поместившиеся на первой странице данные переносятся на вторую. Это характерно для бэнда «Данные» и «Заголовок группы», и связанных с ними.

В бэнде «Данные» могут быть поля данных, или другие объекты, такие как таблица или матрица.

Чтобы первая страница полностью заполнилась данными, без пробелов, нужно установить свойство CanBreak для бэнда «Данные». Но что, если вы хотите «остаток» таблицы на второй странице разместить ниже верхнего края? Скажем на уровне начала таблицы. При этом, если просматривать одновременно два листа отчета, это будет выглядеть гармонично. Штатных настроек для этого нет. Но, мы всегда можем воспользоваться скриптом отчета, и сделать что угодно.

Поэтому существует два способа осуществить задуманное, и оба они очень похожи.

Первый способ:

  1. Добавить бэнд «Заголовок страницы»;
  2. Добавить обработчик события BeforePrint для этого бэнда;
  3. В коде обработчика события проверить номер текущей страницы, и, если это вторая страница, но изменить высоту бэнда на подходящую величину.

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

Второй способ практически идентичен первому:

  1. Добавить бэнд «Заголовок страницы»;
  2. Задать ему нужную высоту в свойствах;
  3. Добавить обработчик события BeforePrint для бэнда «Заголовок страницы»;
  4. В коде обработчика события проверить номер текущей страницы, и, если это вторая страница, но отобразить бэнд.

Оба способа абсолютно равнозначные, просто выберите понравившийся.

Теперь рассмотрим код обработчика события BeforePrint для бэнда «Заголовок страницы».

Первый способ:

1
2
3
4
5
6
7
private void PageHeader1_BeforePrint(object sender, EventArgs e)
{
 if (Engine.CurPage > 0)
 PageHeader1.Height = 50; // Set top margin
 else
 PageHeader1.Height = 0;
}

 Второй способ:

1
2
3
4
5
6
7
private void PageHeader1_BeforePrint(object sender, EventArgs e) 
{ 
 if (Engine.CurPage > 0) 
 PageHeader1.Visible = true; 
 else 
 PageHeader1.Visible = false; 
} 

 Как видите, в первом случае мы изменяем высоту бэнда в коде, а во втором отображаем бэнд с заранее заданной высотой.

В результате получим отступ сверху для таблицы на второй странице отчета:

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

.NET FastReport .NET FastReport
16 октября 2026

Новые возможности .NET 11: обзор C# 15, EF Core 11, ASP.NET Core и производительности

Обзор .NET 11: C# 15, union-типы, новая модель безопасности памяти, Windows Forms, EF Core 11, ASP.NET Core и Blazor, ускорение Runtime и NativeAOT.
12 октября 2026

Экспорт отчёта в XML из Preview в FastReport .NET

Узнайте, как сохранить отчёт в формате XML в FastReport .NET: экспорт из Preview без кода и программный экспорт через XMLExport с настройкой параметров.
12 октября 2026

GS1 DataBar Expanded Stacked: особенности и настройка в FastReport .NET

GS1 DataBar Expanded Stacked — многострочный штрихкод для товаров: кодирует GTIN, срок годности, вес, номер партии. Узнайте, как работает символика и настройка Segments в FastReport .NET.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»