With ActiveReports, you can specify the number of rows to render (including empty ones) on each page of your report. How you do it depends on the report type you're using.

Section Reports

In Section reports, there are a number of ways to add rows.

1. Use the RepeatToFill property of the Detail section.

When there isn't enough data to output more than one page, set the RepeatToFill property of the Detail section to True to repeat empty rows to the bottom of page.


Warning: A few things interfere with the RepeatToFill property.

  • A PageBreak or SubReport control in the Detail section

  • A NewPage or NewColumn property set to any value other than None

  • Two or more groups in the report

In the case of multiple groupings, RepeatToFill causes the ReportFooter section to print on the next page. RepeatToFill only processes correctly with a single grouping.

For more information on how this works in Section reports, see the following User Guide and Class Library references.

Section Report Structure | RepeatToFill Property (Detail)

2. Add empty rows to DataSets.

You can modify the data in your data source to have your DataSet include empty rows. Then you can render the empty rows in any part of your bound report.

For more information, see the following topics in our User Guide.

Bound Data | Unbound Data

For DataSet help, see the following MSDN documentation.

Creating and Using DataSets

3. Use the FetchData event.

In a bound report, when the records retrieved from the data source reach the end of the file (EOF), the eArgs.EOF property returns True in the FetchData event, and the report generation finishes. At this point, setting eArgs.EOF to False allows you to export any number of Detail section instances, even when the records are at EOF.

For more information, see the following help topics.

EOF Property | FetchData Event | Section Report Events

4. Use code in unbound reports.

In unbound reports, you can move records and implement data sets using code, so you can get nearly any behavior you want.

When you modify the data that is important for grouping in the FetchData event, you don't have to move data. You can export empty rows by adding empty data in the Fields collection as many times (that is, as many rows) as you want.

For more information, see the following topics in our User Guide.

Unbound Data | Group On Unbound Fields

FetchData Event | FieldCollection Class

5. Use the Overlay method.

You can superimpose a page of a report onto any page of another report using the Overlay method of the Pages collection.

For example, you can create a report in which you use line controls to frame a page. Then you can run this report for as many pages as a second report in which you output data, and overlay the frame line report on the data report using the Overlay method.

For more on how to do this, see the following topics in the help file.

Overlaying Reports (Letterhead) | Overlay Method | Pages Property

6. Use the LayoutAction property.

By changing the LayoutAction property value in code, you can render sections without moving through the records. Using this property allows you to output empty rows to any part of a bound report.

Set the LayoutAction property to MoveLayout to leave a blank space without skipping a record.

To learn more about the LayoutAction property, see the following topics in our User Guide.

Address Labels | LayoutAction Property

To see what effect different combinations of LayoutAction values have, see the Remarks section in the following topic.

LayoutAction Enumeration

Page Reports

In Page reports, you can affect the rows per page using properties of the Table data region.


You can create a tabular report with a specific number of rows by setting the RepeatToFill property of the Table data region to True.

Select the table to reveal its properties.

Run-time report with RepeatToFill set to False.

Run-time report with RepeatToFill set to True.

For more information, see the following topics in our User Guide.

Table | RepeatToFill Property (Table)


When you use a group footer in the Table data region, it renders above any empty rows, but if you set the PrintAtBottom property to True, you can render it below them, at the bottom of the page.

Select the table group footer row to reveal its properties.

Run-time report with PrintAtBottom set to True.

For more information, see the following topics in our User Guide.

Table | PrintAtBottom Property (GroupFooter)