2016-08-04 81 views
0

我有一個碧玉報告,有一個高度爲1500px的細節帶。我的頁面高度是842px。這個樂隊裏面有一個高度爲940px的框架。 這裏是我的JRXML-文件:如何分割大幀

<?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。 我的第三個問題:爲什麼我在將分割類型更改爲「立即」後出現此錯誤。

我的第三個問題是:如何將幀分割爲772像素(在StaticText之後)和168像素在下一頁的頂部?我想要一個接一個地顯示多個Frame(高度不同,其中一些很長)。

+0

細節帶的高度大於報告的頁面高度:1500>(842 - 40),其中40是兩個邊距的總和 –

+0

'幾分鐘後我得到OutOfMemoryError.' - 這是JSS –

+0

的一個錯誤'怎麼可以我把我的框架分成772px(在StaticText之後)和168px在下一頁的頂部?' - 您可以使用pagenbreak和幾個細節樂隊 –

回答

2

您必須更改模板尺寸您HEIGH 頁大小 - >頁面HEIGH

試試這個代碼:

<?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> 

如果拆分頁面u可以使用:

<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> 
+0

什麼是「模板大小」? –

+0

由於您的細節帶高度爲1500px和pageHeight 842px,但頁面高度必須大於帶高度。在ireport中,此設置位於模板屬性中。 –

+0

@ user3782729:這不完全是我想要的。我的頁面的高度必須是842. 我想顯示多個塊例如在高度爲842的頁面上,幀(具有不同的高度;其中一些很長)一個接一個。 –