このチュートリアルでは、対話モード・レポートの高度な手法を特に活用したアプリケーションを作成します。
この項で説明する手順は次のとおりです。
他の表のデータを含める目的でのレポートの拡張
ホームページから対話モード・レポートへのナビゲーション・リンクの追加
対話モード・レポートから他のレポートへの列リンクの作成
対話モード・レポートから他のレポートへの列値の受渡し
対話モード・レポートに対する列値の問合せ
このチュートリアルの内容は次のとおりです。
この項では、データベース・オブジェクトの作成、オブジェクトへのサンプル・データのロードおよび基本アプリケーションの作成を行います。「アプリケーションの作成」ウィザードを使用して、「Home」ページおよび「Issues」レポート・ページを含むアプリケーションを構築します。「Issues」レポート・ページを使用すると、IT_ISSUES表に格納されている問題を表示できます。
この項の内容は次のとおりです。
アプリケーションの作成を開始する前に、該当するサンプル・オブジェクトをワークスペース内に作成し、作成したオブジェクトにデモンストレーション・データをロードする必要があります。
Issue Trackerサンプル・オブジェクトをインストールするには、次のステップを実行します。
Issue Trackerデータ・オブジェクトを作成します。「データベース・オブジェクトを作成するためのスクリプトの作成および実行」の手順に従ってください。
オブジェクトにデモンストレーション・データをロードします。「デモンストレーション・データのロード」の手順に従ってください。
これらのサンプル・オブジェクトは、Issue Trackerアプリケーション・オブジェクトのコピーです。Issue Trackerアプリケーションの詳細は、第14章「問題追跡アプリケーションの設計方法」および第15章「問題追跡アプリケーションの作成およびデプロイ方法」を参照してください。
ここで、「アプリケーションの作成」ウィザードを使用してアプリケーションを作成します。
「Home」ページおよび「Issues」レポート・ページを含むアプリケーションを作成するには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
「作成」をクリックします。
「方法」で、「アプリケーションの作成」を選択して「次へ」をクリックします。
「名前」で、次の変更を行います。
「名前」に、Advanced Reports
と入力します。
「アプリケーションの作成」で、「最初から」を選択します。
「スキーマ」で、ロードしたITデータ・オブジェクトが含まれているスキーマを選択します。
「次へ」をクリックします。
「ページの追加」で、次の変更を行います。
「ページ・タイプの選択」で、「空白」を選択します。
「ページ名」に、Home
と入力します。
「ページの追加」をクリックします。
「ページの追加」で、次の変更を行います。
「ページ・タイプの選択」で、「レポート」を選択します。
「ページに従属」で、「ホーム (1)」を選択します。
「ページ・ソース」で、「表」を選択します。
「表名」で、「IT_ISSUES」を選択します。
「実装」で、「対話モード」を選択します。
「ページの追加」をクリックします。
「アプリケーションの作成」で、「It_Issues」リンクをクリックします。
「新しいページ定義」ウィンドウが表示されます。
「ページ定義」で、「ページ名」にIssues
と入力します。
「レポート列」の下で、次の各列の「表示」について「いいえ」を選択し、「変更の適用」をクリックします。
ISSUE_DESCRIPTION
TARGET_RESOLUTION_DATE
PROGRESS
ACTUAL_RESOLUTION_DATE
RESOLUTION_SUMMARY
CRETATED_ON
CREATED_BY
MODIFIED_ON
MODIFIED_BY
「次へ」をクリックします。
「タブ」で、「タブなし」を選択して「次へ」をクリックします。
「共有コンポーネント」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。
「属性」で、すべてのデフォルト値を受け入れて「次へ」をクリックします。
「ユーザー・インタフェース」で、「テーマ20」を選択して「次へ」をクリックします。
アプリケーションの属性を確認して、「作成」をクリックします。
ここで、Advanced Reportsアプリケーションを実行して、「Home」ページ、「Issues」レポート・ページおよび「単一行ビュー」を表示します。
アプリケーションを実行するには、次のステップを実行します。
「アプリケーションの実行」アイコンをクリックします。
プロンプトが表示されたら、ワークスペースのユーザー名およびパスワードを入力して、「ログイン」をクリックします。
この認証は、新しく作成したアプリケーションのデフォルトのセキュリティの一部です。詳細は、「アプリケーション認証の概要」を参照してください。
図4-1に示すように、「Home」ページが表示されます。
「Issues」リンクをクリックします。
図4-2「初期「Issues」レポート」に示すように、「Issues」レポート・ページが表示されます。
図4-3「「単一行ビュー」アイコン」に示すように、Issue Id 1の「リンク列」アイコンを特定します。
Issue Id 1の「リンク列」アイコンをクリックします。
図4-4「1つ目の問題の「単一行ビュー」」に示すように、1つ目の問題の「単一行ビュー」が表示されます。
「アプリケーションの作成」ウィザードによって、「単一行ビュー」を表示する「Issues」対話モード・レポートの「リンク列」が構成されました。これは、ウィザードで「レポート」ページ・タイプを作成する場合のデフォルトです。
ページ下部にある「開発者」ツールバーで「アプリケーションID」リンクをクリックして、「アプリケーション」ホームページに戻ります。
「アプリケーションの作成」ウィザードによって「ログイン」ページも作成されていることに注意してください。
この項では、ユーザーIDおよびプロジェクトIDを含む列を、実際の名前値を含む列で置き換えます。IT_ISSUES表にはユーザー名またはプロジェクト名が含まれないため、その情報を含む表に結合されるよう問合せが変更されます。問合せを変更したら、ページを実行し、「列の選択」アクションを使用して表示する名前値列を追加します。
この項の内容は次のとおりです。
「Issues」レポートでは、4つの列で、ユーザー名およびプロジェクト名ではなくIDが表示されています。この項では、「Issues Id」列を除く3つの列を、実際のユーザー名およびプロジェクト名を含む列に置き換えます。
これを実行するには、IT_PEOPLE表とIT_PROJECTS表の結合を含むよう問合せを編集します。IDの列は、次に示す名前値列で置き換えます。
Identified By Person Id
は、Identified By
で置き換えます。
Related Project Id
は、Project Name
で置き換えます。
Assigned to Person Id
は、Assigned To
で置き換えます。
SQL問合せを変更するには、次のステップを実行します。
「2 - Issues」ページを選択します。
「リージョン」で、「Issues」を選択します。
「ソース」までスクロールして、「リージョン・ソース」を次のSQLで置き換えます。
SELECT "IT_ISSUES"."ISSUE_SUMMARY" as "ISSUE_SUMMARY", "IT_PEOPLE"."PERSON_NAME" as "IDENTIFIED_BY", "IT_ISSUES"."IDENTIFIED_DATE" as "IDENTIFIED_DATE", "IT_PROJECTS"."PROJECT_NAME" as "PROJECT_NAME", decode("IT_PEOPLE_1"."PERSON_NAME",NULL,'Unassigned', "IT_PEOPLE_1"."PERSON_NAME") as "ASSIGNED_TO", "IT_ISSUES"."STATUS" as "STATUS", "IT_ISSUES"."PRIORITY" as "PRIORITY", "IT_ISSUES"."TARGET_RESOLUTION_DATE" as "TARGET_RESOLUTION_DATE", "IT_ISSUES"."PROGRESS" as "PROGRESS", "IT_ISSUES"."ACTUAL_RESOLUTION_DATE" as "ACTUAL_RESOLUTION_DATE", "IT_ISSUES"."ISSUE_ID" as "ISSUE_ID", "IT_ISSUES"."RELATED_PROJECT_ID" as "PROJECT_ID" FROM "IT_PEOPLE" "IT_PEOPLE_1", "IT_PROJECTS" "IT_PROJECTS", "IT_PEOPLE" "IT_PEOPLE", "IT_ISSUES" "IT_ISSUES" WHERE "IT_ISSUES"."IDENTIFIED_BY_PERSON_ID"="IT_PEOPLE"."PERSON_ID" AND "IT_ISSUES"."ASSIGNED_TO_PERSON_ID"="IT_PEOPLE_1"."PERSON_ID"(+) AND "IT_ISSUES"."RELATED_PROJECT_ID"="IT_PROJECTS"."PROJECT_ID"
「変更の適用」をクリックします。
「変更の適用」をクリックして、確定します。
次に、「Issues」対話モード・レポート・ページを実行し、「列の選択」アクションを使用して表示する3つの名前値列を追加します。
表示する列を追加するには、次のステップを実行します。
ページの右上の角にあるページの実行2アイコンをクリックします。
図4-5に示すように、「実行」ボタンの右にある「アクション」メニューをクリックします。
「列の選択」アクションを選択します。
図4-6のようにページが表示されます。
「表示しない」ボックスで「Identified By」を強調表示して、「移動」アイコン(>)をクリックします。
「Project Name」および「Assigned To」に対して、前述のステップを繰り返します。
「表示しない」ボックスには、「Project Id」列のみが残ります。他のすべての列は、「レポートに表示」リストに表示されます。
「列の選択」領域の右下にある「適用」をクリックします。
「Issues」ページが図4-7のように表示されます。
「Dashboard」では、重要な問題追跡の統計の簡単なスナップショットが提供されます。「Dashboard」に表示されるリージョンは、次のとおりです。
「Overdue Issues」レポート
「Open Issues by Project」円グラフ
この項のステップを完了すると、図4-8「Dashboard」のような「Dashboard」ページがアプリケーションに含まれます。
この項の内容は次のとおりです。
最初に、アプリケーションに空白ページを追加して、「Dashboard」という名前を付けます。
「Dashboard」ページを追加するには、次のステップを実行します。
「開発者」ツールバーで「アプリケーションID」リンクをクリックします。
「ページの作成」をクリックします。
「空白ページ」を選択して「次へ」をクリックします。
「ページ番号」に3
と入力して、「次へ」をクリックします。
「ページの作成」で、次の変更を行います。
「名前」に、Dashboard
と入力します。
「タイトル」に、Dashboard
と入力します。
「ブレッドクラム」で、「ブレッドクラム」を選択します。
「エントリ名」に、Dashboard
と入力します。
「親エントリ」で、「Home」リンクを選択します。
「次へ」をクリックします。
「タブ」で、「いいえ」を選択して「次へ」をクリックします。
選択内容を確認して、「終了」をクリックします。
次に、「Home」ページで、「Dashboard」に移動するためのリンクを追加します。このリンクは、「ホーム」ページの左側の「ナビゲーション」リージョンに表示されます。
「Home」ページに「Dashboard」へのリンクを追加するには、次のステップを実行します。
「ホーム」ページ(ページ1)のページ定義にナビゲートします。
「アプリケーション」ホーム・ブレッドクラムをクリックします。
「アプリケーション」ホームページで、「1 - ホーム」をクリックします。
「リージョン」で、「ナビゲーション」の横にある「リスト」リンクをクリックします。
「リスト・エントリ」ページで、ページの右側の「リスト・エントリの作成」ボタンをクリックします。
「リスト・エントリの作成/編集」ページで、次の項目を編集します。
「順序」に、20
と入力します。
「リスト・エントリ・ラベル」に、Dashboard
と入力します。
「ページ」に、3
と入力します。
「作成」をクリックします。
「アプリケーション」ブレッドクラムをクリックします。
「アプリケーションの実行」をクリックします。
「Home」ページに「Dashboard」へのリンクが作成されたことに注意してください。
「Dashboard」をクリックしてリンクをテストします。
空の「Dashboard」ページが表示されます。
次に、期限切れの問題を表示するレポート・リージョンを「Dashboard」ページに追加して、そのレポートから「Issues」対話モード・レポートへのリンクを追加します。
このレポートの問合せによって、未解決のすべての問題と、過ぎてしまった解決目標日が取得されます。
レポート・リージョンを追加するには、次のステップを実行します。
「開発者」ツールバーで、「ページの編集3」をクリックします。
「リージョン」で、「作成」アイコンをクリックします。
「レポート」を選択し、「次へ」をクリックします。
「レポート実装」で、「SQLレポート」を選択して「次へ」をクリックします。
「表示属性」で、次のステップを実行します。
「タイトル」に、Overdue Issues
と入力します。
「リージョン・テンプレート」で、「レポート・リージョン、代替1」を選択します。
「順序」に、5
と入力します。
「次へ」をクリックします。
「ソース」で、「SQL問合せの入力」に、次の文を入力します。
SELECT i.issue_id, i.priority, i.issue_summary, p.person_name assignee, i.target_resolution_date, r.project_name FROM it_issues i, it_people p, it_projects r WHERE i.assigned_to_person_id = p.person_id (+) AND i.related_project_id = r.project_id AND i.target_resolution_date < sysdate AND i.status != 'Closed'
割当てはオプションであるため、外部結合が必要です。
「リージョンの作成」をクリックします。
次のステップは、「Overdue Issues」レポートから「Issues」対話モード・レポートへのリンク列の作成方法およびURL項目値を使用したフィルタ基準の受渡しによる宣言フィルタの定義方法を示しています。
「Project Name」列から「Issues」対話モード・レポートにリンクを追加するには、次のステップを実行します。
「リージョン」で、「レポート」リンクをクリックします。
PROJECT_NAMEの左にある「編集」アイコンをクリックします。
「列リンク」までスクロールして、次のステップを実行します。
「リンク・テキスト」で、[PROJECT_NAME]を選択します。
「リンク属性」に、次のように入力します。
title="Click to see all issues for this project."
この設定は、リンク列の項目のヘルプ・テキストを定義します。
「ページ」で、「2」を選択します。
「キャッシュのクリア」で、次を入力します。
CIR,2
このリンク列には、任意のフィルタの「Issues」対話モード・レポートを消去するCIR
(Clear Interactive Report)コマンド、コントロール・ブレーク、強調表示、集計、計算した列、チャート設定およびフラッシュバック設定が含まれます。2
によって、「Issues」レポート(ページ2)のキャッシュが消去されます。
注意: 対話モード・レポートをリセットするには、CIR をRIR (Reset Interactive Report)で置き換えます。RIR コマンドを使用すると、デフォルトとして保存された最新の設定にレポートがリセットされます。 |
「アイテム1」に、次の名前を入力します。
IR_PROJECT_NAME
「アイテム1」に、次の値を入力します。
#PROJECT_NAME#
「名前」および「値」の設定では、「Issues」対話モード・レポートの宣言フィルタが作成されます。プロジェクト名のリンクを使用すると、「Project Name」列の値が「Issues」レポートに渡されます。リンクをクリックすると、そのプロジェクトのすべての問題が、期限切れかどうかにかかわらず「Issues」レポートに表示されます。
「変更の適用」をクリックします。
アプリケーションを実行するには、次のステップを実行します。
「アプリケーション」ホームページにナビゲートして、「アプリケーションの実行」アイコンをクリックします。
「アプリケーション」ホームページが表示されます。
「Dashboard」リンクをクリックします。
「Overdue Issues」リージョンが追加された「Dashboard」ページが、図4-10 「「Overdue Issues」リージョンが追加された「Dashboard」」のように表示されます。プロジェクト名がリンクとして表示されていることに注意してください。
「New Payroll Rollout」プロジェクト名をクリックします。
「New Payroll Rollout」プロジェクト名の下にすべての問題が分類された「Issues」対話モード・レポートが表示されます。
レポートの上部に「New Payroll Rollout」フィルタが作成されたことに注意してください。このフィルタは、プロジェクト名リンク列をクリックした際に作成されました。
次に、「Open Issues by Project」を表示する円グラフを追加し、「Issues」レポートへのリンクを作成します。円グラフの問合せでは、「Issues」対話モード・レポートから各プロジェクト名の未解決の問題数が取得されます。円グラフに表示されるプロジェクト名は、選択したプロジェクトのすべての問題を表示する「Issues」レポートにリンクします。
円グラフを含むリージョンを作成するには、次のステップを実行します。
「開発者」ツールバーで「アプリケーションID」リンクをクリックします。
「3 - Dashboard」をクリックします。
「リージョン」で、「作成」アイコンをクリックします。
「チャート」を選択して、「次へ」をクリックします。
「Flashチャート」を選択し、「次へ」をクリックします。
「表示属性」で、次の変更を行います。
「タイトル」に、Open Issues by Project
と入力します。
「リージョン・テンプレート」で、「チャート・リージョン」を選択します。
「順序」に、10
と入力します。
「列」で、「2」を選択します。
「次へ」をクリックします。
「チャート・プレビュー」で、次の編集を行います。
「チャート・タイプ」で、「3D円」を選択します。
「次へ」をクリックします。
「ソース」で、「SQL」に次の文を入力します。
SELECT 'f?p=&APP_ID.:2:&SESSION.:::CIR:IREQ_STATUS,IREQ_PROJECT_ID:Open,'||r.project_id LINK, NVL(r.project_name,'No Project') label, COUNT(r.project_name) value FROM it_issues i, it_projects r WHERE i.status = 'Open' AND i.related_project_id = r.project_id GROUP BY NULL, r.project_name, r.project_id ORDER BY r.project_name, r.project_id
SELECT
文は、「Issues」対話モード・レポート(ページ2)にリクエストを送信し、特定のプロジェクト名に属する問題のうち、ステータスがOpen
のものを問い合せていることに注意してください。CIR
コマンドは対話モード・レポートの消去に使用され、リクエストされたすべての値が問合せに含まれ、除外されたり表示対象外の列に設定されないようにします。
「データが見つからなかった場合のメッセージ」に、No open issuesと入力します。
「リージョンの作成」をクリックします。
次に、「Dashboard」ページを実行して追加された円グラフ・リージョンを表示し、「Issues」レポートにリンクするプロジェクト名を1つ選択します。
更新された「Dashboard」ページを表示するには、次のステップを実行します。
「ページ3の実行」アイコンをクリックします。
円グラフ・リージョンが追加された「Dashboard」が表示されます。
図4-13に示すように、円グラフで「Employee Satisfaction Survey」プロジェクト・リンクを特定します。
「Employee Satisfaction Survey」プロジェクト・リンクをクリックします。
図4-14に示すように、ステータスがOpenであるすべての「Employee Satisfaction Survey」問題を含む「Issues」レポートが表示されます。
図4-14 Openステータスの「Employee Satisfaction Survey」問題の「Issues」レポート
レポート設定セクションのフィルタに注意してください。「Issues」レポートは、プロジェクトおよびステータスによってフィルタ処理されています。
このトピックおよび関連トピックに関するその他の情報は、次を参照してください。
対話モード・レポートのオンライン・ヘルプ
Oracle Database Application Expressの詳細なチュートリアル
『Oracle Database Application Express 2日で開発者ガイド』
「アプリケーションの構築」
Oracle Database Application Expressユーザーズ・ガイド
対話モード・レポートの編集に関する説明
その他のアプリケーションの例については、Learning Libraryを参照してください。Oracle by Example(OBE)、デモ、チュートリアルなどの無料オンライン・トレーニング・コンテンツを検索します。Oracle Learning Libraryには、次のURLでアクセスできます。