Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Subreport overflowed on a band that does not support overflow

Tags:

I recently had an issue with a subreport of my JasperReports's report in which I was getting the following error:

Subreport overflowed on a band that does not support overflow.

What is happening?

like image 232
inanutshellus Avatar asked Jan 11 '11 17:01

inanutshellus


1 Answers

I fixed the problem, so I thought I'd post my solution here in case someone found it useful.

Things to check:

  1. If you're in a Detail band, check your report's Print Order. It has to be Vertical. Horizontal Print Order reports are not allowed to overflow on Detail bands.
  2. Check your subreport's dimensions. The subreport's width must be smaller than the report's width, and, for non-growing bands (see point #3 below), the height must be smaller than the band's height.
  3. Some bands grow, some bands don't. Keep this in mind with your subreports. If you have a subreport in a header or footer, make sure they do not grow, meaning that your datasource to that subreport can't send in too many elements, or send in repeating elements where your subreport is expecting one or few elements.

In my case, I had made a subreport and passed it a datasource that I wasn't actually using (it was an informational subreport not using any data from the datasource).

(the example is an XML datasource but the same concept applies to SQL datasources.)

e.g.

(net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}
    ).subDataSource("/Order/Note")

Later, the "Note" was turned into an array instead of a single note. Which meant my footer-subreport was trying to repeat twice, thus the footer report was printing twice, making it too high. Thus the error.

like image 62
inanutshellus Avatar answered Oct 25 '22 12:10

inanutshellus