2013-02-25 130 views
3

我試圖根據值將條件樣式應用到我的iReport中。以下是部分代碼。它的工作原理,但只有前景色。只是想知道如何讓它在fontsize上也能工作。基於值在Jaspersoft iReport中應用條件式樣?

<?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="Eligibility Report" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" whenResourceMissingType="Empty" uuid="519852db-b571-4ddd-86c0-9e09e13fb7e9"> 
    <property name="ireport.zoom" value="1.5"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 

    <style name="HBA1C"> 
     <conditionalStyle> 
      <conditionExpression><![CDATA[$F{HBA1C}.equals("Yes")]]></conditionExpression> 
      <style forecolor="#000000"/> 
     </conditionalStyle> 
     <conditionalStyle> 
      <conditionExpression><![CDATA[$F{HBA1C}.equals("No")]]></conditionExpression> 
      <style forecolor="#FF0000" backcolor="#FF0000" fontSize="40"/> 
     </conditionalStyle> 
    </style> 

回答

2

背景的默認設置可能設置爲透明。您需要添加屬性mode="Opaque"。確保要使用此樣式的元素不會覆蓋此設置。

<style forecolor="#FF0000" backcolor="#FF0000" mode="Opaque" fontSize="40"/> 
+1

感謝您的答覆。添加模式=「不透明」對於獲得前景色和背景色非常重要。但仍然無法獲得字體大小的工作。有任何想法嗎? – Leo 2013-02-26 13:42:51

+0

如果字體大小不適用,它很可能也是在元素本身上設置的。如果您使用Jaspersoft Studio繼承視圖,您可以看到哪個級別(樣式引用,樣式,元素)設置了某個屬性。檢查應該具有字體大小的元素,在屬性面板中,您可以右鍵單擊字體大小以重置默認值。 – MrsTang 2013-02-28 10:11:14

-1

如果僅僅是兩種風格,你可以創建不同風格的兩個字段,並使用「打印時,表達」

+1

這不是一個好的建議。它添加了不必要的複雜降低報告的可維護性,只要您必須維護多個條件,就會使其變得複雜。如果你想實現依賴於上下文的格式,有條件的樣式是要走的路。 – MrsTang 2013-02-28 10:14:02