Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース1(11.1.1) B61376-01 |
|
戻る |
次へ |
レポートにデータ・モデルとレイアウトを作成したら、表示する顧客数を制御するロジックを追加できます。まず、ユーザーが実行時に値を入力できるパラメータを2つ作成します。次に、そのパラメータを使用して表示するデータを制御するグループ・フィルタを作成します。
パラメータを作成してグループ・フィルタを追加するには:
オブジェクト・ナビゲータの「データ・モデル」ノードで、「ユーザー・パラメータ」ノードをクリックします。
「編集」→「作成」を選択して、「ユーザー・パラメータ」ノードの下に新しいユーザー・パラメータを作成します。
プロパティ・インスペクタが表示されていない場合は、新しいユーザー・パラメータ(P_1)を右クリックして「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを表示してプロパティを設定します。
「一般情報」で、「名前」プロパティを「CUTOFF_CNT」に設定します。
「パラメータ」で、「データ型」プロパティを「Number」、「幅」プロパティを「1」、「初期値」プロパティを「3」に設定します。
前述の手順を繰り返して、別のユーザー・パラメータを作成します。プロパティは、次のように設定します。
「一般情報」で、「名前」プロパティを「INCR_CNT」に設定します。
「パラメータ」で、「データ型」プロパティを「Number」、「幅」プロパティを「3」、「初期値」プロパティを「0」に設定します。
オブジェクト・ナビゲータの「データ・モデル」ノードで、「グループ」ノードを開き、「G_CNAME」グループの横のプロパティ・アイコンをダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「グループ」で、「フィルタ・タイプ」プロパティを「PL/SQL」に設定し、「PL/SQLフィルタ」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function G_CNAMEGroupFilter return boolean is begin :incr_cnt:=:incr_cnt+1; if :incr_cnt <= :cutoff_cnt then return (TRUE); else return(FALSE); end if; end;
注意: 提供されているテキスト・ファイルrank_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。このコードはグループ・フィルタ用です。 |
「コンパイル」をクリックします。
「閉じる」をクリックします。
このフィルタによって、G_CNAME内のレコードがフェッチされるたびにカウンタに1が加算され、そのカウンタ値が指定されているカットオフと比較されます。カウンタ値がカットオフを超えると、レコードはそれ以上フェッチされなくなります。
ヒント: ペーパー・デザイン・ビューを開いたままでこのロジックを追加した場合は、そのペーパー・デザイン・ビューではレコードは返されません。この問題を解決するには、他のビュー(データ・モデル・ビューなど)の1つを表示してから、ペーパー・デザイン・ビューに戻ります。ランタイム・パラメータ・フォームで、2つのパラメータINCR_CNTおよびCUTOFF_CNTに値を入力するよう求められます。 |
ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックしてランタイム・パラメータ・フォームを表示します。このフォームから、CUTOFF_CNTおよびINCR_CNTのデフォルト値を変更できます。
「レポート実行」ボタンをクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。
レポートをrank_
<自分のイニシャル>.rdf
という名前で保存します。