在做使用Ireport报表填充时,报异常
java.lang.ArrayIndexOutOfBoundsException: 0 at
net.sf.jasperreports.engine.util.ParagraphUtil.getFirstTabStop(ParagraphUtil.java:208) at
net.sf.jasperreports.engine.fill.TextMeasurer.renderNextLine(TextMeasurer.java:1023) at
net.sf.jasperreports.engine.fill.TextMeasurer.renderParagraph(TextMeasurer.java:717)
经测试,报错处在
jasperPrint = JasperFillManager.fillReport(…)
填充时所使用的DataSource没有问题,唯独数据库中有两条数据在测试时报上述错误,可是经查看,数据之间一样,并无差别,后来查到问题是:
We’ve encountered this problem recently. We just found out
that reducing the value of the Tab Stop Width property of the
Textfield seems to work around this bug.Apparently, this forces the getFirstTabStop() method to return a non-null value thereby
circumventing the bug.
就是文本域的tab stop width这个属性异常截断,所需填充数据的某些字段属性也稍稍长,因此,将Ireport中对应的文本框的tab stop width的值增大后即可。