我正在编写一个报告,该报告需要附加到另一个报告以生成更大的报告,因此它只有标题、页脚和摘要部分。问题是我遇到编译错误,但我不知道原因。这是我的jrxml
文件(包含的部分...
为简洁起见省略):
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="469" leftMargin="70" rightMargin="56" topMargin="130" bottomMargin="56" isSummaryWithPageHeaderAndFooter="true" ...>
<property ...some properties.../>
<parameter .../>
<queryString language="SQL">...</queryString>
<field .../>
<variable>...</variable>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="650" splitType="Stretch">...</band>
</title>
<pageFooter>
<band height="50">...</band>
</pageFooter>
<summary>
<band height="451">...</band>
</summary>
</jasperReport>
尝试使用 Jaspersoft Studio 时出现错误,但看不到跟踪,因此我在 Netbeans 中做了一个小例程,得到的堆栈跟踪是:
Exception in thread "main" net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. The title section, the page and column headers and footers and the margins do not fit the page height.
at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:280)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:152)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:357)
at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:273)
at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:232)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:542)
at ar.edu.unt.jasper.ReportCompilerAndExporter.main(ReportCompilerAndExporter.java:25)
我的代码中的行(堆栈跟踪中的最后一行)是这样的:
String myReport = JasperCompileManager.compileReportToFile("myReport.jrxml");
(文件存在且路径正确)
我的第一个想法是pageHeight - (topMargin + bottomMargin) < 650px
但事实证明并非如此,事实上是656px
所以我不知道我错过了什么。欢迎任何帮助或指导。
我尝试删除<pageFooter>
只是为了测试(我不能在最终报告中做到这一点,它包含一些信息)并且报告可以顺利编译和呈现。此外,我可以说没有元素超出范围,因为它是用 Jaspersoft Studio 制作的,并且这种错误显示在设计视图中。
有关报告源代码的任何其他信息请在评论中告诉我。
它也试图适应pageFooter
在同一页面上title
band (650+50>656
).
如果您喜欢将标题带放在单独的页面上而不pageFooter
你需要设置属性
isTitleNewPage="true"
from JReport API http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRReport.html#isTitleNewPage--
指定标题部分是否打印在separate初始页面。
在 JasperSoft 工作室中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)