2010-03-29 54 views
11

我是JasperReports的新手。我正在使用iReport設計報告。我的要求是我有兩個值(字段)x,y來比較。如果x < y那麼y的數據顏色應該更改爲'黑色'&如果更大,那麼y的數據顏色應該更改爲'紅色'。基於條件格式化字段數據顏色

請告訴我如何在此&進行驗證。

回答

7

有一個discussion在這一專題JasperForge論壇,這可能是最相關的部分:

首先拖放,你想擁有dyanamic顏色兩次領域。將第一個字段的背景顏色更改爲黃色,將第二個字段更改爲紅色。現在右鍵單擊黃色字段,單擊屬性,選擇常用選項卡,並在'打印時的表達式'框中寫入此代碼:(確保用您的實際字段名稱替換myconditionalfield)$ F {MyConditinalField} .intValue()> = 5 & & $ F {MyConditinalField} .intValue()< 10?Boolean.TRUE:Boolean.FALSE // if> = 5 and < 10然後在上面顯示黃色字段// Red字段代碼在同一位置$ F {MyConditinalField } .intValue()> = 10?Boolean.TRUE:Boolean.FALSE希望這有助於。

這不正是需要什麼,但可能會足夠接近推你在正確的方向。

+1

由於托米斯拉夫,你的解釋對我幫助很大達到我的要求。 Regards, chandu – Chandu 2010-04-14 09:15:19

8

我知道這是一個古老的問題,但我認爲賈斯珀報告已經改變。您現在可以使用條件樣式來完成此操作。

在iReport中,您將創建一個新樣式併爲其命名。您可以在樣式中放置任何默認設置,例如字體,顏色,文字大小等。然後右鍵單擊Stlye並選擇添加條件樣式。然後,在要應用它的字段或字段中,將樣式設置爲您創建的樣式。

因此,在你的例子,我將設置前景色主stlye是黑色的,在條件樣式的設置條件表達式是

$F{y} > $F{x} 

和紅色前景色在有條件的Stlye。然後在放置y字段的細節部分將樣式設置爲我們創建的樣式。

5

實例來着色偶數行奇數行是低於,希望幫助

<style name="BackgroundStyle" mode="Opaque" backcolor="#FFFFFF"> 

    <conditionalStyle> 
     <conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression> 
     <style backcolor="#CCFFCC"/> 
    </conditionalStyle> 
</style> 

,並指定風格每一列,跟我:)工作