Jump to content
We've recently updated our Privacy Statement, available here ×
  • クエリービルダ


    hozawa
    tutorial.png.30102922fb6d8de845ae92eab0ac0450.png home.png.d480684c4284c11728b6cc6f58ac1fd9.png

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

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

    • データセットとクエリーダイアログ
    • クエリービルダの使い方

    クエリーをより簡単に定義できるようにJaspersoft Studioにはクエリーを作成するツールが含まれています。ツールはデータセットをクエリーダイアログから使えます。

    SQL文もドラッグ&ドロップで作成できます。SQLにそんなに詳しくないユーザでも複雑なSQL文を作成できるようになります。

    データセットとクエリーダイアログ

    データセットトクエリーアイコンを押下するとデータセットとクエリーダイアログが表示されます。
    14-1.png.eb6046df0b58a3f32053716c65936bb2.png

    データセットとクエリーダイアログから次のことが行えます:

    • データセットで使うデータアダプタの選択。データアダプタは選択されていますが、変更することができます。
    • 編集中のデータセット(メインデータセット及びサブデータセット)のクエリー言語を指定することができます。
    • クエリーの定義。直接入力することも、言語(例:SQL, XPath, JSON)によってはツールを使って定義することができます。
    • データアダプタからフィールドを取得。データアダプタから直接または、クエリー文を実行して
    • フィールド及びパラメータの追加、編集、削除
    • ソートの設定
    • データセットレコードのフィルタの設定
    • データのプレビュー(データアダプタが対応している場合)
      14-2.png.43d7d52491a67f977c7af222b53bdddf.png

     

    JasperReportsでは、レポートで使うすべてのフィールドの名前とデータ型の定義が必須です。ただし、レポートで使うすべてのフィールドを一つずつ定義するのには時間が掛かります。多くの情報を利用するレポートでは特に膨大な作業になります。Jaspersoft Studioにはデータセットの情報からフィールド定義とデータ型定義を支援するツールが用意されています。

    データセットとクエリーダイアログにクエリー文を入力して「フィールドの読込み」ボタンを押下すると、クエリー結果からフィールド名とデータ型の一覧を作成します。一覧からレポートで使うフィールドを選択することができます。
    XPath、MDX、JSONのように複雑な構造の結果を返すクエリー言語を使われる場合は、クエリー結果とレポートフィールドをマッピング(関連付ける)作業が必要になります。マッピングが必要な場合、クエリー言語によってマッピングの方法が異なります。例えば、MDX(XML/Aを使ったOLAP用のクエリー言語)の場合は、フィールド毎にマッピング情報の定義を行います。XPathやJSONの場合は、GUIツールを使ってマッピングを行えます。

    クエリービルダの使い方

    SQLクエリー用のクエリービルダはSQLビルダです。JDBCデータアダプタを使います。

    ビルダのページは左と右に分かれています。左側にはデータアダプタが見つけたすべてのテーブル、ビューなどをツリー構造で表示されます。右側はクエリーを定義するために使います。Jaspersoft Studioではクエリーの定義を3つの方法で行えます。それらの各方法は右側領域のにある「テキスト」、「アウトライン」、「図」タブを選択することで切り替えられます。内容は連動していますので、タブを切り替えると表示方法は変わりますけど、内容は同じです。

    「テキスト」タブからは、SQL文を直接記述できます。左側に表示されているツリーからテーブルや列をSQL文の記述中にドラッグ&ドロップすることができます。SQLビルダを使って簡単なSQL文やストアドプロシージャの呼び出しを書くことはできますが、データベース固有なSQL文や複雑なSQL文には未対応です。
    もしレポートにSQL文が既に定義されている場合は、クエリーエディタを開くとそのSQL文を表示します。

    「アウトライン」タブと「図」タブはクエリー文を視覚的に表します。

    クエリーアウトライン・ビューとダイアグラム・ビュー

    SQL文はデータベースのテーブルから指定された条件に一致したデータを選択します。JOIN文を使って複数のテーブルのデータを取得することもできます。
    14-4.png.cfacf55adc00e5f56a181fba3ce4f71f.png

    「アウトライン」ビューは、SQLの基本を知っている人に向いています。「図」ビューはSQLにそんなに詳しくないユーザでも使えるように設計されています。
    アウトライン・ビューは次のように、SQLのキーワードで分けています。

    • SELECTには取得するすべてのフィール名の一覧が表示されます
    • FROMには、クエリーで使うすべてのテーブル名の一覧が表示されます
    • WHEREには、取得するデータの条件一覧が表示されます。複数の条件がある場合はORANDを使います。条件の評価順位を設定する場合は、括弧「()」を使います
    • GROUP BYには、集計を行い列名の一覧が表示されます。例えば、次ぎのクエリーは国毎の注文数を返します
    • HAVINGには、GROUP BYの条件一覧が表示されます。例えば、次ぎのクエリーは40より多い注文があった国のみを取得します
    • ORDER BYには、結果のソートを行う列名一覧が表示されます

     

    図ビューは取得するテーブル名とその列名を図で表示します。テーブル間の関係は線で表示されます。
    14-5.png.7be82dde84bdcfa1a059a81789c8ae8f.png

    列の選択

    左側に表示された列名をアウトライン・ビューのSELECTにドラッグ&ドロップすることができます。SELECTに含まれた列は、ORDER BYにドラッグ&ドロップ操作で設定することができます。
    SELECTに追加された列名のテーブルはFROMに追加されます。

    列名は図ビューからも選択できます。選択されている列名はチェックされます。列名をチェックするとSELECT文にその列が追加されます。

    アウトライン・ビューから列を右クリックして「列の追加」を選択すいて列を追加することもできます。FROMに選択されているテーブルのすべての列名が表示されます。一つ又はShiftキーを押下しながら複数の列を選択することができます。選択した後に「OK」ボタンを押下するとSELECTに選択した列名が追加されます。
    COUNT関数を入力する場合は、SELECTを右クリックして、「定義の入力」を選択します。ダイアログが表示されるので、列名と関数などを入力して「OK」ボタンを押下します。
    列に別名を設定する場合は、列名をダブルクリックします。次のようなダイアログボックスが表示されるので、別名を入力して「OK」ボタンを押下します。
    別名は複数のテーブルからデータを取得する場合に、別のテーブルで同じ列名が使われている場合に設定します。クエリー結果の列名からレポートで使うフィールド名が生成されます。列名が同じな場合は1つのフィールドしか生成されません。 14-6.png.5297158925406692b0712ef56dea1924.png

    テーブルのJOIN

    FROM句に追加されたテーブル又は図ビューで表示されているテーブルをJOINすることができます。図ビューから列名を選択して、別のテーブルの列までドラッグします。JOINをダブルクリックするとINNER JOINなどJOINの種類を変更することができます。
    14-7.png.5fbbddd15d972faa62d1004f9cdc8ac0.png
    アウトライン・ビューからJOINを設定する場合は、FROM句のテーブル名を右クリックして、「JOINテーブル」を選択します。表示されるダイアログボックスからJOINの設定を行います。 14-8.png.4abbb12dc22578763ff554606ea81e41.png

    データ選定条件(WHERE句)

    クエリーが取得する結果に条件を付ける場合は、WHERE句を使います。アウトライン・ビューのWHEREを右クリックして「Add Expression」を選択します。ダイアログボックスが表示されますので、条件を入力して「OK」ボタンを押下します。
    条件に使う列名をWHEREにドラッグしてダイアログボックスを表示させることもできます。この場合は、右クリックした列名が入力されています。
    14-9.png.1b90492ac6eb8b9e6c3f9756a77cb713.png

    多くの場合はORとANDを使って条件グループを作ります。OR及びANDをダブルクリックすると相互に変わります。また、グループを入れ子にして再帰的に条件を定義することもできます。

    条件で動的に変わる場合はパラメータを使うことができます。P${}及びP!{}を使うことができますが、P!{}は内容を自動的にエスケープしないので、出来るだけP${}を使うことを推奨します。

    コレクション型のパラメータを使う場合は、$X{}を使うことができます。詳細に付いてはパラメータの章を参照してください。

    フィールドの取得

    クエリーを定義した後に列をレポートで使うフィールドにマッピングします。SQLクエリーの場合は、「フィールドの読込み」ボタンを押下すると、SQL文を実行した結果のメタデータからフィール名一覧が生成されます。フィールドのデータ型も対応しているデータベース・テーブル列のデータ型に設定されます。

     

     

    14-1.png.eba9f47c6071f67c1b9aa5cc34157751.png

    14-2.png.31f2c6bc483f226b9df95a990d77aa5e.png

    14-4.png.4eb08406202e35beabdab9058444575a.png

    14-5.png.1abbfd15af99108a14350a1dc580ae89.png

    14-6.png.606a08c41929b803c6e93c073628af4c.png

    14-7.png.0fc20c2ab0138e38e03b5c80f36303f3.png

    14-8.png.ebdc9da0889cd8f3d98380bfaebcd512.png

    14-9.png.903ddf6ff7584000b903b556ceaebf08.png


    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...