見出し画像

【PDF帳票の作成/Jasper Reoport】学んだ知識の共有!!

■読んでほしい方

・Jasper Stuudioを使用して、PDF帳票の資材を作成している方
・PDF帳票に出力したい条件をどこで設定するかが分からない方
・Jasper Reportの情報が欲しい方
※Jasper Studio のインストールの仕方、PDF帳票の出力した際の日本語の設定、DBとの接続方法については、この記事では解説しません。

■この記事から得られること

・PDF帳票に出力したい条件の設定の仕方
・データの文字数によって、出力条件を分けるやり方
・各バンドに出力したい条件の設定の仕方
 ※今回は、「Detail」バンドを使用しています。

【本題:各バンドでの条件分岐の設定について】

■今回作成した帳票の資材の「Design」設定

「Detail」バンドでの条件分岐を説明したかったので、
「Detail」バンドを3つ(Detail1、Detail2、Detail3)作成して各バンドにデータの文字数による条件を設定して、どのバンドを出力させるかを分岐させています。

Design

■実際に条件をつけて実装させたもの

※どの「Detail」バンドを使用しているかが伝わりやすいように、データの文字数を表示させました。

データの文字数が「20」の時、「Detail1」バンドを使用。

1ページ目

データの文字数が「40」の時、「Detail2」バンドを使用。

2ページ目

データの文字数が「60」の時、「Detail3」バンドを使用。

3ページ目

■バンドでの条件式の設定方法

拡張子が「jrxml」の資材を「Jasper Studio」で開くと、左下に下記キャプチャのように「Outline」が表示されます。
今回は、「Detail」バンドに条件をつけてデータの文字数によって表示させる「Detail」バンドを変えるので「Detail」バンドを選択します。

※この青色で選択されている「Title」以降の部分が帳票のバンドの部分になります。各バンドには特徴があります。
その特徴については、参考URLの「帳票のバンドの領域について」を参考にしてください。

バンドの「Outline」

「Detail1」バンドを選択すると、右下の画面に下記キャプチャのような設定画面が表示されます。
「Print When Expression」という項目があります。
 ※入力項目を選択して青く表示されている部分です。
この項目に条件式を設定すると、バンドに条件式を設定することができます。この設定によって、PDF帳票に出力させたり、させなかったりを実現できます。

「Print When Expression」

■文字数によって条件分岐させる方法

各「Detail」バンドの「Print When Expression」項目に設定している条件は下記のとおりです。
Detail1:0 < $F{data1}.length() && $F{data1}.length() <= 20 ? true:false
 →data1の値の文字素が0文字より大きく、20文字以下の場合表示
Detail2:20 < $F{data1}.length() && $F{data1}.length() <= 40 ? true:false
 →data1の値の文字素が20文字より大きく、40文字以下の場合表示
Detail3:40 < $F{data1}.length() && $F{data1}.length() <= 60 ? true:false
 →data1の値の文字素が40文字より大きく、60文字以下の場合表示

上記のバンドの設定をすることで、与えたデータの文字数によってどのバンドを出力させるかを分岐させることができます。
この条件に当てはまらない、0文字や、80文字の場合は、PDF帳票に出力されません。

■参考URL

・帳票のバンドの領域について
<https://community.jaspersoft.com/wiki/repotoding-yi-ling-yu-noshuo-ming>
・変数について
<https://community.jaspersoft.com/wiki/bian-shu>
・三項演算子について
<https://www.javadrive.jp/start/ope/index13.html>

■まとめ

この記事は、「Jasper Studio」でPDF帳票を作成している方に向けて書きました。
たまたま業務で「Jasper Report」を使う機会があり情報共有と備忘録をしたく投稿いたしました。
「Jasper Report」あまり有名ではなさそうなイメージで、ネット上にも情報が少なく、基本英語のものばっかりで作成するのにとても苦戦しました。

初めて「Jasper Studio」を触ったときに、どこの設定をいじったら何ができるのかが全くわからなかったこと、どこまで実現できるのかもわからないところから始まったため、同じ境遇の方の力になれたらと思いました。
この記事が参考になれば嬉しいです。

#システムエンジニア
#se
#学んだ知識
#共有
#jasperstufio
#jasperreport
#pdf
#帳票
#IT

この記事が気に入ったらサポートをしてみませんか?