ヘッダーをスキップ
Oracle® Application Expressアドバンスト・チュートリアル
リリース3.2
B53796-03
  目次へ移動
目次

前
 
次
 

8 積上げ棒グラフの作成方法

積上げ棒グラフには、複数の問合せの結果が重なって(縦または横のいずれかに)積み上げられて表示されます。積上げ棒グラフは、各棒のセグメントで表されるデータ・ポイントの絶対値、および棒に積み上げられた各シリーズのデータ・ポイントで表される合計値を示す場合に使用すると有効です。

アプリケーション・ビルダーには、HTML、Scalable Vector Graphics(SVG)およびFlashチャートを生成するための組込みウィザードが含まれますが、積上げ棒グラフがサポートされているのはSVGおよびFlashチャートのみです。

このチュートリアルでは、Flash積上げ棒グラフの作成方法を説明します。チュートリアルを始める前に、必要なサンプル・データベース・オブジェクトにアクセスできるように、OEHR Sample Objectsアプリケーションをインポートしてインストールする必要があります。詳細は、「サンプル・オブジェクトのロード方法の概要」を参照してください。

この項には、次の項目が含まれます。

このトピックおよび関連トピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。

チャートの問合せを作成するための構文

チャートのSELECT構文は次のとおりです。

SELECT link, label, value
FROM   ...

各要素の意味は次のとおりです。

SELECT構文には、3つすべてのアイテムを指定する必要があります。次の例では、該当するリンク先ページがないため、リンクはNULLと定義されます。

次に例を示します。

SELECT null link, 
       last_name label,
       salary value
FROM   employees
WHERE  DEPARTMENT_ID = :P101_DEPARTMENT_ID 

関連項目:

『Oracle Database Application Expressユーザーズ・ガイド』の「チャートの作成」

アプリケーションの作成

最初に、「アプリケーションの作成」ウィザードを使用してアプリケーションを作成します。

「アプリケーションの作成」ウィザードでアプリケーションを作成するには、次のステップを実行します。

  1. 「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    「アプリケーション・ビルダー」ホームページが表示されます。

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

  3. アプリケーションの作成」を選択して「次へ」をクリックします。

  4. 「名前」で、次のステップを実行します。

    1. 「名前」に、Bar Chartと入力します。

    2. 「アプリケーション」で、デフォルトを受け入れます。

    3. 「アプリケーションの作成」で、「最初から」を選択します。

    4. 「スキーマ」で、OEHR Sample Objectsをインストールしたスキーマを選択します。

    5. 次へ」をクリックします。

      次に、ページを追加する必要があります。ここでは、空白ページ、レポート、フォーム、表形式フォームまたはレポートおよびフォームを追加できます。この演習では、空白ページを1枚追加します。

  5. 次のステップで空白ページを追加します。

    1. 「ページ・タイプの選択」で「空白」を選択し、「ページの追加」をクリックします。

      ページ上部のリストに、新しいページが表示されます。

    2. 次へ」をクリックします。

  6. 「タブ」で、デフォルトの「1レベルのタブ」を受け入れて「次へ」をクリックします。

  7. 「別のアプリケーションから共有コンポーネントのコピー」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。

  8. 「属性」で、「認証スキーム」、「言語」、「ユーザー言語プリファレンスの派生元」にデフォルトを受け入れて、「次へ」をクリックします。

  9. 「ユーザー・インタフェース」で、「テーマ2」を選択して「次へ」をクリックします。

  10. 選択内容を確認して、「作成」をクリックします。

    「アプリケーション」ホームページが表示されます。

新しいページの作成

チャートを作成する場合は、リージョンを既存のページに追加して積上げ棒グラフとして定義するか、または新しいページを作成することができます。この演習では、作成した「Bar Chart」アプリケーション内に新しいページを作成します。

このチャートには、売上に対する製品カテゴリの合計が表示されます。先月以前の過去12か月の売上が含まれます。次の演習では、ウィザードを使用してチャートおよび1つ目の問合せを作成します。その後、他の製品カテゴリへの問合せ(またはシリーズ)を追加して積み上げます。

新しいページを作成するには、次のステップを実行します。

  1. 「アプリケーション」ホームページで、「ページの作成」をクリックします。

  2. 「ページ」で、「チャート」を選択して「次へ」をクリックします。

  3. 「Flashチャート」を選択し、「次へ」をクリックします。

  4. 「ページ属性」で、次のステップを実行します。

    1. 「ページ番号」に、2と入力します。

    2. 「ページ名」に、Revenue by Categoryと入力します。

    3. 「リージョン・テンプレート」で、デフォルトを受け入れます。

    4. 「リージョン名」に、Revenue by Categoryと入力します。

    5. 「ブレッドクラム」で、デフォルトを受け入れます。

    6. 次へ」をクリックします。

  5. 「タブ・オプション」で、デフォルトの「タブを使用しない」を受け入れて「次へ」をクリックします。

    「チャート・プレビュー」が表示されます。「チャート・プレビュー」を使用して、チャート属性を構成します。「更新」をクリックすると、プレビューのイメージがリフレッシュされます。

  6. 「チャート・プレビュー」で、次の項目を指定します。

    1. 「チャート・タイプ」で、「Stacked 3D Column」を選択します。

    2. 「凡例の表示」で、「」を選択します。

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

      プレビューが変更されます。

    4. 次へ」をクリックします。

  7. 「問合せ」で、次のステップを実行します。

    1. 次の問合せを入力します。

      SELECT NULL link,
             sales_month value,
             revenue "Hardware"
         FROM (
      SELECT TO_CHAR(o.order_date,'Mon YY') sales_month,
             SUM(oi.quantity * oi.unit_price) revenue,
             TO_DATE(to_char(o.order_date,'Mon YY'),'Mon YY') sales_month_order
        FROM OEHR_PRODUCT_INFORMATION p,
             OEHR_ORDER_ITEMS oi,
             OEHR_ORDERS o,
             OEHR_CATEGORIES_TAB ct
       WHERE o.order_date <= (trunc(sysdate,'MON')-1)
         AND o.order_date > (trunc(sysdate-365,'MON'))
         AND o.order_id = oi.order_id
         AND oi.product_id = p.product_id
         AND p.category_id = ct.category_id
         AND ct.category_name like '%hardware%'
      GROUP BY TO_CHAR(o.order_date,'Mon YY')
      ORDER BY sales_month_order
      )
      

      値のラベル(この例では、Hardware)が積上げグラフの凡例に表示されます。


      ヒント:

      問合せの作成」をクリックすると、対話形式でチャート問合せを作成できます。

    2. 「データが見つからなかった場合のメッセージ」に、次のように入力します。

      No orders found in the past 12 months.
      
    3. 次へ」をクリックします。

  8. 選択内容を確認して、「終了」をクリックします。

    「成功」ページが表示されます。

シリーズの追加

問合せを定義するリージョンが指定されたページを作成したので、次はシリーズを追加する必要があります。次の演習では、ソフトウェアおよび事務用品のカテゴリにシリーズを追加します。

シリーズを追加するには、次のステップを実行します。

  1. 「成功」ページで、「ページの編集」をクリックします。

    ページ2のページ定義が表示されます。

  2. 「リージョン」で、「Revenue by Category」の横にある「Flashチャート」をクリックします。

    「チャート属性」タブが選択された状態で「Flashチャート」ページが表示されます。「チャート・シリーズ」までスクロールします。1つのシリーズのみが表示されていることを確認します。

  3. 既存のシリーズの名前を変更するには、次のステップを実行します。

    1. 「編集」アイコンをクリックします。

    2. 「シリーズ名」に、Hardwareと入力します。

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

  4. ソフトウェアのチャート・シリーズを追加します。

    1. 「チャート・シリーズ」にスクロールして、「シリーズの追加」をクリックします。

    2. 「シリーズ名」に、Softwareと入力します。

    3. 「シリーズ問合せ」までスクロールします。

    4. SQLで、次のように入力します。

      SELECT NULL link,
             sales_month value,
             revenue "Software"
         FROM (
      SELECT TO_CHAR(o.order_date,'Mon YY') sales_month,
             SUM(oi.quantity * oi.unit_price) revenue,
             TO_DATE(to_char(o.order_date,'Mon YY'),'Mon YY') sales_month_order
        FROM OEHR_PRODUCT_INFORMATION p,
             OEHR_ORDER_ITEMS oi,
             OEHR_ORDERS o,
             OEHR_CATEGORIES_TAB ct
       WHERE o.order_date <= (trunc(sysdate,'MON')-1)
         AND o.order_date > (trunc(sysdate-365,'MON'))
         AND o.order_id = oi.order_id
         AND oi.product_id = p.product_id
         AND p.category_id = ct.category_id
         AND ct.category_name like '%software%'
      GROUP BY TO_CHAR(o.order_date,'Mon YY')
      ORDER BY sales_month_order
      )
      

      値のラベル(この例では、Software)が積上げグラフの凡例に表示されます。このSQLが以前のシリーズと一致するようにしてください。唯一の違いは、WHERE句内のカテゴリです。

    5. 「データが見つからなかった場合のメッセージ」に、次のように入力します。

      No orders found in the past 12 months.
      
    6. ページ上部の「変更の適用」をクリックします。

  5. 事務用品のチャート・シリーズを追加します。

    1. 「チャート・シリーズ」で、「シリーズの追加」をクリックします。

    2. 「シリーズ名」に、Office Equipmentと入力します。

    3. 「シリーズ問合せ」までスクロールします。

    4. SQLで、次のように入力します。

      SELECT NULL link,
             sales_month value,
             revenue "Office Equipment"
         FROM (
      SELECT TO_CHAR(o.order_date,'Mon YY') sales_month,
             SUM(oi.quantity * oi.unit_price) revenue,
             TO_DATE(to_char(o.order_date,'Mon YY'),'Mon YY') sales_month_order
        FROM OEHR_PRODUCT_INFORMATION p,
             OEHR_ORDER_ITEMS oi,
             OEHR_ORDERS o,
             OEHR_CATEGORIES_TAB ct
       WHERE o.order_date <= (trunc(sysdate,'MON')-1)
         AND o.order_date > (trunc(sysdate-365,'MON'))
         AND o.order_id = oi.order_id
         AND oi.product_id = p.product_id
         AND p.category_id = ct.category_id
         AND ct.category_name like '%office%'
      GROUP BY TO_CHAR(o.order_date,'Mon YY')
      ORDER BY sales_month_order
      )
      

      値のラベル(この例では、Office Equipment)が積上げグラフの凡例に表示されます。

    5. 「データが見つからなかった場合のメッセージ」に、次のように入力します。

      No orders found in the past 12 months.
      
    6. ページ上部までスクロールして「変更の適用」をクリックします。

サンプル・データの更新

OEHR Sample Objectsアプリケーションとともにインストールされたサンプル・データは、最新ではありません。データを最新にするには、サンプル・データの日付を更新する必要があります。これは、SQLコマンドで更新文を実行して行います。


関連項目:

『Oracle Database Application Expressユーザーズ・ガイド』の「SQLコマンドの使用」

シード・データの日付を更新するには、次のステップを実行します。

  1. 「ワークスペース」ホームページに戻ります。ページ上部の「ホーム」ブレッドクラム・リンクをクリックします。

  2. 「ワークスペース」ホームページで「SQLワークショップ」をクリックして、「SQLコマンド」をクリックします。

    「SQLコマンド」ページが表示されます。

  3. 「SQLエディタ」ペインに、次のように入力します。

    DECLARE
       l_date_offset  number;
    BEGIN
    
    FOR c1 IN (SELECT TRUNC(max(order_date)) max_date
                 FROM oehr_orders)
    LOOP
       l_date_offset := round(sysdate - c1.max_date);
    END LOOP;
    UPDATE oehr_orders
       set order_date = order_date + l_date_offset;
    COMMIT;
    END;
    /
    
  4. 実行」(Ctrl+Enter)をクリックしてコマンドを実行します。

チャートの表示

完成したチャートは、表示できます。

チャートを実行するには、次のステップを実行します。

  1. 次の手順を実行して、ページ2「Revenue by Category」に戻ります。

    1. ページ上部の「ホーム」ブレッドクラム・リンクをクリックします。

    2. アプリケーション・ビルダー」をクリックし、演習で作成した「Bar Chart」アプリケーションをクリックします。

    3. 2 - Revenue by Category」をクリックします。

  2. ページの右上にある「ページの実行」アイコンをクリックします。

  3. ユーザー名およびパスワードを入力するように要求されたら、ワークスペースのユーザー名およびパスワードを入力して、「ログイン」をクリックします。詳細は、「アプリケーション認証の概要」を参照してください。

    図8-1のような棒グラフが表示されます。

    図8-1 「Revenue by Category」積上げ棒グラフ

    図8-1の説明が続きます。
    「図8-1「Revenue by Category」積上げ棒グラフ」の説明

    このチャートには、各製品カテゴリの月ごとの収益が表示されています。ページ上部に、各製品と対応する色を定義する説明が表示されています。X軸のテキストの間隔が狭いことに注意してください。次の項では、チャート属性を編集してこの問題を修正します。

チャート属性の編集

この演習では、チャート属性を編集して、チャートの外観を変更します。

チャート属性を編集するには、次のステップを実行します。

  1. 「開発者」ツールバーで「ページの編集2」をクリックします。

  2. 「リージョン」で、「Flashチャート」をクリックします。

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

  3. 「チャート設定」で、チャート幅を編集します。「チャート幅」に、800と入力します。

  4. 「表示設定」までスクロールします。「アニメーション」で、「ディゾルブ」を選択します。

  5. 「軸の設定」までスクロールします。「グループ・セパレータの表示」で、「はい」を選択します。

  6. 「フォント設定」までスクロールします。「X軸のタイトル」で、「フォント・サイズ」に「10」を選択します。

  7. ページの上部の「変更の適用」をクリックします。

  8. ページの右上にある「ページの実行」アイコンをクリックします。

    図8-2のようなチャートが表示されます。

    図8-2 更新された積上げ棒グラフ

    図8-2の説明が続きます。
    「図8-2 更新された積上げ棒グラフ」の説明

    画面上にディゾルブを使用したチャートが次々に表示されます。X軸が適切に表示されていることを確認します。