代码之家  ›  专栏  ›  技术社区  ›  Alvaro Pedraza

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

  •  3
  • Alvaro Pedraza  · 技术社区  · 7 年前

    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>
    

    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 回复  |  直到 7 年前
        1
  •  4
  •   Community Doug McClean    4 年前

    它还试图适应 pageFooter 与在同一页上 title 波段( 650+50>656 ).

    您需要设置属性

    isTitleNewPage="true"
    

    从…起 JReport API

    指定标题部分是否打印在 分离 初始页。

    在JasperSoft工作室

    Title on new page