我在报告中工作,需要附加到另一个报告以生成更大的报告,因此它只有标题,页脚和摘要部分。问题是我收到编译错误而且我不知道原因。这是我的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制作的,并且在设计视图中显示了那种错误。
有关报告源代码的任何其他信息,请在评论中告诉我们。
答案 0 :(得分:2)
它还尝试将pageFooter
放在与title
频段(650+50>656
)相同的网页上。
如果您在没有pageFooter
的单独页面上喜欢标题带,则需要设置属性
isTitleNewPage="true"
指定标题部分是否将打印在单独的初始页面上。