Subreport overflowed on a band that does not support overflow

inanutshellus picture inanutshellus · Jan 11, 2011 · Viewed 42.3k times · Source

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?

Answer

inanutshellus picture inanutshellus · Jan 21, 2011

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.