ヘッダーをスキップ
Oracle OLAPユーザーズ・ガイド
11g リリース1(11.1)
E05731-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

6 レポートとダッシュボードの開発

SQL開発ツールやアプリケーションを使用して、OLAPキューブからデータを移入したレポートおよびダッシュボードを作成できます。この章では、Oracle Databaseの付属ツールであるOracle Business Intelligence Publisher(BI Publisher)およびOracle Application Expressの基本的な使用手順について説明します。これらのツールを直接使用する以外に、この章で説明する方法に基づいて好みのSQLツールを使用することもできます。

この章では、次の項目について説明します。

OLAPアプリケーションの開発

レポートまたはダッシュボードの内容のかわりに、キューブに対するSQL問合せを使用できます。BI PublisherおよびApplication Expressは、ともにクエリー・ビルダーを備えています。これを使用すると、リレーショナル・オブジェクトと次元オブジェクトのどちらに対する問合せでも開発できます。また、SQLスクリプトや別のソースから問合せを切り取って貼り付けることもできます。この方法をこの章では使用します。

静的レポートおよび静的ダッシュボードを作成することが目的であれば、これ以上の説明は必要ありません。適切なツールを使用して、今すぐOLAPアプリケーションの開発を始められます。この章では、動的な内容を持つアプリケーションの作成方法を説明します。中でも、キューブやディメンションの特徴的な機能を活用することにより、ドリル可能なレポートおよびグラフを単独の問合せを使用して作成する方法について詳しく説明します。ここでは、次の2つのタイプのドリル可能インタフェースの作成方法について見ていきます。

これらのユーザー・インタフェースを使用すると、ソース問合せのWHERE句に、バインド変数の値を設定できます。ユーザーが、選択リストで現在選択されている項目を変更したり、クロス集計内のリンクをクリックしたりすると、そのアクションにより変数の値は動的に変更されます。変数値が変更されると、問合せの条件およびレポートまたはダッシュボードの内容も変更されます。

変数により階層ビューのPARENT列の値が設定されると、ユーザーは親をドリルしてその子を表示できます。

例6-1に、Globalサンプル・スキーマのUNITS_CUBE_VIEWに対する基本的なSQL問合せを示します。この問合せにより、SALESメジャー、およびSALESに基づく3つの計算済メジャーが選択されます。

この問合せは、この章の中で開発を行うサンプル・アプリケーションで使用します。Product、Customer、Timeの各ディメンションのPARENT列は、これらのアプリケーションによりドリルすることができます。CHANNELディメンションは、TOTALレベルに固定されたままになります。

例6-1 Salesキューブに対するSQL問合せ

SELECT p.long_description "Product",
     cu.long_description "Customer",
     t.long_description "Time",
     ROUND(f.sales) "Sales",
     ROUND(f.sales_pp) "Prior Period",
     ROUND(f.sales_chg_pp) "Change",
     ROUND(f.sales_pctchg_pp * 100) "Percent Change"
/* From dimension views and cube view */
FROM product_primary_view p,
     customer_shipments_view cu,
     time_calendar_view t,
     channel_primary_view ch,
     units_cube_view f
/* Use parent columns to implement drilling */
WHERE p.parent = 'TOTAL'
    AND cu.parent = 'TOTAL'
    AND t.parent = 'CY2006'
    AND ch.level_name = 'TOTAL'
/* Join dimension views to cube view */
    AND p.dim_key = f.product
    AND cu.dim_key = f.customer
    AND t.dim_key = f.time
    AND ch.dim_key = f.channel
ORDER BY product, customer, t.end_date;

Product         Customer        Time            Sales Prior Period     Change Percent Change
--------------- --------------- ---------- ---------- ------------ ---------- --------------
Hardware        North America   Q1.06        16002175     14493426    1508749             10
Hardware        North America   Q2.06        16032643     16002175      30469              0
Hardware        North America   Q3.06        15698208     16032643    -334436             -2
Hardware        North America   Q4.06        15958791     15698208     260583              2
Hardware        Asia Pacific    Q1.06        13416447     14273900    -857453             -6
Hardware        Asia Pacific    Q2.06        14306431     13416447     889984              7
                 .
                 .
                 .
Software/Other  Asia Pacific    Q4.06          652300       647019       5281              1
Software/Other  Europe          Q1.06          737523       634293     103230             16
Software/Other  Europe          Q2.06          678391       737523     -59132             -8
Software/Other  Europe          Q3.06          499008       678391    -179383            -26
Software/Other  Europe          Q4.06          710796       499008     211788             42

24 rows selected.

BI Publisherを使用したレポートの開発

BI Publisherは、情報を生成してそれを様々な配布方法で提供するための、高度でスケーラブルなレポート作成ソリューションです。このソリューションを使用することにより、ビジネス文書の作成およびメンテナンスに伴うコストが削減されると同時に、レポート管理の効率性が向上します。BI Publisherでは、HTML、PDF、Excelなど様々な形式でレポートが生成されます。

BI Publisherをまだ使用していない場合は、次のOracle Technology Networkのページから、ソフトウェア、チュートリアルおよびドキュメント一式をダウンロードできます。

http://www.oracle.com/technology/products/xml-publisher/index.html

図6-1は、例6-1の問合せに基づくレポートをPDF形式で表示したものです。配布用のレポートを生成する場合は、Products、CustomersおよびTime Periodsの任意の組合せを選択リストから選択できます。このレポートでは、ハードウェア製品、ヨーロッパの顧客、および2006年第2四半期の月が選択されています。この章では、ドリル可能なディメンションを使用してこのようなレポートを作成する方法について説明します。

図6-1 BI PublisherのSalesレポート

BI PublisherのHTMLレポート
「図6-1 BI PublisherのSalesレポート」の説明

BI PublisherでのOLAPレポートの作成

各レポートは、BI Publisherで作成するレポート・エントリと、Microsoft WordやAdobe Acrobatなどのアプリケーションを使用して作成するレイアウト・テンプレートにより構成されます。レポートはフォルダ内にまとめておくことができます。

BI Publisherはミドルウェア・アプリケーションで、複数のソースからデータを導出できます。次に示す手順では、アクセスできるBI Publisherのキューブが1つ以上あることが想定されています。アクセスできるキューブがない場合は、新規データソースの定義をBI Publisherの管理者に依頼してください。

レポート・エントリの作成手順

  1. ブラウザでBI Publisherのホーム・ページを開き、ログインします。

  2. マイ・フォルダ」をクリックします。

  3. 既存のフォルダを開きます。

    または

    次の手順に従って新規フォルダを作成します。

    1. 新規フォルダの作成」をクリックします。

    2. テキスト・ボックスにフォルダの名前(OLAP Reportsなど)を入力します。

    3. 作成」をクリックします。

  4. 新規のフォルダをクリックして開きます。

  5. 新規レポートを作成します。

    1. 新規レポートの作成」をクリックします。

    2. テキスト・ボックスにレポートの名前を入力します。

      この例では、Global Salesという名前のレポートを作成します。

    3. 作成」をクリックします。

    新規のレポートがフォルダ内に表示されます(図6-2を参照)。

図6-2 BI Publisherでの新規レポートの作成

BI Publisherの「レポート」ページ
「図6-2 BI Publisherでの新規レポートの作成」の説明

レポート・エントリの構成手順

  1. レポートの内容を定義するため、「編集」をクリックします。

    レポート・エディタが表示されます。

  2. 「一般設定」で、説明を入力してデフォルトのデータソースを選択します。

    リストの中に、キューブが含まれているデータベースおよびスキーマへの接続が表示されていない場合は、BI Publisherの管理者に問い合せてください。

  3. 「データ・モデル」を選択し、「新規」をクリックします。

    「データ・セット」ページが表示されます。

  4. データセットの名前を入力し、例6-1に示したようなSQL問合せを入力します。ただし、セミコロンは使用できません。

  5. 保存」をクリックします。

  6. 表示」をクリックします。

    BI Publisherでは、レポート定義にエラーがないかどうかのチェックが行われます。エラーがなければ、レポート用のXMLが生成されます。

図6-3に、レポート・エディタの「データ・セット」ページを示します。

図6-3 BI Publisherのレポート・エディタによるデータ・モデルの作成

BI Publisherのレポート・エディタ
「図6-3 BI Publisherのレポート・エディタによるデータ・モデルの作成」の説明

Microsoft Wordでのテンプレートの作成

BI Publisherは、書式設定ツールを備えていません。そのかわりとして、使い慣れたデスクトップ・アプリケーションを使用してレポートを設計できるようになっています。この例では、Microsoft Wordを使用します。レポート・テンプレートには、次のような要素があります。

  • 静的テキストおよびグラフィック。他のWordドキュメントと同じように入力できます。

  • 日時やページ番号などの動的フィールド。Wordにより処理されます。

  • データ用のXMLタグを指定するコード。BI Publisherにより処理されます。BI Publisherによりレポートが生成されると、このコードが、これらのタグによって指定されたデータに置き換えられます。

Wordでフォント、テキストの色や背景色、表デザインなどを選択することにより、レポート・テンプレートの要素はすべて、Word内で書式設定を行うことができます。

例6-2に、サンプル問合せにより戻された行のデータに対応するXMLを示します。タグは、空白がアンダースコアに置き換えられていることを除けば、選択リスト内の列名に一致しています。タグは、ProductCustomerTimeSalesPrior_PeriodChangeおよびPercent_Changeです。XMLタグでは、大文字と小文字は区別されます。Wordドキュメント内のコードには、HTMLタグ名を使用します。

例6-2 SQL問合せに対応するXML

<ROW>
<Product>Hardware</Product>
<Customer>North America</Customer>
<Time>Q1.06</Time>
<Sales>16002175</Sales>
<Prior_Period>14493426</Prior_Period>
<Change>1508749</Change>
<Percent_Change>10</Percent_Change>
</ROW>

図6-4に、サンプル・レポートのテンプレートとして使用するWordドキュメントを示します。このドキュメントには次の要素が含まれます。

  • バナーの書式設定に使用する表。グラフィック、会社名および横罫線で構成されます。(静的)

  • レポートの名前。(静的)

  • 次の2つの行を含む問合せ結果の表。

    • 見出し行。(静的)

    • テキスト・フォーム・フィールドを含む本文行。XMLタグおよびデータの適切な書式を指定します。これらのフィールドは、BI Publisherによって問合せのデータに置き換えられます。最初の列と最後の列にはそれぞれ2つのフィールドが含まれています。最初と最後のフィールドにより、列の繰返し範囲が指定されます。(動的)

  • 日付フィールド。このフィールドは、Wordにより現在の日付に更新されます。(動的)

この例では、何も記述されていないWordテンプレートを使用しますが、すでにバナーなどが定義されているテンプレートを使用してもかまいません。

図6-4 Wordで作成されたBI Publisher用のサンプル・レポート・テンプレート

BI Publisher用のサンプル・レポート・テンプレート
「図6-4 Wordで作成されたBI Publisher用のサンプル・レポート・テンプレート」の説明

次に示すのは、テンプレートを手動で定義するための手順です。この手順のかわりに、Oracle BI Publisher DesktopというWordのプラグインを使用することもできます。このプラグインは、BI Publisherの「マイ・フォルダ」ページで「Template Builder」をクリックするとダウンロードできます。

WordでBI Publisherテンプレートを作成する手順

  1. Wordで新規文書を開きます。

  2. 目的にあわせてページを構成します。

  3. 問合せ結果に対する表を作成します。

    図6-4に示した表は非常に単純ですが、必要であれば、ネストした列や表など、より複雑な書式を使用することもできます。

  4. 「表示」メニューから「ツールバー」を選択し、さらに「フォーム」を選択します。

    「フォーム」ツールバーが表示されます。

  5. 次の手順に従って各列の本文行にフィールドを入力します。

    1. 目的のセルにカーソルをあわせます。

    2. 「フォーム」ツールバーで、「テキスト ボックス フォーム フィールド」アイコンをクリックします。

      「テキスト ボックス フォーム フィールド」ダイアログ・ボックスが表示されます。

    3. 「種類」から適切な項目を選択します。通常、ディメンション・ラベルに対しては「文字列」、メジャーに対しては「数値」を選択します。

    4. デフォルト値および書式を入力します。

    5. ヘルプの追加」をクリックします。

      「ヘルプの追加」ダイアログ・ボックスが表示されます。

    6. <?tag?>という書式を使用して、目的のXMLタグを「ヘルプの内容を指定する」ボックスに入力します。

      XMLレポートに表示されているとおりにタグ名を入力します。たとえば、XMLタグ<Product>に対しては<?Product?>と入力します。

    7. OK」をクリックして「ヘルプの追加」ダイアログ・ボックスを閉じます。

    8. OK」をクリックして「テキスト ボックス フォーム フィールド」ダイアログ・ボックスを閉じます。

  6. 最初の列の先頭部分に、追加のフォーム・フィールドを挿入します。

    1. 「テキスト ボックス フォーム フィールド」ダイアログ・ボックスで、For-Eachなどのデフォルト値を入力します。

    2. 「ヘルプの追加」ダイアログ・ボックスで、次のテキストを入力します。

      <?for-each:ROW?>
      
  7. 最後の列の末尾に、追加のフォーム・フィールドを挿入します。

    1. 「テキスト ボックス フォーム フィールド」ダイアログ・ボックスで、Endなどのデフォルト値を入力します。

    2. 「ヘルプの追加」ダイアログ・ボックスで、次のテキストを入力します。

      <?end for-each?>
      
  8. 表の見出しやデータ列の適切な位置調整など、その他にも書式設定に関する変更がある場合は、Wordを使用してその変更を行います。

  9. ドキュメントをRTFファイルとして保存します。

書式設定されたレポートの生成

Wordで作成されたレポート・テンプレートは、BI publisherにアップロードし、レポート定義に関連付けることができます。その上で、レポートを様々な書式で生成できます。

レポート・レイアウトの作成

  1. BI Publisherでレポート・エディタを開きます。

  2. レイアウト」を選択します。

    「レイアウトの作成」ページが表示されます。

  3. 新規」をクリックします。

    「レイアウト」ページが表示されます。

  4. 名前を入力し、テンプレートのタイプとして「RTF」を選択します。

  5. 再度「レイアウト」を選択し、新規のレイアウトをこのレポートのデフォルト・テンプレートとして選択します。

  6. 「テンプレート・ファイルの管理」で「参照」をクリックし、作成したRTFファイルを選択します。

  7. アップロード」をクリックします。

    アップロードされたファイルは「テンプレート・ファイルの管理」にリスト表示されます。このファイルをWordで変更したときは、必ず再アップロードしてください。再アップロードしないと、BI Publisherでは変更前のファイルのコピーがそのまま使用されます。

  8. 保存」をクリックします。

  9. 表示」をクリックします。

    レポートが表示されます。

  10. 書式を変更する場合は、リストから新規の書式を選択し、「表示」をクリックします。

    XMLを表示する場合は、「データ」を選択します。

図6-5に、HTML形式で表示したレポートを示します。

図6-5 HTML形式で表示したBI Publisherのレポート

Global Enterprisesレポート
「図6-5 HTML形式で表示したBI Publisherのレポート」の説明

ディメンション選択リストの追加

ディメンションの選択リストをレポートに追加できます。レポートの生成時に、問合せを変更することなく、選択するデータを変更できます。選択リストを追加するには、次の手順を実行します。

  • メニューに表示する値リスト(LOV)を1つ以上作成します。

  • LOVを表示するためのメニューを作成します。

  • メニューに対して作成したバインド変数が使用されるように問合せを編集します。

値リストの作成

LOVに対しては、表示するディメンション・キーを選択するためのSQL問合せを使用します。階層ビューからLONG_DESCRIPTION列およびDIM_KEY列を取り込みます。この例では、Product Primary階層に関するリストを作成します。

SELECT long_description, dim_key
     FROM product_primary_view
     WHERE parent = 'TOTAL'
     OR dim_key = 'TOTAL'
     ORDER BY level_name, long_description

LONG_DESCRIPTION     DIM_KEY
-------------------- ------------
Hardware             HRD
Software/Other       SFT
Total Product        TOTAL

値リストの作成手順

  1. BI Publisherでレポート・エディタを開きます。

  2. 値リスト」を選択し、「新規」をクリックします。

    「値リスト」ページが表示されます。

  3. 次の手順に従ってリストを定義します。

    1. リストの名前(Product_LOVなど)を入力します。

    2. タイプとして「SQL問合せ」を選択します。

    3. 前述のように、ディメンション階層ビューに対する問合せを入力します。

  4. 保存」をクリックします。

その他のディメンションに対しても、この手順を繰り返します。この例では、Product、CustomerおよTimeの各リストを使用します。

メニューの作成

BI Publisherでは、メニューは一種のパラメータとして扱われます。パラメータを作成すると、レポートの問合せに使用できるバインド変数が自動的に作成されます。

メニューの作成手順

  1. 「パラメータ」を選択し、「新規」をクリックします。

    「パラメータ」ページが表示されます。

  2. 次の手順に従ってパラメータを定義します。

    1. 「識別子」に、productなどの名前を入力します。

      この名前が、問合せで使用するバインド変数の名前になります。ただし、大文字と小文字は区別されます。

    2. 適切なデータ型を選択します(通常は「文字列」)。

    3. 「デフォルト値」に、LOV問合せのWHERE句で使用するディメンション・キーを入力します。

      メニューには最初にこのキーが表示されます。

    4. 「パラメータ・タイプ」で、「メニュー」を選択します。

    5. 目的の値リストを選択します。

    6. オプションの選択をすべて解除します。

  3. 保存」をクリックします。

その他のディメンションに対しても、この手順を繰り返します。この例では、Product、CustomerおよびTimeに対してメニューを作成します。

問合せの編集

メニューをアクティブにするには、レポートに対する問合せのWHERE句を変更して、バインド変数が使用されるようにします。バインド変数の値は、現在メニューで選択されている内容になります。

次に示すのは、WHERE句の条件の書式です。

parent_column = :bind_variable

この例では、WHERE句に、Time、ProductおよびCustomerのバインド変数を使用します。

WHERE  p.parent  = :product
   AND cu.parent = :customer
   AND t.parent  = :time
   AND ch.level_name = 'TOTAL'

問合せの編集手順

  1. 「データ・モデル」から、このレポートに対して定義したデータセットを選択します。

    「データ・セット」ページが表示されます。

  2. 「SQL問合せ」ボックスで、パラメータを定義する際に作成したバインド変数が使用されるようにWHERE句を編集します。

  3. 保存」をクリックします。

図6-6に、BI Publisherに表示されたHTML形式のレポートを示します。上部には、Product、CustomerおよびTimeの各選択リストが表示されています。クロス集計には、2006年第3四半期の月、ハードウェア製品およびヨーロッパの国がリスト表示されています。データの選択内容を変更して表示する場合は、メニューからTime Period、ProductおよびCustomerを選択し、「表示」をクリックします。このレポートは、図6-1に示したレポートと同じレポート・エントリおよび問合せを使用して生成されたものです。

このレポートに対して、グラフやその他の表をさらに追加することもできます。

図6-6 BI Publisherの選択リストを持つSalesレポート

ディメンション・リストを持つSalesレポート
「図6-6 BI Publisherの選択リストを持つSalesレポート」の説明

Application Expressを使用したダッシュボードの開発

Oracle Application Expressは、Oracle Database用の高速Webアプリケーション開発ツールです。Application Expressには、ユーザー・インタフェースのテーマ、ナビゲーショナル・コントロール、フォーム・ハンドラ、フレキシブル・レポートなど、開発プロセスを簡素化するための機能が組み込まれています。

第1章に、キューブから分析データを抽出し、それらを多様なグラフやレポートの形式で表した高度なダッシュボードが図示されています。Oracle OLAPにより生成される豊富な分析データを表示するためのダッシュボードを、キューブから容易に作成できます。

Application Expressをまだ使用していない場合は、次のOracle Technology Networkのページから、ソフトウェア、チュートリアルおよびドキュメント一式をダウンロードできます。

http://www.oracle.com/technology/products/database/application_express

図6-7に、ProductとCustomerの表示リスト、および3つのディメンション列すべてにリンクを持つクロス集計を示します。新規のProductまたはCustomerを選択すると、関連する列には新たに、選択したキーの子が表示されます。いずれかの列のディメンション・キーをクリックすると、その子が表示されます。「リセット」ボタンを押すと、ページがリフレッシュされ、最初に選択したデータが表示されます。

図6-7 Application Expressのドリル可能なディメンション

Application ExpressのSalesレポート
「図6-7 Application Expressのドリル可能なディメンション」の説明

Application ExpressでのOLAPアプリケーションの作成

Application Expressでは、管理者が作成した作業領域で、Webアプリケーションの開発を行います。各アプリケーションは1つ以上のHTMLページで構成されており、各ページはその中の特定の場所を表す複数のリージョンで構成されています。また各リージョンは、レポート(クロス集計)やグラフなどいくつかの要素で構成されています。

Application ExpressはOracle Databaseで動作します。次元オブジェクトが別のデータベースに格納されている場合は、問合せの中にデータベース・リンクを使用する必要があります。次に示す手順は、作業領域が用意されており、かつ少なくとも1つのキューブにアクセスできることが前提となっています。作成するのは、クロス集計を表示する、1ページで構成されるアプリケーションです。

SQL問合せを基にしたWebページの作成手順

  1. ブラウザでApplication Expressのホーム・ページを開き、ログインします。

  2. アプリケーション・ビルダー」アイコンをクリックします。

    アプリケーション・ビルダーが表示されます。

  3. 作成」をクリックします。

    「アプリケーションの作成ウィザード」が表示されます。

  4. アプリケーションの作成」を選択し、さらに「次へ」を選択します。

  5. 「名前」ページで、アプリケーションのタイトル(Global Dashboardなど)を入力し、「最初から」を選択します。

  6. 「ページ」ページで、「レポート」ページ・タイプを選択した上で、次の手順に従ってページを定義します。

    1. 「ページ・ソース」で「SQL問合せ」を選択します。

    2. 「タイトル」に、Sales Analysisなどの名前を入力します。

      ページにはこのタイトルが表示されます。

    3. 「問合せ」には、例6-1と同じように、キューブに対するSQL SELECT文を入力します。ただし、ORDER BY句およびセミコロンは使用できません。

    4. ページの追加」をクリックします。

      「アプリケーションの作成」ボックスにページ定義が表示されます。

  7. 次へ」をクリックし、目的の操作を行った上で「アプリケーションの作成ウィザード」を終了します。

    この例で作成したアプリケーションには、タブ、共有コンポーネント、認証およびテーマ15(水色)は使用されていません。

  8. 「確認」ページで「作成」をクリックします。

  9. アプリケーション・ビルダーのホーム・ページで、「アプリケーションの実行」をクリックします。


ヒント:

このページでの操作を続行する場合は、画面下部にある「ページの編集 1」リンクをクリックします。

図6-8に、Application Expressに表示された問合せの結果を示します。ページには、ブレッドクラム、「検索」ボックス、「表示」リスト、「実行」ボタン、「リセット」ボタン、「スプレッドシート」リンクなどのアイテムが自動的に追加されます。このアプリケーションでは「リセット」ボタン以外は不要であるため、その他のアイテムは削除してもかまいません。

図6-8 Application Expressの基本的なSalesレポート

Application ExpressのSalesレポート
「図6-8 Application Expressの基本的なSalesレポート」の説明

ディメンション選択リストの追加

BI Publisherと同様、Application Expressでも、ディメンション・キーの選択リストを追加することにより、ディメンションでのドリル操作を行えるようにできます。ダッシュボードのユーザーは、リストから特定のアイテムを選択したり、ページ上のグラフィックやクロス集計に表示されているデータの選択内容を動的に変更したりすることが可能です。選択リストを実装するには、次の手順を実行します。

  • ページ上に、リストを表示するためのリージョンを新規に作成します。

  • 値リスト(LOV)を作成します。

  • LOVを表示するためのリスト・アイテムを、バインド変数を使用して作成します。

  • リストに対して無条件ブランチを作成します。

  • バインド変数が使用されるように問合せを編集します。

「ページ定義」では、ページの新規作成および既存ページの編集に加え、グラフィカル・アイテムの新規作成、編集も行えます。これらのアイテムは、「ページ・レンダリング」、「ページ・プロセス」、「共有コンポーネント」という3つの列に分類されます。

「ページ定義」を開く手順

アプリケーションを起動後、ページ下部にある「ページの編集」リンクをクリックします。

または

Application Expressのホーム・ページで、レポートが定義されるページのアイコンをクリックします。

図6-9に、「ページ定義」の一部を示します。

図6-9 Application Expressの「ページ定義」

Application Expressの「ページ定義」
「図6-9 Application Expressの「ページ定義」の説明

リージョンの作成

ページ上部のプレーンHTML領域に選択リストを作成できます。

空のHTMLリージョンの作成手順

  1. 「リージョン」にある「ページ定義」で、「作成」アイコンをクリックします。

    「リージョンの作成」ウィザードが表示されます。

  2. 「リージョン」ページで、「HTML」を選択し、「次へ」をクリックした後、再度「HTML」を選択します。

  3. 「表示属性」ページで、リストに対し、わかりやすいタイトルを入力して、適切なテンプレートおよびページ上の位置を選択します。

    この例では、名前はlov_region、テンプレートは「テンプレートなし」、位置は「ページ・テンプレート・ボディ (1. リージョン・コンテンツより下のアイテム)」です。名前は、レンダリングされたページ上に表示できますが、この例では非表示になっています。

  4. リージョンの作成」をクリックします。

    「リージョン」にある「ページ定義」に新規のリージョンが表示されます。

値リストの作成

値リストの場合は、ここで説明するようなSQL問合せを使用します。階層ビューからLONG_DESCRIPTION列およびDIM_KEY列を取り込みます。この問合せを実行すると、Customer Shipments階層に関するリストが作成されます。

SELECT long_description, dim_key
     FROM customer_shipments_view
     WHERE parent = 'TOTAL'
     OR dim_key= 'TOTAL'
     ORDER BY level_name, long_description;

LONG_DESCRIPTION     DIM_KEY
-------------------- ----------
Asia Pacific         APAC
Europe               EMEA
North America        AMER
Total Customer       TOTAL

値リストの作成手順

  1. 「LOV」にある「ページ定義」で、「作成」アイコンをクリックします。

    「LOVの作成」ウィザードが表示されます。

  2. 「ソース」ページで、「最初から」を選択します。

  3. 「名前およびタイプ」ページで、説明的な名前を入力し、「動的」を選択します。

    この例で使用する名前はCUSTOMER_LOVです。

  4. 「問合せ」ページで、前述したような問合せを入力します。ただし、セミコロンは使用できません。

  5. LOVの作成」をクリックします。

    「LOV」の「ページ定義」に新規のLOVが表示されます。

さらにLOVを作成する場合は、これらの手順を繰り返します。この例では、ProductおよびCustomerの各ディメンションに対するLOVを作成します。

選択リストの作成

選択リストの場合は、LOVを表示するためのリスト・アイテムを作成します。

リスト・アイテムの作成手順

  1. 「アイテム」にある「ページ定義」で、「作成」アイコンをクリックします。

    「アイテムの作成」ウィザードが表示されます。

  2. 「アイテム・タイプ」ページで、「選択リスト」を選択します。

  3. 「コントロール・タイプ」で、「送信機能付き選択リスト」を選択します。

  4. 「表示位置および名前」ページで次の操作を実行します。

    • ディメンションを識別するための名前(Customerバインド変数の名前に使用するP1_CUSTOMERなど)を入力します。P1はページ番号、CUSTOMERはCustomerディメンションを表します。

    • リストを配置するための新規のHTMLリージョンを選択します。

  5. 「LOV」ページで、次の設定を実行します。

    • 「名前付きLOV」を、このディメンションに対して作成したLOV(CUSTOMER_LOVなど)に設定します。

    • 「NULLオプションの表示」を「いいえ」に設定します。

  6. 目的にあわせて「アイテム」の属性を選択します。

  7. 「ソース」ページで、デフォルト値に対する最上位のディメンション・キーの名前を入力します。

    Global Customerディメンションの場合、この値はTOTALです。

  8. アイテムの作成」をクリックします。

その他のリストに対しても、この手順を繰り返します。この例では、ProductおよびCustomerの各ディメンションに対するリストを作成します。

リスト・アイテムをアクティブにする手順

  1. 「ブランチ」にある「ページ定義」で、「作成」アイコンをクリックします。

    「ブランチの編集」ウィザードが表示されます。

  2. 「ポイントおよびタイプ」ページではデフォルト設定をそのまま使用します。

  3. 「ターゲット」ページで、次の操作を実行します。

    • 「ターゲット」を「このアプリケーションのページ」に設定します。

    • 「ページ」を、リスト・アイテムを持つページ(この例では1)に設定します。

  4. 「ブランチ条件」ページでは、無条件ブランチを作成するデフォルト設定をそのまま使用します。

  5. 変更の適用」をクリックします。

    「ブランチの編集」ページが閉じ、「ページ定義」に戻ります。新規の無条件ブランチが「ブランチ」にリスト表示されます。

問合せの編集

次に示すのは、WHERE句の動的条件の書式です。

parent_column = NVL(:bind_variable, 'top dim_key')

NVL関数を使用すると、NULL値が、階層における最上位のディメンション・キーの名前に置換されます。最上位のディメンション・キーには、親キーはありません。

問合せの編集手順

  1. 「ページ定義」を開きます。

  2. 「リージョン」で、「リージョンの編集」リンクをクリックします。この例におけるリージョンの名前はSales Reportです。

    「リージョンの編集」ページが表示されます。

  3. 「ソース」で問合せを編集します。手順は次のとおりです。

    • バインド変数が使用されるようにWHERE句を変更します。

    • Application Expressにより追加された外部SELECT文を削除します。

  4. 変更の適用」をクリックします。

この例におけるWHERE句は、次のような形になっています。

WHERE p.parent = NVL(:P1_PRODUCT, 'TOTAL')
    AND cu.parent = NVL(:P1_CUSTOMER, 'TOTAL')
    AND t.parent = 'CY2006'
    AND ch.level_name = 'TOTAL'

図6-10は、ProductおよびCustomerの各選択リストが表示された修正済ページを示したものです。

図6-10 ドリル用の選択リストを持つダッシュボード

選択リストを持つダッシュボード
「図6-10 ドリル用の選択リストを持つダッシュボード」の説明

ディメンション列でのドリル操作

ユーザーが1回の問合せを行うだけで、階層の最上位からディテール・レベルにドリルダウンできるようにすることが可能です。Application Expressにドリル操作を実装するには、次の手順を実行します。

  • バインド変数を使用して非表示アイテムを作成します。

  • バインド変数が使用されるように問合せを編集します。

  • クロス集計のディメンション列にリンクを追加します。

この例では、表示されるディメンションすべてにドリル操作を実装します。

非表示アイテムの作成

Application Expressでは、バインド変数を与える様々なタイプのアイテムを作成できます。これらのアイテムには、特定の要素に関するセッション・ステートが格納されます。この場合は、親ディメンション・キーの現在の選択内容が格納されます。

ドリル操作をサポートするディメンションにはそれぞれ、バインド変数が必要です。この例の場合、ProductおよびCustomerにはすでに、リスト・アイテムとともに作成されたバインド変数が存在します。Timeは、レポートに表示されているディメンションのうち、唯一バインド変数がありません。Timeディメンション列のリンクがセッション・ステートを変更するためのユーザー・インタフェースとして使用されるため、Timeには他のグラフィカル・ユーザー・インタフェースは必要ありません。非表示アイテムはこのようなときに使用します。

非表示アイテムの作成手順

  1. 「ページ定義」を開きます。

  2. 「アイテム」で、「作成」アイコンをクリックします。

    「アイテムの作成」ウィザードが表示されます。

  3. 「アイテム・タイプ」ページで、「非表示」を選択します。

  4. 「表示位置および名前」ページで次の操作を実行します。

    • ディメンションを識別するための名前(Timeバインド変数の名前に使用するP1_TIMEなど)を入力します。

    • レポートを定義するリージョンを選択します。

  5. 「ソース」ページで、階層の最上位のディメンション・キーを入力します。

    Globalスキーマにおけるすべての階層の最上位はTOTALです。この例の場合、選択範囲を1年に制限するため「時間」はCY2006に設定されます。

  6. アイテムの作成」をクリックします。

  7. 列リンクでのみドリルをサポートするディメンションがその他にあれば、それらのディメンションに対してもこの手順を繰り返します。

    この例では、Timeに対して非表示アイテムが定義されます。

問合せの編集

列リンクをレポートに追加するには、SELECT文の2つの部分を変更する必要があります。

  • 選択リスト: Application Expressで管理されるのは、選択リストに表示される列のみです。列を表示するか非表示にするかは選択できます。列リンクを定義するには、階層ビューのDIM_KEY列およびPARENT列を問合せの選択リストに追加します。

  • WHERE句: 「問合せの編集」の中で選択リストに対して行ったのと同じ手順で、非表示アイテムに対するバインド変数を追加します。

例6-3に、修正したサンプルの問合せを示します。

例6-3 Application Expressにおける列リンク用の修正済問合せ

SELECT p.long_description "Product",
     cu.long_description "Customer",
     t.long_description "Time",
     ROUND(f.sales) "Sales",
     ROUND(f.sales_pp) "Prior Period",
     ROUND(f.sales_chg_pp) "Change",
     ROUND(f.sales_pctchg_pp * 100) "Percent Change",
/* Add DIM_KEY and PARENT columns for column links */
     p.dim_key product_key,
     p.parent product_parent,
     cu.dim_key customer_key,
     cu.parent customer_parent,
     t.dim_key time_key,
     t.parent time_parent
/* From dimension views and cube view */
FROM product_primary_view p,
     customer_shipments_view cu,
     time_calendar_view t,
     channel_primary_view ch,
     units_cube_view f
/* Use parent columns and bind variables for drilling */
WHERE p.parent = NVL(:P1_PRODUCT, 'TOTAL')
    AND cu.parent = NVL(:P1_CUSTOMER, 'TOTAL')
    AND t.parent = NVL(:P1_TIME, 'CY2006')
    AND ch.level_name = 'TOTAL'
/* Join dimension views to cube view */
    AND p.dim_key = f.product
    AND cu.dim_key = f.customer
    AND t.dim_key = f.time
    AND ch.dim_key = f.channel

ディメンション列へのリンクの追加

ダッシュボードのユーザーがクロス集計内のリンクされたディメンション列をクリックすると、バインド変数の値が変更され、それに伴ってクロス集計も変更されます。階層をドリルダウンした後、「リセット」ボタンを押すことにより、画面上のデータを元の選択状態に戻すことができます。これらの列リンクを実装するには、列リンクを追加し、「リセット」ボタンをアクティブにする必要があります。

ディメンション列にリンクを追加する手順

  1. 「ページ定義」を開きます。

  2. 「リージョン」で、「レポート」リンクをクリックします。

    「レポート属性」ページが表示されます。

  3. 「列属性」で、レポート表示を修正します。手順は次のとおりです。

    • 非表示にする列(DIM_KEY列やPARENT列など)の「表示」チェック・ボックスを選択解除します。

    • レポートに対して目的のソートを行うため、「ソート」チェック・ボックスおよび「ソート順序」チェック・ボックスを選択します。この例におけるソート順序は、Product(1)、Customer(2)、Time(3)です。

  4. ディメンション列の「編集」アイコンをクリックします。

    「列属性」ページが表示されます。

  5. 「列リンク」で、リンクを定義します。手順は次のとおりです。

    • 「リンク・テキスト」: ディメンションの名前を選択します。

    • 「ページ」: ページ番号を入力します。

    • 「名前」: レポートに表示される順序でディメンションをリスト表示します。「アイテム」はバインド変数の名前です。また「」は、定義されているディメンションのDIM_KEY列またはその他のディメンションのPARENT列です。

    図6-11に、Timeディメンションのリンク定義を示します。

  6. 変更の適用」をクリックします。

    「列属性」ページが閉じ、「レポート属性」ページに戻ります。

  7. その他のディメンション列のリンクを定義します。

  8. 変更の適用」をクリックします。

    「レポート属性」ページが閉じ、「ページ定義」に戻ります。

図6-11 Timeリンクの定義

列リンクの定義
「図6-11 Timeリンクの定義」の説明

「リセット」ボタンをアクティブにする手順

  1. 「ページ定義」を開きます。

  2. 「ブランチ」で、「ページに移動 条件付き」リンクをクリックします。

    ページ上には、条件付きブランチに伴って、「リセット」ボタンが自動的に作成されています。「ブランチの編集」ページが表示されます。

  3. 「アクション」で、「キャッシュのクリア」の値をページ番号に設定します(この例では1)。

  4. 「条件」で、「対象ボタン」を「リセット」に設定します。

  5. 変更の適用」をクリックします。

    「ブランチの編集」ページが閉じ、「ページ定義」に戻ります。

  6. 実行」をクリックしてページを表示します。

図6-12に、2006年第3四半期の月を表示した、処理が完了したページを示します。このアプリケーションでの操作を続行して、他のレポートやグラフをページに追加することもできます。これらのレポートやグラフにデータを供給するSQL問合せには、ディメンションのバインド変数をそのまま使用できます。

図6-12 Application Expressの列リンクを持つSales Analysisレポート

Application Expressのディメンション・リスト
「図6-12 Application Expressの列リンクを持つSales Analysisレポート」の説明