2012-10-16 91 views
0

我知道Crystal Reports提供了將頁腳分割成可根據某些條件打印的部分(部分a,部分b,...)的可能性。如果條件1true則打印部分a,否則打印部分b等等。頁腳分裂成更多部分

我必須使用iReport類似的東西,我不知道如何。我無法找到製作更多部分的選項。任何人都可以幫助我嗎?

+1

您可以將盡可能多的* textField *,* frame *和其他元素添加到該樂隊中。您可以使用* textFieldExpression *和* printWhenExpression *表達式來確定要顯示的內容。 –

回答

2

擴大和建議的擴展,亞歷克斯的評論,你可以佈置你心目中的頁腳frame內部的各個部分。然後爲每個幀設置printWhenExpression而不是一堆元素。

例如:

<?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="report3" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0" uuid="35abc101-1375-42c5-9f5f-2eb3542ca382"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <parameter name="footerPrint" class="java.lang.String"> 
     <defaultValueExpression><![CDATA["1"]]></defaultValueExpression> 
    </parameter> 
    <pageFooter> 
     <band height="51"> 
      <frame> 
       <reportElement uuid="c8bef919-0e83-4d72-9b25-1a7e0aa6b82b" x="0" y="0" width="555" height="20"> 
        <printWhenExpression><![CDATA[$P{footerPrint}.equals("1")]]></printWhenExpression> 
       </reportElement> 
       <staticText> 
        <reportElement uuid="4ad1f177-9e43-4d9f-8f05-012090c33193" x="0" y="0" width="100" height="20"/> 
        <textElement/> 
        <text><![CDATA[Footer Print: 1]]></text> 
       </staticText> 
      </frame> 
      <frame> 
       <reportElement uuid="c8bef919-0e83-4d72-9b25-1a7e0aa6b82b" x="0" y="0" width="555" height="20"> 
        <printWhenExpression><![CDATA[$P{footerPrint}.equals("2")]]></printWhenExpression> 
       </reportElement> 
       <staticText> 
        <reportElement uuid="4ad1f177-9e43-4d9f-8f05-012090c33193" x="0" y="0" width="100" height="20"/> 
        <textElement/> 
        <text><![CDATA[Footer Print: 2]]></text> 
       </staticText> 
      </frame> 
     </band> 
    </pageFooter> 
</jasperReport> 

幀被設置爲相同的尺寸和其餘設定爲完全相同的x/y座標。所以基本上它們是重疊的,但是如果你正確地做了這些表達式,那麼無論如何只有一個會被顯示。

。當然,另一種選擇是設置每個元素的表達,我只是覺得這種方式更容易。