Search code examples
jasper-reports

How to control the number of rows in a JasperReports


How do I set the number of rows to be displayed per page in a report using iReports. Ex: if i have 100 records, I wasnt to display 10 per page and then break. The default behavior is to cram all the records possible in the page.


Solution

  • Ok! Found a way to accomplish this!

    1. The rows are usually printed in the Details band.
    2. At the end of the details band, where you need a page break, add a pagebreak.
    3. In the pageBreak's properties, edit the printWhen Expression from the properties pane.
    4. The expression will be

    new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)

    where 10 is the number of records per page.

    This is how it is done in iReports. The jrxml equivalent for people directly editing the file is as below.

    <break>
        <reportElement x="0" y="23" width="100" height="1">
            <printWhenExpression><![CDATA[new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)]]></printWhenExpression>
        </reportElement>
    </break>
    

    Put this just after the <band> tag under <details> tag.