为什么部分不适合页面高度?

时间:2017-10-02 23:43:08

标签: jasper-reports

我在报告中工作,需要附加到另一个报告以生成更大的报告,因此它只有标题,页脚和摘要部分。问题是我收到编译错误而且我不知道原因。这是我的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制作的,并且在设计视图中显示了那种错误。

有关报告源代码的任何其他信息,请在评论中告诉我们。

1 个答案:

答案 0 :(得分:2)

它还尝试将pageFooter放在与title频段(650+50>656)相同的网页上。

如果您在没有pageFooter的单独页面上喜欢标题带,则需要设置属性

isTitleNewPage="true"

来自JReport API

  

指定标题部分是否将打印在单独的初始页面上。

在JasperSoft Studio中

Title on new page