【Jasper Lab-0004】条件によって背景色や文字の色を変更する

 レポートを作成する際には、条件によって背景色や文字の色などを変更したい場合があります。そこで、ここでは条件によってジャスパーレポートの背景色や文字の色を変更する方法を調査及び研究し、その成果をまとめています。

オープンソースのERP iDempiereの日本商習慣対応ディストリビューション

偶数行の背景に色を付ける

偶数行の背景色をグレーにした例
偶数行の背景色をグレーにした例

 

スタイルの追加

 OutlineのStylesの上で右クリックし、表示されるメニューの中からCreate Styleを選択し、スタイルを追加します。

Create Style
Create Style

 

スタイル条件(Conditional Style)の追加

 追加したスタイルを右クリックし、スタイル条件(Conditional Style)を追加します。

Create Conditional Style
Create Conditional Style
条件付きスタイルのプロパティ
条件付きスタイルのプロパティ

スタイル条件(Conditional Style)のプロパティを編集します。

 

・BackColorに背景色にしたい色を設定します。

 

・Conditional Expressionに、このスタイルを適用させる条件を設定します。偶数行で背景色を変更する場合は、次のようなロジックを設定します。

($V{REPORT_COUNT} % 2) == 0

もしくは、

($V{REPORT_COUNT}.intValue % 2) == 0

 

スタイル(Conditional Style)を割り当てる

 作成したスタイル適用したいエレメントに割り当てます。ここでは、DetailバンドにFrameエレメントを配置して、Frameエレメントにスタイルを割り当てます。

スタイルの割り当て
スタイルの割り当て

 以上で設定は完了です。プレビューを実施して確認して下さい。

フィールドの値によって背景に色を付ける

 フィールドの値によって、背景に色をつけたい場合にも、"スタイル条件"を使用します。ここでは、例として、総合計が43,200円だったら背景色を変更するロジックを記載します。

$F{grandtotal}.intValue()==43200

総合計が43,200円のレコードの背景色をオレンジにした例
総合計が43,200円のレコードの背景色をオレンジにした例

【補足説明】スタイル条件の条件設定

 スタイル条件を使用する場合、その条件式はboolean(true or false)になるようにします。条件式の結果がtrueになる場合に、スタイル条件が適用されます。スタイル条件は1つのスタイルに複数割り当てる事もできます。

フィールドの値によって文字に色を付ける

 先の例を引き継いで、今度は総合計の金額が2,700円だった時に文字の色を赤にする場合を例に説明します。

総合計が2700円だった時に文字の色を赤にした例
総合計が2700円だった時に文字の色を赤にした例
スタイル条件の追加
スタイル条件の追加

 1つのスタイルにスタイル条件は複数設定する事ができますので、先の例で使用したスタイルにもうひとつ、スタイル条件を追加します。

スタイル条件のプロパティ
スタイル条件のプロパティ

 スタイル条件のプロパティで、"Forecolor"に文字の色を設定し、その文字の色を設定したい条件を"Conditional Expression"に入力します。

   以上でスタイルの設定は完了です。あとは、このスタイルを条件を適用したいエレメントに割り当てれば終了です。

総合計のフィールドにスタイルを割り当てた例
総合計のフィールドにスタイルを割り当てた例