Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース1(11.1.1) B61376-01 |
|
![]() 戻る |
![]() 次へ |
この項の手順では、レポートを定義する問合せと式列を作成し、作成したbonus.pll外部PL/SQLライブラリのコードをコールする方法について説明します。
ファンクションに依存する式列などもあるため、説明されている順序に従ってオブジェクトを作成することをお薦めします。
この項の手順では、レポートに必要なデータを取得する問合せを作成する方法について説明します。
問合せを作成するには:
オブジェクト・ナビゲータで、「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、データ・モデル・ビューを表示します。
データ・モデル・ビューで、「挿入」→「問合せ」を選択してデータ・ウィザードを表示します。
「ようこそ」ページが表示されたら、「次へ」をクリックします。
「問合せ」ページで、問合せ名はデフォルトのままにして、「次へ」をクリックします。
「データ・ソース」ページで、「SQL問合せ」を選択し、「次へ」をクリックします。
「データ」ページの「データ・ソース定義」フィールドに次のSELECT
文を入力します。
SELECT FIRST_NAME, LAST_NAME, JOB_ID, SALARY,COMMISSION_PCT FROM EMPLOYEES ORDER BY LAST_NAME
注意: この問合せは、次のいずれかの方法で入力できます。
|
「次へ」をクリックします。
注意: データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第40.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。 |
「グループ」ページで「次へ」をクリックします。
「終了」をクリックして、データ・モデル・ビューに最初の問合せを表示します。表示は次のようになります。
レポートを保存します。
この項の手順では、PL/SQLファンクションを使用して、各従業員のボーナスを計算する式列を作成する方法について説明します。
BONUS式列を作成するには:
データ・モデル・ビューで、グループ「G_FIRST_NAME」をクリックします。次に、グループに列を追加できるように、下部にあるサイズ変更ハンドルをクリックして下方向にドラッグします。次の例のようになります。
ツール・パレットの「式列」ツールをクリックし、「G_FIRST_NAME」グループ内でクリックして式列を作成します。
新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「一般情報」で、「名前」プロパティを「BONUS」に設定します。
「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function BONUSFormula return Number is begin return BONUS_PAY(:JOB_ID, :SALARY, :COMMISSION_PCT); end;
注意: 提供されているテキスト・ファイルplsql_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。このコードはBonus式列用です。 |
「コンパイル」をクリックします。
注意: コンパイル・エラーが発生した場合は、入力したコードと提供されているコードを比較してください。 |
コンパイル・エラーがない場合は、「閉じる」をクリックして、データ・モデル・ビューにレポートのデータ・モデルを表示します。表示は次のようになります。
レポートを保存します。
この項の手順では、営業担当者の報酬合計(列SALARYの値にCOMMとBONUSを加算)と残りの従業員の報酬合計(SALARYにBONUSを加算)を返すファンクションを記述する方法について説明します。
オブジェクト・ナビゲータで、「プログラム・ユニット」ノードをクリックし、「編集」→「作成」を選択します。
新規プログラム・ユニットダイアログ・ボックスで、「名前」フィールドにFINAL_CALC
と入力します。
「ファンクション」を選択し、「OK」をクリックします。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
FUNCTION FINAL_CALC RETURN NUMBER IS BEGIN IF :JOB_ID = 'SA_REP' THEN RETURN (:BONUS + :SALARY + :COMMISSION_PCT * :SALARY); ELSE RETURN (:BONUS + :SALARY); END IF; END;
注意: 提供されているテキスト・ファイルplsql_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。このコードはFinal Calc用です。 |
「コンパイル」をクリックします。
エラーが発生せずにコードがコンパイルされたら、「閉じる」をクリックします。
新しいファンクションFINAL_CALCは、オブジェクト・ナビゲータで次のように表示されます。
レポートを保存します。
この項の手順では、報酬合計を計算する別の式列を作成する方法について説明します。レポートレベルのファンクションFINAL_CALCによって計算される値が、列TOTAL_COMPに割り当てられます。式列の作成方法について不明な点がある場合は、第40.3.2項「ボーナスを計算する式列の作成」を参照してください。
TOTAL_COMP式列を作成するには:
データ・モデル・ビューで、前述の手順に従って、BONUS式列の下に第2の式列を作成します。
新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「一般情報」で、「名前」プロパティを「TOTAL_COMP」に設定します。
「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function TOTAL_COMPFormula return Number is begin return FINAL_CALC; end;
注意: 提供されているテキスト・ファイルplsql_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。このコードはTotal Comp式列用です。 |
「コンパイル」をクリックします。
エラーが発生せずにコードがコンパイルされたら、「閉じる」をクリックして、データ・モデル・ビューにレポートのデータ・モデルを表示します。表示は次のようになります。
レポートを保存します。