Oracle Application Express 5.0での拡張対話型レポート・リージョン技術の利用


オプション



開始する前に

目的

このチュートリアルでは、Oracle Application Express 5.0の対話型レポート・リージョンの高度な技術を使用する方法について説明します。

所要時間

約60分。

概要

Oracle Application Express (Oracle APEX)は、Oracle Database用の迅速なWebアプリケーション開発ツールです。Webブラウザと限られたプログラミングの経験のみを使用して、高速かつセキュアなプロフェッショナル用のアプリケーションを開発およびデプロイできます。Oracle Application Expressは、オンプレミスであってもOracle Database Cloud Service内にあってもOracle Databaseで使用できます。

このチュートリアルでは、Oracle Application Expressリリース5.0を使用して対話型レポートを作成、使用およびカスタマイズします。対話型レポートの詳細は、Oracleヘルプ・センターの「対話型レポートの使用」を参照してください。

このチュートリアルの実行時には、次の各事項に注意してください。

  • Oracle Application Expressワークスペースへのログイン: Oracle Application Expressワークスペースは、オンプレミスのOracle Database内またはOracle Database Cloud Services内にある場合があります。ログイン資格証明は、ワークスペースが格納されている場所によって異なります。
    • Oracle Database Cloud Service内のOracle Application Expressへのログイン: Oracle Database Cloud Service用のOracleヘルプ・センターを参照してください。これを行うには、クラウド用のOracleヘルプ・センターに移動し、「プラットフォームおよびインフラストラクチャ」を選択します。ここから、Database Cloud Serviceを選択すると、「スタート・ガイド」ページが表示されます。
    • オンプレミスのOracle Application Expressへのログイン: ブラウザで、ワークスペース管理者から提供されたOracle Application Expressワークスペースのオンプレミス・インストールの場所に移動します。
  • アプリケーションID: このチュートリアルのスクリーンショットでは、ぼやけたアプリケーションIDが表示されます。自分のアプリケーションIDは、アプリケーションの作成時に自動的に割り当てられる任意の値です。
  • スキーマ: Database Schema Service内のOracle Application Expressワークスペースにアクセスしている場合、変更できないスキーマ名を持つスキーマが1つ割り当てられています。オンプレミスのOracle Database内のワークスペースにアクセスしている場合、Oracle Application Expressインスタンス管理者からワークスペースに複数のスキーマが割り当てられている場合があります。

必要なもの

このチュートリアルを始める前に次の用意をする必要があります。

  • オンプレミスであるかDatabase Cloud Service内にあるOracle Database 11g以上のリリースにアクセスできるようにします。
  • Oracle Application Expressリリース5.0をOracle Databaseに印刷します(オンプレミスの場合のみ)。
  • 次のいずれかを実行してデータベース環境を構成します。

アプリケーション内の別のページからの保存済レポートのリンク

「対話型レポートの構築およびカスタマイズ」チュートリアルでは、対話型レポートを使用してアプリケーションを作成しました。このチュートリアルのこの項では、ホーム・ページ上の保存済レポートにリンクを追加します。

ホーム・ページ上の保存済レポートにリンクを追加するには、オンプレミスであるかOracle Database Cloud Service内のOracle Application Expressワークスペースにログインし、次の手順を実行します。
  1. Oracle Application Expressのホーム・ページで、「Application Builder」タブの横の下矢印をクリックし、「Database Applications」を選択します。

    このイメージの説明
  2. 「Interactive Reports OBE」の「Run」アイコンをクリックします。

    このイメージの説明
  3. 「Log In」画面が表示されたら、Oracle Application Expressの資格証明を入力し、「Log In」をクリックします。

    このイメージの説明
  4. ナビゲーション・メニューの「Demo Product Info」をクリックし、レポートを表示します。

    このイメージの説明
  5. 表示した最後の保存済レポートが表示されます。作成した保存済レポートを管理します。開発者ツールバーの「Edit Page 2」をクリックします。

    このイメージの説明
  6. 「Rendering」タブで、「Saved Reports」を展開します。

    このイメージの説明
  7. 保存済レポートのリストが表示されます。「Product Report by Category」をクリックします。

    このイメージの説明
  8. プロパティ・エディタで、「Identification」の下の「Alias」を「PROD_CATEGORY」に変更します。

    このイメージの説明
  9. 「Link」の下で、変更した「Alias」に応じて「Link Example」も更新されています。「Link Example」の内容をクリップボードにコピーし、「Shared Components」アイコンをクリックします。

    このイメージの説明
  10. 「Navigation」の下で、「Lists」をクリックします。

    このイメージの説明
  11. 「Desktop Navigation Menu」をクリックします。

    このイメージの説明
  12. 「Desktop Navigation Menu」にはすでに2つのエントリがあります。新しいリスト・エントリを作成するには、「Create List Entry >」をクリックします。

    このイメージの説明
  13. 「Entry」の下で、「Parent List Entry」として「Home」を選択し、「List Entry Label」として「Product Report by Category」を入力し、さらに下にスクロールします。

    このイメージの説明
  14. 「Target」の下で、「Target Type」として「URL」を選択し、前の手順の1つでクリップボードにコピーした「Link Example」の内容を「URL Target」に貼り付け、「Create List Entry」をクリックします。

    このイメージの説明
  15. 新しいリスト・エントリが作成されます。「Application<n>」ブレッドクラムをクリックします。

    このイメージの説明
  16. 「Run Application」をクリックします。

    このイメージの説明
  17. ナビゲーション・メニューの「Home」の下には2つのメニュー・エントリがあります。「Product Report by Category」をクリックします。

    このイメージの説明
  18. 「Saved Report」が表示されます。次の項では、レポートを手動でリセットするためのリセット・ボタンを作成します。開発者ツールバーの「Edit Page 2」をクリックします。

    このイメージの説明

対話型レポートの手動リセット

開発者として、アクション・メニューでリセット機能を追加または除外する機能が用意されています。アクション・メニューにリセット機能がない場合、エンドユーザーが列見出しメニューを使用してレポートをカスタマイズした後にレポートをリセットすることはできません。リセットを可能にするには、対話型レポートをプログラム的に作成してから、アクション・メニューのリセット機能を除外し、最後にリセット・ボタンを作成します。次の手順を実行します。
  1. 「Rendering」タブで、「DEMO_PRODUCT_INFO」を右クリックし、「Create Button」を選択します。

    このイメージの説明
  2. 新しいボタンのプロパティ・エディタで、「Identification」の下の「Button Name」として「RESET」を入力します。「Layout」の下で、「Button Position」として「Right of Interactive Search Bar」を選択します。

    このイメージの説明
  3. 「Behavior」の下で、「Action」として「Redirect to Page in this Application」を選択し、「Target」として「No Link Defined」をクリックします。

    このイメージの説明
  4. 「Page」で、「List of Values」アイコンをクリックします。

    このイメージの説明
  5. 「2」(Demo Product Info Report)をクリックします。

    このイメージの説明
  6. 「Clear Cache」として「2,RIR」を入力し、「OK」をクリックします。

    注意: 対話型レポートをリセットするには、RIRのキャッシュのクリア・リクエストを送信します。これにより、呼び出された任意のページ上で対話型レポートがリセットされます。RIR文字列は、ターゲット・ページ上の対話型レポート・アクションからリセット・オプションを選択するエンドユーザーと等価であり、レポートが開発者によって指定されたデフォルトのレポート設定に戻る原因となります。

    このイメージの説明
  7. アクション・メニューからリセット・オプションを削除することも必要です。「Rendering」タブで、「Attributes」をクリックします。

    このイメージの説明
  8. プロパティ・エディタの「Actions」メニューの下で、「Reset」として「No」を選択し、「Save and Run Page」をクリックします。

    このイメージの説明
  9. 「Reset」ボタンをクリックします。

    このイメージの説明
  10. レポートが(「Product Report by Category」公開レポートではなく)プライマリ・レポートにリセットされます。次の項では、URLアイテム値を使用してフィルタ値を渡す宣言フィルタを作成します。開発者ツールバーの「Application<n>」をクリックします。

    このイメージの説明

宣言フィルタの作成

対話型レポートで宣言フィルタを定義するには、URLアイテム値を使用してフィルタ基準を渡します。これにより、レポートから対話型レポートへのフィルタまたはドリルダウンに翻訳できる複雑な問合せ基準を定義できるようになります。対話型レポート間のドリルダウンを作成するには、次の手順を実行します。
  1. 「Create Page >」をクリックします。

    このイメージの説明
  2. 「Report」をクリックします。

    このイメージの説明
  3. 「Interactive Report」をクリックします。

    このイメージの説明
  4. 「Page Name」および「Region Name」として「Products by Category」を入力し、「Breadcrumb」として「Breadcrumb」、「Parent Entry」として「Home (Page 1)」を選択し、「Entry Name」として「Products by Category」を入力し、「Next >」をクリックします。

    このイメージの説明
  5. デフォルトのままにして「Next >」をクリックします。

    このイメージの説明
  6. 「Source Type」として「SQL Query」を選択し、「Link to Single Row View」として「No」を選択します。「Enter a SQL SELECT statement」として次のSQL問合せを入力し、「Next >」をクリックします。

    select distinct p.category,
    (select count(product_id) from demo_product_info where category=p.category) Products
    from demo_product_info p;

    このイメージの説明
  7. 「Create」をクリックします。

    このイメージの説明
  8. 「Rendering」タブで、「Columns」を展開します。

    このイメージの説明
  9. PRODUCTSのページ2上で対話型レポートへのリンクを作成します。「PRODUCTS」をクリックします。

    このイメージの説明
  10. この列をリンクに変換します。プロパティ・エディタで、「Identification」の下の「Type」として「Link」を選択します。

    このイメージの説明
  11. 「Link」の下で、「Target」として「No Link Defined」をクリックします。

    このイメージの説明
  12. ページ2上のカテゴリの製品リストを表示するリンクを定義し、ページ2上のキャッシュをクリアし、ページ2上の対話型レポート・リージョンをリセットすることにより、渡されるフィルタに影響する可能性がある以前に設定されたフィルタをすべて削除する必要があります。また、非表示のCATEGORYの値を渡す必要があります。対話型レポート内の列を参照するには、列別名に接頭辞として「IR_」を付けます。

    「Page」として「2」、「Item 1: Name」として「IR_CATEGORY」を入力し、「Item 1: Value」の「List of Values」アイコンをクリックします。

    注意: アイテム名に接頭辞として「IR_」(この例では「IR_CATEGORY」)を付けることにより、URLアイテムは、ページ上のアイテムではなく対話型レポート列に関連付けられます。

    このイメージの説明
  13. 「CATEGORY」を選択します。

    このイメージの説明
  14. 「Clear Cache」として「2,RIR」を入力し、「OK」をクリックします。

    このイメージの説明
  15. PRODUCTSのプロパティ・エディタで、「Link」の下の「Link Text」として「#PRODUCTS#」を入力し、「Save and Run Page」をクリックします。

    注意: PRODUCTSを囲む#記号により、列PRODUCTSの値がリンク・テキストとして表示されるようにします。

    このイメージの説明
  16. 「Products」値にリンクがあります。数字の1つをクリックします。

    このイメージの説明
  17. 「Demo Product Info」対話型レポートが表示され、カテゴリに対して作成されたフィルタがあります。次の項では、導出列を作成し、フィルタに基づいて強調表示を作成します。開発者ツールバーの「Edit Page 2」をクリックします。

    このイメージの説明

導出列の作成

この項では、問合せに導出列を追加します。具体的には、製品を注文した顧客の数に基づいて、製品の売上高が目標値に達していないかどうかを確認するcase文を使用します。次に、この導出列の値を使用して、売上高が目標値に達していない製品をすべて強調表示する強調表示ルールを作成します。次の手順を実行します。
  1. 「Rendering」タブで、「DEMO_PRODUCT_INFO」をクリックします。

    このイメージの説明
  2. プロパティ・エディタで、「Source」の下の「Code Editor: SQL Query」アイコンをクリックします。

    このイメージの説明
  3. 既存のSQL問合せを次の問合せに置き換え、「Validate」アイコンをクリックします。

    select p.product_id,
      p.product_name,
      p.product_description,
      p.category, p.product_avail,
      p.list_price,
     (select sum(quantity)
     from demo_order_items
     where product_id = p.product_id) units,
     (select max(o.order_timestamp) od from demo_orders o, demo_order_items i
     where o.order_id = i.order_id
     and i.product_id = p.product_id) last_date_sold, p.PRODUCT_ID image,
     (case when (select count(o.customer_id) from demo_orders o, demo_order_items t
     where o.order_id = t.order_id
     and t.product_id = p.product_id
     group by p.product_id) < 5 then 'Yes'
     else 'No' end) UnderSold_Yes_No
     from demo_product_info p;

    このイメージの説明
  4. 「OK」をクリックします。

    このイメージの説明
  5. 「Rendering」タブで、「Columns」を展開します。

    このイメージの説明
  6. 導出列は列属性のリスト内にあります。

    このイメージの説明
  7. アクション・メニューに戻って強調表示をオンにする必要があります。「Attributes」をクリックします。

    このイメージの説明
  8. プロパティ・エディタの「Actions」メニューの下で、「Highlight」として「Yes」を選択し、「Save and Run Page」をクリックします。

    このイメージの説明
  9. レポートが表示されます。売上高が目標値に達していない製品を表示するには、「Actions」メニューを選択し、「Format」を選択し、「Highlight」をクリックします。

    このイメージの説明
  10. 「Name」として「Undersold Products」を入力し、「Background Color」として「[yellow]」を選択します。「Highlight Condition」では、「Column」として「Undersold yes no」、「Operator」として「=」、「Expression」として「Yes」を選択します。「Apply」をクリックします。

    このイメージの説明
  11. 売上高が目標値に達していない製品が黄色で強調表示されています。

    このイメージの説明
  12. チェック・ボックスの選択を解除し、カテゴリ・フィルタを無効にします。

    このイメージの説明
  13. フィルタが無効になり、売上高が目標値に達していない製品がすべて黄色で強調表示されます。

    このイメージの説明

概要

このチュートリアルでは、次の操作方法を学びました。

  • 別のページから保存済レポートにリンクする
  • 対話型レポートを手動でリセットする
  • 宣言フィルタを作成する
  • 導出列を作成する

詳細

クレジット

  • カリキュラム開発者: Anjani Pothula

  • 他の貢献者:Drue Swadener