2010-03-29 65 views
11

Tôi mới sử dụng JasperReports. Tôi đang thiết kế báo cáo bằng iReport. Yêu cầu của tôi là tôi có hai giá trị (Trường) x, y để so sánh. Nếu x < y thì màu dữ liệu cho y sẽ được đổi thành 'đen' & nếu lớn hơn thì dữ liệu màu của y phải được đổi thành 'đỏ'.Định dạng màu dữ liệu trường dựa trên điều kiện

Vui lòng tư vấn cho tôi cách thực hiện trên & nơi xác thực.

Trả lời

7

Có một discussion tại các diễn đàn JasperForge về chủ đề này, đây có lẽ là một phần phù hợp nhất:

kéo đầu tiên và thả các lĩnh vực mà bạn muốn có màu dyanamic hai lần. Thay đổi màu nền cho trường đầu tiên thành Vàng và trường thứ hai thành Đỏ. Bây giờ nhấp chuột phải vào trường Vàng, nhấp vào Thuộc tính, chọn tab Chung và viết mã này trong hộp 'In khi biểu thức': (đảm bảo thay thế myconditionalfield bằng tên trường thực của bạn) $ F {MyConditinalField} .intValue()> = 5 & & $ F {MyConditinalField} .intValue() < 10. Boolean.TRUE: Boolean.FALSE // if> = 5 và < 10 rồi hiển thị trường vàng // Mã cho trường màu đỏ ở cùng một vị trí giống như trên $ F {MyConditinalField } .intValue()> = 10 Boolean.TRUE: Boolean.FALSE Hy vọng điều này sẽ giúp.

Không phải là chính xác những gì bạn cần, nhưng có thể đủ gần để đẩy bạn đi đúng hướng.

+1

Cảm ơn Tomislav, lời giải thích của bạn đã giúp tôi rất nhiều để đạt được yêu cầu của tôi. Trân trọng, chandu – Chandu

8

Tôi biết đây là một câu hỏi cũ, nhưng trong tôi giả định Jasper báo cáo đã thay đổi. Bây giờ bạn có thể thực hiện điều này với Kiểu có điều kiện.

Trong iReport bạn tạo Kiểu mới và đặt tên cho nó. Bạn có thể đặt bất kỳ cài đặt mặc định nào, chẳng hạn như phông chữ, màu, kích thước văn bản, v.v. trong kiểu. Sau đó, bạn nhấp chuột phải vào Stlye và chọn Add Conditional Style. Sau đó, trên trường hoặc các trường bạn muốn áp dụng nó cho bạn, hãy đặt kiểu cho trường bạn tạo.

Vì vậy, trong ví dụ của bạn tôi sẽ thiết lập các ForeColor trong stlye chính để có màu đen, thiết lập các biểu thức Điều kiện trong Phong cách có điều kiện để được

$F{y} > $F{x} 

và ForeColor trong stlye có điều kiện sang màu đỏ. Sau đó, trong phần chi tiết nơi bạn đã đặt trường y, đặt kiểu cho trường mà chúng ta đã tạo.

5

Ví dụ để tô màu thậm chí hàng và hàng lẻ là dưới đây, hy vọng rằng giúp

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

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

Và gán phong cách cho mỗi cột, làm việc với tôi :)

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