積上げ棒グラフには、複数の問合せの結果が重なって(縦または横のいずれかに)積み上げられて表示されます。積上げ棒グラフは、各棒のセグメントで表されるデータ・ポイントの絶対値、および棒に積み上げられた各シリーズのデータ・ポイントで表される合計値を示す場合に使用すると有効です。
アプリケーション・ビルダーには、HTML、Scalable Vector Graphics(SVG)およびFlashチャートを生成するための組込みウィザードが含まれますが、積上げ棒グラフがサポートされているのはSVGおよびFlashチャートのみです。
このチュートリアルでは、Flash積上げ棒グラフの作成方法を説明します。チュートリアルを始める前に、必要なサンプル・データベース・オブジェクトにアクセスできるように、OEHR Sample Objectsアプリケーションをインポートしてインストールする必要があります。詳細は、「サンプル・オブジェクトのロード方法の概要」を参照してください。
この項には、次の項目が含まれます。
関連項目: 『Oracle Database Application Expressユーザーズ・ガイド』の「チャートの作成」 |
このトピックおよび関連トピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。
Oracle Application Express 3.1での追加の新機能の使用
http://www.oracle.com/technology/obe/apex/apex31nf/apex31misc.htm
既存のアプリケーションへのコンポーネントの追加
http://www.oracle.com/technology/obe/hol08/apexintro/apex3.1.1_c/apex3.1.1_c_otn.htm
チャートのSELECT構文は次のとおりです。
SELECT link, label, value FROM ...
各要素の意味は次のとおりです。
link
はURLです。結果として生成されたチャートでユーザーがここをクリックすると、このURLがコールされます。
label
はバー内に表示されるテキストです。
value
はバーのサイズを定義する数値列です。
SELECT構文には、3つすべてのアイテムを指定する必要があります。次の例では、該当するリンク先ページがないため、リンクはNULLと定義されます。
次に例を示します。
SELECT null link, last_name label, salary value FROM employees WHERE DEPARTMENT_ID = :P101_DEPARTMENT_ID
関連項目: 『Oracle Database Application Expressユーザーズ・ガイド』の「チャートの作成」 |
最初に、「アプリケーションの作成」ウィザードを使用してアプリケーションを作成します。
「アプリケーションの作成」ウィザードでアプリケーションを作成するには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
「アプリケーション・ビルダー」ホームページが表示されます。
「作成」をクリックします。
「アプリケーションの作成」を選択して「次へ」をクリックします。
「名前」で、次のステップを実行します。
「名前」に、Bar Chart
と入力します。
「アプリケーション」で、デフォルトを受け入れます。
「アプリケーションの作成」で、「最初から」を選択します。
「スキーマ」で、OEHR Sample Objectsをインストールしたスキーマを選択します。
「次へ」をクリックします。
次に、ページを追加する必要があります。ここでは、空白ページ、レポート、フォーム、表形式フォームまたはレポートおよびフォームを追加できます。この演習では、空白ページを1枚追加します。
次のステップで空白ページを追加します。
「ページ・タイプの選択」で「空白」を選択し、「ページの追加」をクリックします。
ページ上部のリストに、新しいページが表示されます。
「次へ」をクリックします。
「タブ」で、デフォルトの「1レベルのタブ」を受け入れて「次へ」をクリックします。
「別のアプリケーションから共有コンポーネントのコピー」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。
「属性」で、「認証スキーム」、「言語」、「ユーザー言語プリファレンスの派生元」にデフォルトを受け入れて、「次へ」をクリックします。
「ユーザー・インタフェース」で、「テーマ2」を選択して「次へ」をクリックします。
選択内容を確認して、「作成」をクリックします。
「アプリケーション」ホームページが表示されます。
チャートを作成する場合は、リージョンを既存のページに追加して積上げ棒グラフとして定義するか、または新しいページを作成することができます。この演習では、作成した「Bar Chart」アプリケーション内に新しいページを作成します。
このチャートには、売上に対する製品カテゴリの合計が表示されます。先月以前の過去12か月の売上が含まれます。次の演習では、ウィザードを使用してチャートおよび1つ目の問合せを作成します。その後、他の製品カテゴリへの問合せ(またはシリーズ)を追加して積み上げます。
新しいページを作成するには、次のステップを実行します。
「アプリケーション」ホームページで、「ページの作成」をクリックします。
「ページ」で、「チャート」を選択して「次へ」をクリックします。
「Flashチャート」を選択し、「次へ」をクリックします。
「ページ属性」で、次のステップを実行します。
「ページ番号」に、2
と入力します。
「ページ名」に、Revenue by Category
と入力します。
「リージョン・テンプレート」で、デフォルトを受け入れます。
「リージョン名」に、Revenue by Category
と入力します。
「ブレッドクラム」で、デフォルトを受け入れます。
「次へ」をクリックします。
「タブ・オプション」で、デフォルトの「タブを使用しない」を受け入れて「次へ」をクリックします。
「チャート・プレビュー」が表示されます。「チャート・プレビュー」を使用して、チャート属性を構成します。「更新」をクリックすると、プレビューのイメージがリフレッシュされます。
「チャート・プレビュー」で、次の項目を指定します。
「チャート・タイプ」で、「Stacked 3D Column」を選択します。
「凡例の表示」で、「右」を選択します。
「更新」をクリックします。
プレビューが変更されます。
「次へ」をクリックします。
「問合せ」で、次のステップを実行します。
次の問合せを入力します。
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
)が積上げグラフの凡例に表示されます。
ヒント: 「問合せの作成」をクリックすると、対話形式でチャート問合せを作成できます。 |
「データが見つからなかった場合のメッセージ」に、次のように入力します。
No orders found in the past 12 months.
「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
「成功」ページが表示されます。
問合せを定義するリージョンが指定されたページを作成したので、次はシリーズを追加する必要があります。次の演習では、ソフトウェアおよび事務用品のカテゴリにシリーズを追加します。
シリーズを追加するには、次のステップを実行します。
「成功」ページで、「ページの編集」をクリックします。
ページ2のページ定義が表示されます。
「リージョン」で、「Revenue by Category」の横にある「Flashチャート」をクリックします。
「チャート属性」タブが選択された状態で「Flashチャート」ページが表示されます。「チャート・シリーズ」までスクロールします。1つのシリーズのみが表示されていることを確認します。
既存のシリーズの名前を変更するには、次のステップを実行します。
「編集」アイコンをクリックします。
「シリーズ名」に、Hardware
と入力します。
「変更の適用」をクリックします。
ソフトウェアのチャート・シリーズを追加します。
「チャート・シリーズ」にスクロールして、「シリーズの追加」をクリックします。
「シリーズ名」に、Software
と入力します。
「シリーズ問合せ」までスクロールします。
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
句内のカテゴリです。
「データが見つからなかった場合のメッセージ」に、次のように入力します。
No orders found in the past 12 months.
ページ上部の「変更の適用」をクリックします。
事務用品のチャート・シリーズを追加します。
「チャート・シリーズ」で、「シリーズの追加」をクリックします。
「シリーズ名」に、Office Equipment
と入力します。
「シリーズ問合せ」までスクロールします。
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
)が積上げグラフの凡例に表示されます。
「データが見つからなかった場合のメッセージ」に、次のように入力します。
No orders found in the past 12 months.
ページ上部までスクロールして「変更の適用」をクリックします。
OEHR Sample Objectsアプリケーションとともにインストールされたサンプル・データは、最新ではありません。データを最新にするには、サンプル・データの日付を更新する必要があります。これは、SQLコマンドで更新文を実行して行います。
関連項目: 『Oracle Database Application Expressユーザーズ・ガイド』の「SQLコマンドの使用」 |
シード・データの日付を更新するには、次のステップを実行します。
「ワークスペース」ホームページに戻ります。ページ上部の「ホーム」ブレッドクラム・リンクをクリックします。
「ワークスペース」ホームページで「SQLワークショップ」をクリックして、「SQLコマンド」をクリックします。
「SQLコマンド」ページが表示されます。
「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; /
「実行」(Ctrl+Enter)をクリックしてコマンドを実行します。
完成したチャートは、表示できます。
チャートを実行するには、次のステップを実行します。
次の手順を実行して、ページ2「Revenue by Category」に戻ります。
ページ上部の「ホーム」ブレッドクラム・リンクをクリックします。
「アプリケーション・ビルダー」をクリックし、演習で作成した「Bar Chart」アプリケーションをクリックします。
「2 - Revenue by Category」をクリックします。
ページの右上にある「ページの実行」アイコンをクリックします。
ユーザー名およびパスワードを入力するように要求されたら、ワークスペースのユーザー名およびパスワードを入力して、「ログイン」をクリックします。詳細は、「アプリケーション認証の概要」を参照してください。
図8-1のような棒グラフが表示されます。
このチャートには、各製品カテゴリの月ごとの収益が表示されています。ページ上部に、各製品と対応する色を定義する説明が表示されています。X軸のテキストの間隔が狭いことに注意してください。次の項では、チャート属性を編集してこの問題を修正します。
この演習では、チャート属性を編集して、チャートの外観を変更します。
チャート属性を編集するには、次のステップを実行します。
「開発者」ツールバーで「ページの編集2」をクリックします。
「リージョン」で、「Flashチャート」をクリックします。
「チャート属性」ページが表示されます。
「チャート設定」で、チャート幅を編集します。「チャート幅」に、800と入力します。
「表示設定」までスクロールします。「アニメーション」で、「ディゾルブ」を選択します。
「軸の設定」までスクロールします。「グループ・セパレータの表示」で、「はい」を選択します。
「フォント設定」までスクロールします。「X軸のタイトル」で、「フォント・サイズ」に「10」を選択します。
ページの上部の「変更の適用」をクリックします。
ページの右上にある「ページの実行」アイコンをクリックします。
図8-2のようなチャートが表示されます。
画面上にディゾルブを使用したチャートが次々に表示されます。X軸が適切に表示されていることを確認します。