2013-07-10 61 views
0

感謝大家,感謝Alex K,我明白了原因。這可能是 ireport 3.0的bug。 外部樣式標記不應包含顏色屬性。 我刪除它,它運作良好。有條件風格的麻煩

============================================== ================================== 我在報告中遇到了有關條件式表達式的疑問,其中包括JasperReportsiReport的版本爲3.0

我剛發現布爾表達式根本不起作用。


條件樣式:

<style 
    name="old" 
    mode="Opaque" 
    **forecolor="#990033"** 
> 

    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression> 
     <style 
      name="old" 
      isDefault="false" 
      mode="Opaque" 
      forecolor="#990033" 
     > 
     </style> 
    </conditionalStyle> 
</style> 

的文本框表達式:

<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" > 
       <reportElement 
        style="old" 
        x="315" 
        y="0" 
        width="78" 
        height="14" 
        key="textField-3"/> 
       <box></box> 
       <textElement> 
        <font/> 
       </textElement> 
      <textFieldExpression class="java.lang.Integer"><![CDATA[$F{age}]]></textFieldExpression> 
      </textField> 

的結果是所有年齡層會變成紅色,甚至不到60歲;

+2

在我看來,你的樣式聲明是錯誤的。樣品:'<樣式名稱= 「rowStyle」 模式= 「不透明」> \t \t \t \t \t conditionExpression> \t \t \t <風格背景色= 「#CCFFFF」/> \t \t \t' –

+0

我之前更新的源代碼。以另一種方式更改布爾表達式,並通過有關條件樣式的完整代碼。 –

+0

感謝Alex K的好主意,最好發佈您的解決方案作爲答案 –

回答

0

感謝大家,感謝Alex K,我明白了原因。這可能是ireport 3.0的bug。外部樣式標籤不應包含顏色屬性。我刪除它,它運作良好。 那就是: XML代碼生成通過利用iReport是

<style 
    name="old" 
    mode="Opaque" 
    forecolor="#990033" 
> 

    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression> 
     <style 
      name="old" 
      isDefault="false" 
      mode="Opaque" 
      forecolor="#990033" 
     > 
     </style> 
    </conditionalStyle> 
</style> 

這樣的風格已經是有效的。我刪除屬性外風格標籤設置。 使作品以及最終的XML代碼如下圖所示:

<style 
    name="old" 
    mode="Opaque" 
> 

    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression> 
     <style 
      name="old" 
      isDefault="false" 
      mode="Opaque" 
      forecolor="#990033" 
     > 
     </style> 
    </conditionalStyle> 
</style> 
+0

。 –