ヘッダーをスキップ
Oracle Database Application Expressアドバンスト・チュートリアル
リリース3.0
E05693-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

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

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

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

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

内容は次のとおりです。

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

チャートの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軸が適切に表示されていることを確認します。