如何拆分大框架

时间:2016-08-04 11:12:30

标签: jasper-reports

我有一个碧玉报道,它有一个高度为1500px的细节带。我的页面高度是842px。这个带内有一个高度为940px的框架。 这是我的jrxml-File:

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Created with Jaspersoft Studio version 6.3.0.final using JasperReports Library version 6.3.0  -->
<!-- 2016-08-04T11:33:30 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="Template" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="fe0ec478-f3f0-4324-9feb-f143cc73c90f">
  <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record" />
  <detail>
    <band height="1500" splitType="Stretch">
      <frame>
        <reportElement positionType="Float" stretchType="RelativeToTallestObject" mode="Opaque" x="0" y="30" width="555" height="940" backcolor="#F5F9FF" uuid="917a9ec0-b801-49ca-93e7-5106f89868e9">
          <property name="com.jaspersoft.studio.unit.width" value="pixel" />
        </reportElement>
        <box>
          <pen lineWidth="1.0" lineStyle="Solid" lineColor="#E3E3E3" />
        </box>
      </frame>
      <staticText>
        <reportElement x="0" y="0" width="555" height="30" uuid="303bc3ed-22ad-4f01-a7d1-c35e8b95ac77" />
        <text>
          <![CDATA[Static Text]]>
        </text>
      </staticText>
    </band>
  </detail>
</jasperReport>

编译后我收到以下错误:

The detail section, the page and column headers and footers and the margins do not fit the page height. --- net.sf.jasperreports.engine.design.JasperDesign

我的第一个问题是:为什么我会得到这个例外?

如果我将细节带的分割类型更改为“立即”,那么我不再得到上述错误。几分钟后,我得到OutOfMemoryError。 我的第三个问题:为什么在将Split Type更改为“Immediate”后会出现此错误。

我的第三个问题是:如何将我的帧分割成772px(在StaticText之后)和168px在下一页的顶部?我想一个接一个地显示多个帧(具有不同的高度;其中一些非常长)。

1 个答案:

答案 0 :(得分:2)

您必须将模板大小更改为高度 页面大小 - &gt;页面高度

试试这段代码:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Template" pageWidth="595" pageHeight="1600" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <property name="ireport.zoom" value="1.610510000000001"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <detail>
        <band height="1500" splitType="Stretch">
            <frame>
                <reportElement positionType="Float" stretchType="RelativeToTallestObject" mode="Opaque" x="0" y="30" width="555" height="940" backcolor="#F5F9FF">
                    <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                </reportElement>
                <box>
                    <pen lineWidth="1.0" lineStyle="Solid" lineColor="#E3E3E3"/>
                </box>
            </frame>
            <staticText>
                <reportElement x="0" y="0" width="555" height="30"/>
                <textElement/>
                <text><![CDATA[
          Static Text
        ]]></text>
            </staticText>
        </band>
    </detail>
</jasperReport>

如果您拆分页面,您可以使用:

<break><reportElement x="0" y="10" width="100" height="1"/></break>

报告中的分页符:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Template" pageWidth="595" pageHeight="1600" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <property name="ireport.zoom" value="1.610510000000001"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <detail>
        <band height="1500" splitType="Stretch">
            <frame>
                <reportElement positionType="Float" stretchType="RelativeToTallestObject" mode="Opaque" x="0" y="84" width="555" height="886" backcolor="#F5F9FF">
                    <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                </reportElement>
                <box>
                    <pen lineWidth="1.0" lineStyle="Solid" lineColor="#E3E3E3"/>
                </box>
            </frame>
            <staticText>
                <reportElement x="0" y="0" width="555" height="30"/>
                <textElement/>
                <text><![CDATA[firtst page]]></text>
            </staticText>
            <staticText>
                <reportElement x="0" y="43" width="555" height="30"/>
                <textElement/>
                <text><![CDATA[next page]]></text>
            </staticText>
            <break>
                <reportElement x="0" y="33" width="100" height="1"/>
            </break>
        </band>
    </detail>
</jasperReport>