You can force a page break as described below. There is also a page break component available from www.bancoems.com/rbaddon.htm.
--------------------------------------------- Article: Forcing a Page Break ---------------------------------------------
Question:
How can I force a page break to occur based upon a condition calculated at run-time.
2 of the best solutions follow:
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.
NewPage is a method on the ToDo list. The easiest to way to get a page break in a band is to use the PageBreak component included in the RBAddOn component set. Thanks for the feedback.
Comments
component available from www.bancoems.com/rbaddon.htm.
---------------------------------------------
Article: Forcing a Page Break
---------------------------------------------
Question:
How can I force a page break to occur based upon
a condition calculated at run-time.
2 of the best solutions follow:
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.
--
Cheers,
Alexander Kramnik
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
feature. I believe that Quickreport has such a facility.
I have played around in the past with the convoluted methods described and
find them rather unsatisfactory.
Peter Harris
"Alexander Kramnik (Digital Metaphors)" wrote
break in a band is to use the PageBreak component included in the RBAddOn
component set. Thanks for the feedback.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com