Jump to content
We've recently updated our Privacy Statement, available here ×
  • フィールド


    hozawa
    • Product: Jaspersoft® Studio
    tutorial.png.2efabeb8f6c6ec8ca102f676612897fc.png home.png.d29dbd8dcca24a57431d96a239d0c7a8.png

    作成:小沢仁 株式会社レジェンド・アプリケーションズ

    このチュートリアルで習うこと

    • JasperReportsフィールドとは何か
    • SQLクエリーからフィールドの定義
    • Java Beansからフィールの定義
    • フィールドとテキストフィールド

    JasperReportsのレポートでは3つのオブジェクトに値を設定することができます:

    • フィールド
    • パラメータ
    • 変数

    Jaspersoft Studioではこれらのオブジェクトをデータソースクエリーで使われます。レポートでこれらのオブジェクトを使う場合は先ずStringDoubleのようなJavaクラスとして宣伝する必要があります。宣伝されたフィールドは、レポートで使うことができます。

    JasperReportsフィールドとは何

    レポートはデータソースからの値を表示します。例えばSQLクエリー文でデータベースから値を取得してレポートにその値を表示します。 Jaspersoft Studioでは、レポートレイアウトに配置できるフィールド一覧をアウトラインビューのフィールドに表示しています。新規にフィールドを追加する場合は次の手順を行います:
    1. アウトライン・ビューのフィールドを右クリックしてフィールドの作成を選択する。
      デフォルト設定のフィールドが作成されます。
    2. プロパティ・ビューからフィールド名や型など、設定を変更します。
      6-1-a.png.69216108e209c57adc0120c4e6226def.png
    3. フィールドにプロパティを設定する場合は、「詳細」タブを選択して、項目「プロパティ」の「...」ボタンを押下します。
      6-1-b.png.56e5af64c08bf2cfeef876a5269dc439.png

    注1:Jaspersoft Studioは、フィールドに設定されたプロパティを使いません。しかし、外部プログラム及びカスタムの追加機能で使うことはできます。

    フィールド値はデータソースから取得されます。例えば、SQLクエリー文を実行した決壊をレポートに表示する場合は、フィールド名及びデータ型をSQLクエリーの実行結果のフィールド名及びデータ型を一致させます。レポートによって多くのフィールド(100項目以上)を表示することもあるので、Jaspersoft Studioではデータソースからフィールド宣言を作成するツールが用意されています。

    レポートレイアウトでフィールドを使う場合は次のようにフィールドを指定します:
    $F{<フィールド名>} <フィールド名>を使うフィールド名に置き換えてください。

    注2:レポートの言語がJavaの場合(デフォルト)、フィールド値がnullの場合、式の評価中にエラーにならないようにするには、以下のように条件で確認します:
    ($F{myField} != null) ? $F{myField}.doSomething() : null
    注3:レポートの言語がGroovy又はJavaScriptの場合は、null演算エラーの場合は空文字列を返す仕様になっていますのでJavaのようにnullチェックを行う必要はありません。

    フィールドにStringやIntegerの他に構造を持つオブジェクトを設定することもできます。例えばJavaBeanをフィールドに設定することができます。このような場合、レポートに値を表示するにはStringに変換する必要があります。すべての内容を表示する場合は次のように空文字列と結合してオブジェクトを文字列に変換すると便利です。ただし、この場合は値がnullだと文字列「null」が返されます。
    $F{myField} + ""

    SQLクエリーからフィールドの定義

    多くの場合はSQLクエリー文の実行結果をレポートに表示します。Jaspersoft StudioにはSQL文を書くのを支援するクエリーエディタとSQL文の実行結果からJaspersoft用フィールド宣言を行うツールが含まれています。

    クエリーエディタはデータソースを利用します。正しいデータソースを使うようにしてください。

    クエリーエディタを起動するには、アウトライン・ビューからレポート名を右クリックして、「データセットとクエリー...」を選択します。
    6-2-a.png.437ab8dd0656e2462ad21bb3450d2452.png

    Jaspersoft Studioはクエリーが定義されていない場合でも、データソースからデータを取得することができます。JasperReportsは以下のクエリー言語をサポートしています:

    • CQL
    • HiveQL
    • JSON
    • MongoDBQuery
    • PL/SQL
    • SQL
    • XLS
    • XPath
    データソースがJDBCを使っている場合は、「フィールドを取得」ボタンを押下すると、Jaspersoft Studioはクエリーを実行して実行結果(resultset)からフィールド名を取得して、フィールド名とそのデータ型をウィンドウの下部分に表示します。
    注4:SQL文が複雑の場合は、フィールド名の取得に時間が掛かる場合があります。
    注5:フィールド名は一意である必要があります。SQL文の実行結果で列名が同名になった場合は、「AS」句を使って実行結果の列名を変えてください。
    注6:SQL文を実行できない場合は、エラーメッセージが表示されます。

    フィールドが多いと、レポートを作成するのに時間が掛かる場合があります。レポートに不要なフィールドを取得しないようにSQL文を書き換えるか、フィールド一覧から削除してください。保守を向上させるためには、SQL文を書き換えてフィールドを取得しないようにすることを推奨します。

    「OK」ボタンを押下すると、フィールド一覧のフィールドがレポートレイアウト定義に含まれます。フィールド一覧からフィールドを削除して「OK」ボタンを押下すると、レポートレイアウト定義からも削除されます。

    レポートレイアウト定義のフィールド名はアウトライン・ビューからも追加/変更/削除することができますが、フィールドを取得しないようにSQL文を書くことを推奨します。

    Java Beansからフィールの定義

    JasperReportsはJava BeanのようなSQL文以外からのデータソースを扱うことができます。JasperReportsでJava Beansを使う場合は、レコードをJavaコレクションにします。すべてのレコードは同じJavaクラスである必要があります。

    クエリーデザイナーから「Java Bean」タブを選択して、Javaクラスのレポートで使うフィールドを登録します。
    6-3-a.png.9868c25033755050b6b05fcc985bb86c.png

    例えば、次のようなJavaクラスをレポートで使うとします:
    com.legendapl.lakeel.examples.beans.PersonBean
    次の手順でこのクラスからフィールドを登録します:

    1. 「名前」にJavaクラス名を入力して、「属性の読込み」ボタンを押下します。Jaspersoft Studioはクラスの情報を読込みます。
    2. Jaspersoft Studioが正しい情報を読み込んだか確認します。
    3. レポートで使う属性を選択して「追加」ボタンを押下します。
    4. Jaspersoft Studioは属性からフィールド定義を作成します。
    5. 任意ですが、「説明」に呼び出すメソッド名を記入することを推奨します。
    Jaspersoft Studioはaddress.stateのような属性を解析した結果をgetAddress()のようなメソッドに引き渡し、取得したAddressインスタンスのgetState()メソッドを呼びます。
    本章では、SQL文とJava Beansからフィールド宣言を取得する説明をしましたが、この他にもHQLやXMLからフィールドを取得することもできます。

     

    フィールドとテキストフィール

    フィールドの値をレポートに表示する場合は、テキスト要素のにフィールド名を指定します。値と異なる形式で表示する場合は表示形式を設定します。例えば日付や通貨の値を表示する場合は表示形式で表示する形式を指定します。

    パレットビューからテキストフィールドをレポートレイアウトに配置して、表示するフィールドを設定することもできますが、アウトラインビューのフィールド一覧から表示したいフィールドをレポートレイアウトの配置することもできます。この場合は、Jaspersoft Studioは配置されたフィールが設定されたテキストフィールドを作成します。

     

    6-1-a.png.c592717d372299461023927146bbd897.png

    6-1-b.png.fa1f565624e40d1a4f359009a132dbb2.png

    6-2-a.png.73e2219fd68731b77cc43134ea83b029.png

    6-3-a.png.946930cfb9c5db95f4452f90a4a90622.png


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...