Forcing a Page Break

TECH TIP: Forcing a Page Break

Question:  “How can I force a page break occur based upon a condition calculated at run-time.”

The latest versions of ReportBuilder include a TppPageBreak component which may be placed anywhere inside a report and automatically force a page break.  This is the recommended method for forcing a page break in ReportBuilder.  Below are other (older) methods for performing the same task.

Solution 1:

Define a Group that starts on a new page when it breaks. Then use the Group.OnGetBreakValue
event to control the timing of the break.

  1. From the Report Designer, select Report | Groups to access the Group dialog.
  2. Define a group based upon a static component, such as a Label or Variable. Click the Start new page checkbox. Close the dialog.
  3. Using the object inspector’s drop down list, find and select the TppGroup object.
  4. Create an event-handler for the Group’s OnGetBreakValue event.
  5. Add code to set the break value.
  procedure Form1.Group1OnGetBreakValue(Sender: TObject; var aBreakValue: String);
begin

  if condition then
    aBreakValue := 'Some Value';

end;

 

Solution 2:

  1. Place a subreport at the point where you might want a page break.
  2. Remove its summary band and reduce the height of its detail and title bands to zero.By programmatically setting the title band’s NewPage property you can conditionally force a page break. Note that everything after the subreport that is in the same band with it will need to ShiftRelativeTo the subreport.