Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース1(11.1.1) B61376-01 |
|
戻る |
次へ |
この項に示す手順に従って、2つのトリガーを作成します。最初のトリガーは、ビルトイン・プロシージャSRW.SET_FORMAT_ORDERを使用してレポートのメイン・セクションを最初にフォーマットし、その後ヘッダー・セクションとトレーラ・セクションをフォーマットします。2番目のトリガーは、各カテゴリ、サブカテゴリおよびレコードのページ番号をフェッチして、第36.2項「TOCデータを格納するデータベース表の作成」で作成した表にその情報を格納します。
After Parameter Formトリガーは、パラメータ・フォームの実行後に実行されるファンクションです。この項では、このトリガーを設定してレポートの実行順序を変更し、メイン・セクションが最初にフォーマットされるようにします。
After Parameter Formトリガーを作成するには:
Reports Builderで、提供されているmultilevel_source.rdf
ファイルを開きます。
オブジェクト・ナビゲータで、対象のレポート名(MULTILEVEL_SOURCE)の下にある「レポート・トリガー」ノードを開きます。
「AFTER PARAMETER FORM」を右クリックし、ポップアップ・メニューで「PL/SQLエディタ」を選択します。
PL/SQLエディタで、テンプレートを使用して次のコードを入力します。
function AfterPForm return boolean is begin srw.set_format_order(srw.main_section, srw.header_section, srw.trailer_section); return (TRUE); end;
注意: 提供されているファイルmultilevel_code.txt からコードをコピーして貼り付けることもできます。 |
「コンパイル」をクリックします。
コードがコンパイルされた後、「閉じる」をクリックします。
レポートをmultilevel_
<自分のイニシャル>.rdf
という名前で保存します。
この項では、F_PROD_SUBCATEGORYフィールドに基づいたフォーマット・トリガーを作成します。このフィールドには、サブカテゴリとして製品名が表示されます。このサブカテゴリは、製品部門を表すメイン・カテゴリの下に置かれます。このフォーマット・トリガーでは、それぞれの製品名のページ番号をフェッチします。これにより、ユーザーが目次に表示されている製品部門名とそれに続く製品名に基づいて、レポートの様々な部分に移動できるようになります。
フォーマット・トリガーを作成するには:
オブジェクト・ナビゲータで、レポートの「ペーパー・レイアウト」ノードを開き、「メイン・セクション」→「ボディ」→「M_G_PROD_CATEGORY_GRPFR」→「R_G_PROD_CATEGORY」→「M_G_PROD_SUBCATEGORY_GRPFR」→「R_G_PROD_SUBCATEGORY_GPRFR」までナビゲートして、「F_PROD_SUBCATEGORY」をクリックします。
ヒント: このフィールドが見つからない場合は、オブジェクト・ナビゲータの上部にある「検索」フィールドを使用してください。 |
「ツール」→「プロパティ・インスペクタ」を選択し、このフィールドのプロパティ・インスペクタを表示します。
「拡張レイアウト」で、「フォーマット・トリガー」プロパティ・フィールドをダブルクリックし、PL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のコードを入力します。
function F_PROD_SUBCATEGORYFormatTrigge return boolean is pageNum number; myCount number; begin -- get page number srw.get_page_num(pageNum); -- check table for duplicates select count(*) into myCount from toc_multilevel where main_topic = :PROD_CATEGORY and sub_topic = :PROD_SUBCATEGORY; -- if no duplicates, insert row if myCount = 0 then insert into toc_multilevel values (:PROD_CATEGORY, :PROD_SUBCATEGORY, pageNum); end if; return (TRUE); end;
注意: 提供されているファイルmultilevel_code.txt からコードをコピーして貼り付けることもできます。 |
「コンパイル」をクリックします。
コードがコンパイルされた後、「閉じる」をクリックしてプロパティ・インスペクタを閉じます。
レポートを保存します。