2012-01-06 35 views
12

Tôi mới sử dụng JasperReports. Tôi đang thiết kế một báo cáo bằng cách sử dụng iReport. Tôi có ba giá trị x, y, z. Nếu z < y thì màu dữ liệu cho z phải được đổi thành 'đen' & nếu z> x thì màu dữ liệu của z phải được đổi thành 'đỏ'. Vui lòng cho tôi biết cách thực hiện.Thay đổi màu dữ liệu trường văn bản (Màu nền trước) dựa trên điều kiện trong JasperReports

Tôi đang sử dụng JDeveloper để phát triển ứng dụng dành cho máy tính để bàn. và iReport để thiết kế JasperReport.

Trả lời

13

Bạn có thể sử dụng Conditional styles để giải quyết vấn đề này.

Mẫu:

<style name="ZFieldStyle"> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{Z} < $F{Y}]]></conditionExpression> 
     <style forecolor="#000000"/> 
    </conditionalStyle> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{Z}>$F{X}]]></conditionExpression> 
     <style forecolor="#FF0000"/> 
    </conditionalStyle> 
</style> 
... 
<field name="X" class="java.lang.Integer"/> 
<field name="Y" class="java.lang.Integer"/> 
<field name="Z" class="java.lang.Integer"/> 
... 
<textField> 
    <reportElement style="ZFieldStyle" x="200" y="0" width="100" height="20"/> 
    <textElement/> 
    <textFieldExpression><![CDATA[$F{Z}]]></textFieldExpression> 
</textField> 
+0

Một vài câu hỏi bổ sung. Sao tôi không thể làm như vậy với backcolor? Ngoài ra, khi tôi làm điều này, màu viền của ô cũng thay đổi ... có cách nào để ngăn chặn điều này không? –

+1

Bạn có thể sử dụng thuộc tính backcolor theo kiểu –

Các vấn đề liên quan