開始する前に
目的
このチュートリアルでは、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に印刷します(オンプレミスの場合のみ)。
- 次のいずれかを実行してデータベース環境を構成します。
- Application Express 5.0のチュートリアルを使用して「Oracle Application Express 5.0での対話型レポートの構築およびカスタマイズ」を実行します。
- 次の環境設定手順を指定された順序で実行します。
- 『Oracle Application Express管理ガイド』の新規ユーザー・アカウントの作成に関する項の手順を参照してOracle Application Expressユーザーを作成します。
- files.zipを作業ディレクトリにダウンロードします。
- 作業ディレクトリ内の
IR_OBE.sql
を使用して、アプリケーションをインポートします。
アプリケーション内の別のページからの保存済レポートのリンク
ホーム・ページ上の保存済レポートにリンクを追加するには、オンプレミスであるかOracle Database Cloud Service内のOracle Application Expressワークスペースにログインし、次の手順を実行します。
-
Oracle Application Expressのホーム・ページで、「Application Builder」タブの横の下矢印をクリックし、「Database Applications」を選択します。
-
「Interactive Reports OBE」の「Run」アイコンをクリックします。
-
「Log In」画面が表示されたら、Oracle Application Expressの資格証明を入力し、「Log In」をクリックします。
-
ナビゲーション・メニューの「Demo Product Info」をクリックし、レポートを表示します。
-
表示した最後の保存済レポートが表示されます。作成した保存済レポートを管理します。開発者ツールバーの「Edit Page 2」をクリックします。
-
「Rendering」タブで、「Saved Reports」を展開します。
-
保存済レポートのリストが表示されます。「Product Report by Category」をクリックします。
-
プロパティ・エディタで、「Identification」の下の「Alias」を「PROD_CATEGORY」に変更します。
-
「Link」の下で、変更した「Alias」に応じて「Link Example」も更新されています。「Link Example」の内容をクリップボードにコピーし、「Shared Components」アイコンをクリックします。
-
「Navigation」の下で、「Lists」をクリックします。
-
「Desktop Navigation Menu」をクリックします。
-
「Desktop Navigation Menu」にはすでに2つのエントリがあります。新しいリスト・エントリを作成するには、「Create List Entry >」をクリックします。
-
「Entry」の下で、「Parent List Entry」として「Home」を選択し、「List Entry Label」として「Product Report by Category」を入力し、さらに下にスクロールします。
-
「Target」の下で、「Target Type」として「URL」を選択し、前の手順の1つでクリップボードにコピーした「Link Example」の内容を「URL Target」に貼り付け、「Create List Entry」をクリックします。
-
新しいリスト・エントリが作成されます。「Application<n>」ブレッドクラムをクリックします。
-
「Run Application」をクリックします。
-
ナビゲーション・メニューの「Home」の下には2つのメニュー・エントリがあります。「Product Report by Category」をクリックします。
-
「Saved Report」が表示されます。次の項では、レポートを手動でリセットするためのリセット・ボタンを作成します。開発者ツールバーの「Edit Page 2」をクリックします。
対話型レポートの手動リセット
-
「Rendering」タブで、「DEMO_PRODUCT_INFO」を右クリックし、「Create Button」を選択します。
-
新しいボタンのプロパティ・エディタで、「Identification」の下の「Button Name」として「RESET」を入力します。「Layout」の下で、「Button Position」として「Right of Interactive Search Bar」を選択します。
-
「Behavior」の下で、「Action」として「Redirect to Page in this Application」を選択し、「Target」として「No Link Defined」をクリックします。
-
「Page」で、「List of Values」アイコンをクリックします。
-
「2」(Demo Product Info Report)をクリックします。
-
「Clear Cache」として「2,RIR」を入力し、「OK」をクリックします。
注意: 対話型レポートをリセットするには、RIRのキャッシュのクリア・リクエストを送信します。これにより、呼び出された任意のページ上で対話型レポートがリセットされます。RIR文字列は、ターゲット・ページ上の対話型レポート・アクションからリセット・オプションを選択するエンドユーザーと等価であり、レポートが開発者によって指定されたデフォルトのレポート設定に戻る原因となります。 -
アクション・メニューからリセット・オプションを削除することも必要です。「Rendering」タブで、「Attributes」をクリックします。
-
プロパティ・エディタの「Actions」メニューの下で、「Reset」として「No」を選択し、「Save and Run Page」をクリックします。
-
「Reset」ボタンをクリックします。
-
レポートが(「Product Report by Category」公開レポートではなく)プライマリ・レポートにリセットされます。次の項では、URLアイテム値を使用してフィルタ値を渡す宣言フィルタを作成します。開発者ツールバーの「Application<n>」をクリックします。
宣言フィルタの作成
-
「Create Page >」をクリックします。
-
「Report」をクリックします。
-
「Interactive Report」をクリックします。
-
「Page Name」および「Region Name」として「Products by Category」を入力し、「Breadcrumb」として「Breadcrumb」、「Parent Entry」として「Home (Page 1)」を選択し、「Entry Name」として「Products by Category」を入力し、「Next >」をクリックします。
-
デフォルトのままにして「Next >」をクリックします。
-
「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; -
「Create」をクリックします。
-
「Rendering」タブで、「Columns」を展開します。
-
PRODUCTSのページ2上で対話型レポートへのリンクを作成します。「PRODUCTS」をクリックします。
-
この列をリンクに変換します。プロパティ・エディタで、「Identification」の下の「Type」として「Link」を選択します。
-
「Link」の下で、「Target」として「No Link Defined」をクリックします。
- ページ2上のカテゴリの製品リストを表示するリンクを定義し、ページ2上のキャッシュをクリアし、ページ2上の対話型レポート・リージョンをリセットすることにより、渡されるフィルタに影響する可能性がある以前に設定されたフィルタをすべて削除する必要があります。また、非表示のCATEGORYの値を渡す必要があります。対話型レポート内の列を参照するには、列別名に接頭辞として「IR_」を付けます。
「Page」として「2」、「Item 1: Name」として「IR_CATEGORY」を入力し、「Item 1: Value」の「List of Values」アイコンをクリックします。
注意: アイテム名に接頭辞として「IR_」(この例では「IR_CATEGORY」)を付けることにより、URLアイテムは、ページ上のアイテムではなく対話型レポート列に関連付けられます。
-
「CATEGORY」を選択します。
-
「Clear Cache」として「2,RIR」を入力し、「OK」をクリックします。
-
PRODUCTSのプロパティ・エディタで、「Link」の下の「Link Text」として「#PRODUCTS#」を入力し、「Save and Run Page」をクリックします。
注意: PRODUCTSを囲む#記号により、列PRODUCTSの値がリンク・テキストとして表示されるようにします。 -
「Products」値にリンクがあります。数字の1つをクリックします。
-
「Demo Product Info」対話型レポートが表示され、カテゴリに対して作成されたフィルタがあります。次の項では、導出列を作成し、フィルタに基づいて強調表示を作成します。開発者ツールバーの「Edit Page 2」をクリックします。
導出列の作成
-
「Rendering」タブで、「DEMO_PRODUCT_INFO」をクリックします。
-
プロパティ・エディタで、「Source」の下の「Code Editor: SQL Query」アイコンをクリックします。
-
既存の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; -
「OK」をクリックします。
-
「Rendering」タブで、「Columns」を展開します。
-
導出列は列属性のリスト内にあります。
-
アクション・メニューに戻って強調表示をオンにする必要があります。「Attributes」をクリックします。
-
プロパティ・エディタの「Actions」メニューの下で、「Highlight」として「Yes」を選択し、「Save and Run Page」をクリックします。
-
レポートが表示されます。売上高が目標値に達していない製品を表示するには、「Actions」メニューを選択し、「Format」を選択し、「Highlight」をクリックします。
-
「Name」として「Undersold Products」を入力し、「Background Color」として「[yellow]」を選択します。「Highlight Condition」では、「Column」として「Undersold yes no」、「Operator」として「=」、「Expression」として「Yes」を選択します。「Apply」をクリックします。
-
売上高が目標値に達していない製品が黄色で強調表示されています。
-
チェック・ボックスの選択を解除し、カテゴリ・フィルタを無効にします。
-
フィルタが無効になり、売上高が目標値に達していない製品がすべて黄色で強調表示されます。
概要
このチュートリアルでは、次の操作方法を学びました。
- 別のページから保存済レポートにリンクする
- 対話型レポートを手動でリセットする
- 宣言フィルタを作成する
- 導出列を作成する
詳細
クレジット
-
カリキュラム開発者: Anjani Pothula
- 他の貢献者:Drue Swadener