このチュートリアルでは、Application Expressのレポート・タイプの概要、パラメータ付きレポートの作成方法およびユーザーが対話モード・レポートの書式を動的に操作する方法について説明します。
このチュートリアルの内容は次のとおりです。
Oracle Application Expressアプリケーションでは、レポートとは、SQL問合せの結果を書式化したものです。パラメータ付きレポートは、アプリケーション・ユーザーによる入力や、アプリケーションの別のコンポーネントに基づく動的レポートです。アプリケーション・ユーザーは、レポートの生成に使用する検索基準を入力します。たとえば、特定の人物に割り当てられたすべての問題を表示するとします。ユーザーは、「検索バー」に対象となる人物の名前を入力して、レポートをリクエストします。ユーザーが指定した名前に基づいて、レポートが生成されます。
このチュートリアルでは、問題の表に対するSQL問合せに基づいて、対話モード・レポート・ページを作成します。また、フォーム・ページも作成し、問題の変更、削除または作成に使用します。対話モード・レポート機能を使用すると、レポートのフォーカスおよび書式をカスタマイズできます。
この項では、Application Expressの基本的なレポート・タイプについて説明し、ご使用のアプリケーションに最適なタイプを確認する方法を示します。
この項の項目は次のとおりです。
基本的なレポートには、対話モード・レポートとクラシック・レポートの2つのタイプがあります。
対話モード・レポートは、アプリケーションの作成、書式の変換およびページの作成に使用するデフォルトのレポート・タイプです。対話モード・レポートを使用すると、レポートを様々な方法でカスタマイズできます。対話モード・レポートには、開発者が無効にしないかぎり、検索、フィルタ処理、ソート、列の選択、強調表示などのデータ操作機能が含まれます。機能の完全なリストおよび使用方法については、「対話モード・レポートの使用」を参照してください。図3-1は、対話モード・レポートの例を示しており、このレポートは「ページの作成」ウィザードを使用して作成され、IT_PEOPLE表を問い合せています。
「検索バー」と「列ヘッダー・メニュー」リンク、さらに各行の最初の列には「リンク列」アイコンが自動的に組み込まれていることに注意してください。各コンポーネントの詳細は、「対話モード・レポートのコンポーネントの概要」を参照してください。
クラシック・レポートの場合、デフォルトでは、対話モード・レポートにあるカスタマイズ機能は含まれません。図3-2は、クラシック・レポートの例を示しており、このレポートは「ページの作成」ウィザードを使用して作成され、図3-1で対話モード・レポートが問い合せたのと同じIT_PEOPLE表の列を問い合せています。
検索バー、列ヘッダー・リンクおよびドリルダウン機能がないことに注意してください。
検索、フィルタ処理、ソート制御などのユーザー・カスタマイズ機能を使用するには、対話モード・レポートを選択します。各カスタマイズ・オプションを個別に有効または無効にして、ユーザーが使用可能なオプションを調整できます。レポートにこのような制御が不要な場合は、クラシック・レポートの使用をお薦めします。クラシック・レポートにも、宣言的にグリッド更新を実行できる統合された表形式フォーム機能が備わっています。
この項では、「アプリケーションの作成」ウィザードを使用してアプリケーションを作成した後、そのアプリケーションを実行します。この項を完了すると、アプリケーションには、図3-3「「Home」ページ」、図3-4「「Issues」レポート」および図3-5「「Issue Details」フォーム」にそれぞれ類似した「Home」ページ、「Issues」レポート・ページおよび「Issues Details」フォーム・ページが作成されます。
この項には、次の項目が含まれます。
アプリケーションの作成を開始する前に、該当するサンプル・オブジェクトをワークスペース内に作成し、作成したオブジェクトにデモンストレーション・データをロードする必要があります。
Issue Trackerサンプル・オブジェクトをインストールするには、次のステップを実行します。
Issue Trackerデータ・オブジェクトを作成します。「データベース・オブジェクトを作成するためのスクリプトの作成および実行」の手順に従ってください。
オブジェクトにデモンストレーション・データをロードします。「デモンストレーション・データのロード」の手順に従ってください。
これらのサンプル・オブジェクトは、Issue Trackerアプリケーション・オブジェクトのコピーです。Issue Trackerアプリケーションの詳細は、第14章「問題追跡アプリケーションの設計方法」および第15章「問題追跡アプリケーションの作成およびデプロイ方法」を参照してください。
「アプリケーションの作成」ウィザードによって、「Home」ページ、「Issues」レポート・ページおよび「Issue Details」ページが作成されます。ここで作成しているのは対話モード・レポートであるため、ウィザードによって、「検索バー」、「アクション・メニュー」、「列ヘッダー・メニュー」、および「Issues」レポート・ページから「Issue Details」フォームへのリンクが自動的に作成されます。
関連項目: 対話モード・レポートのコンポーネントの使用方法については、「対話モード・レポートの使用」を参照してください。これらのコンポーネントの構成方法については、『Oracle Database Application Expressユーザーズ・ガイド』の対話モード・レポートの編集に関する説明および『Oracle Database Application Express 2日で開発者ガイド』の「アプリケーションの構築」を参照してください。 |
「アプリケーションの作成」ウィザードでアプリケーションを作成するには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
「アプリケーション・ビルダー」ホームページが表示されます。
「作成」をクリックします。
「アプリケーションの作成」を選択して「次へ」をクリックします。
「名前」で、次の各項目を指定します。
「名前」に、Parameterized Report
と入力します。
「アプリケーション」で、デフォルトを受け入れます。
「アプリケーションの作成」で、「最初から」を選択します。
「スキーマ」で、OEHR Sample Objectsをインストールしたスキーマを選択します。
「次へ」をクリックします。
次に、空白ページを追加します。
「追加」ページで、次の各項目を指定します。
「ページ・タイプの選択」で、「空白」を選択します。
「ページ名」に、Home
と入力します。
「ページの追加」をクリックします。
ページ上部のリストに、新しいページが表示されます。
「ページの追加」で、次のステップを実行します。
「ページ・タイプの選択」で、「レポートとフォーム」を選択します。
「ページに従属」で、「ホーム (1)」を選択します。
「表名」で、「IT_ISSUES」を選択します。
「実装」で、「対話モード」のデフォルトを受け入れます。
「ページの追加」をクリックします。
「アプリケーションの作成」リージョンに、「It_Issues Report」リンクおよび「It_Issues Form」リンクが表示されます。
次に、レポートおよびフォームの名前をデフォルト名から変更します。
ページの上部にある「レポート」の横の「It_Issues」リンクをクリックします。
「ページ定義」で、「ページ名」にIssues
と入力します。
「レポート列」の下で、次の列の「表示」について、「いいえ」を選択します。
ISSUE_DESCRIPTION
RESOLUTION_SUMMARY
CREATED_ON
CREATED_BY
MODIFIED_ON
MODIFIED_BY
「変更の適用」をクリックします。
「フォーム」の横にある「It_Issues」リンクをクリックします。
「ページ定義」で、「ページ名」にIssue Details
と入力します。
「変更の適用」をクリックします。
「アプリケーションの作成」リージョンに、「Issues」レポート・リンクおよび「Issue Details」フォーム・リンクが表示されます。
「次へ」をクリックします。
「タブ」で、デフォルトの「1レベルのタブ」を受け入れて「次へ」をクリックします。
「別のアプリケーションから共有コンポーネントのコピー」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。
「属性」で、すべてのデフォルト値を受け入れて「次へ」をクリックします。
「ユーザー・インタフェース」で、「テーマ18」を選択して「次へ」をクリックします。
テーマは、アプリケーションのレイアウトおよびスタイルの定義に使用できるテンプレート集です。テーマは随時変更できます。
関連項目: 『Oracle Database Application Expressユーザーズ・ガイド』の「テーマの管理」 |
選択内容を確認して、「作成」をクリックします。
「アプリケーション」ホームページが表示されます。
次に、アプリケーションを実行して、「Home」ページ→「Issues」レポート→「Issue Details」フォームの順にナビゲートします。
アプリケーションを実行するには、次のステップを実行します。
「アプリケーションの実行」アイコンをクリックします。
ワークスペースのログイン情報を入力します。
「ホーム」ページが表示されます。
「Issues」リンクをクリックします。
「Issues」レポートが表示されます。
最初の行で、「編集」アイコンをクリックします。
図3-8に示すとおり、「Issue Details」フォームが表示されます。
「アプリケーションの作成」ウィザードによって、「Issue Details」フォームをターゲットとする「Issues」対話モード・レポートの「リンク列」が構成されました。これは、ウィザードで「レポートとフォーム」ページ・タイプを作成する場合のデフォルトです。
「取消」をクリックして「Issue」レポートに戻ります。
「作成」ボタンをクリックします。
空の「Issue Details」フォームが表示されます。このフォームを使用すると、IT_ISSUES表に問題を追加できます。ここでは、新しい問題を作成しないでください。
ページ下部にある「開発者」ツールバーで、「アプリケーションID」リンクをクリックします。
次に、IT_PEOPLE表およびIT_PROJECTS表からデータ列を追加します。「アプリケーションの作成」ウィザードを使用して「Issues」レポート・ページを作成した場合、SQL問合せにはIT_ISSUES表のデータのみが含まれます。このレポートに他の表からデータを追加するには、「Issues」レポートのSQL問合せを変更した後、「アクション」メニューを使用して、追加された列をレポートに含めます。
SQL問合せを変更するには、次のステップを実行します。
「2 - Issues」ページをクリックします。
「リージョン」で、「Issues」をクリックします。
「ソース」で、次のSQLに置き換えます。
SELECT "IT_ISSUES"."ISSUE_ID" as "ISSUE_ID", "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" 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"
「変更の適用」をクリックします。
「変更の適用」をクリックして確定します。
新しい列を表示するには、次のステップを実行します。
「ページ2の実行」アイコンをクリックします。
「アクション」メニューをクリックします(図3-9を参照)。
「列の選択」オプションを選択します。
「列の選択」オプションが表示され、「表示しない」ボックスに「Identified By」、「Project Name」および「Assigned To」列が表示されます。問合せの変更によって追加された列は、レポートに自動的に表示されないため、ここで追加する必要があります。
「すべて移動」矢印 (>>) を使用して、「表示しない」ボックスから「レポートに表示」ボックスにすべての列を移動させます。
「レポートに表示」ボックスで「Issue Id」列を選択し、「削除」矢印(<)をクリックして「表示しない」ボックスに移動させます。
「レポートに表示」ボックスの右の上下矢印を使用して、次のように列を順序付けします。
Issue Summary
Identified By
Identified Date
Project Name
Assigned To
Status
Priority
Target Resolution Date
Progress
Actual Resolution Date
「適用」をクリックします。
新しい列を含む「Issue」レポートが表示されます。
この項では、対話モード・レポートの基本的なコンポーネントについて説明した後、それらのコンポーネントを操作して対話モード・レポートをカスタマイズする方法について説明します。この項には、最も一般的なカスタマイズのいくつかのみを示します。各機能の使用方法の詳細は、『Oracle Database Application Expressユーザーズ・ガイド』の対話モード・レポートの編集に関する説明を参照してください。
このセクションの構成は次のとおりです。
この項では、対話モード・レポートのコンポーネントおよび用語について、その概要を示します。
図3-12は、対話モード・レポートの基本的なコンポーネントを赤色で示しています。
対話モード・レポート・ページには、開発者が無効にしないかぎり、デフォルトで次のコンポーネントが含まれます。
検索バー: 対話モード・レポートの各ページの上部に表示されます。次の機能があります。
「列の選択」アイコンは虫眼鏡のように表示され、検索対象の列(またはすべての列)を指定できます。
テキスト領域には、大/小文字を区別しない検索基準を入力できます(暗黙的にワイルドカード文字が使用されます)。
「行」には、各ページに表示するレコードの数を選択します。
「実行」ボタンは、検索を実行します。
「アクション・メニュー」アイコンは、アクション・メニューを表示します。
アクション・メニュー: 対話モード・レポートの表示をカスタマイズするために使用します。次のオプションを提供します。
「列の選択」は、表示する列と順序を指定します。
「フィルタ」は、問合せでWHERE
句を追加または編集することで、レポートの焦点を絞ります。
「ソート」は、ソート対象の列およびソート順(昇順/降順)を指定します。
「コントロール・ブレーク」は、1つ以上の列にブレーク・グループを作成します。
「ハイライト」を使用すると、フィルタを定義して、そのフィルタ基準を満たす行を強調表示できます。
「計算」を使用すると、計算した列をレポートに追加できます。
「集計」を使用すると、列に対して算術計算を実行できます。
「チャート」は、対話モード・レポートにチャートを追加します。
「フラッシュバック」を使用すると、フラッシュバック問合せを実行して、データを過去のある時点の状態で表示することができます。
「レポートの保存」は、カスタマイズされた現行のレポート設定を、後で使用できるように保存します。
「リセット」を使用すると、レポートをデフォルトの設定にリセットできます。
「ヘルプ」は、対話モード・レポートのコンポーネントを使用してレポートをカスタマイズする方法の詳細を示します。
「ダウンロード」を使用すると、現行の結果セットをダウンロードできます。
列ヘッダー・メニュー: 任意の列ヘッダーをクリックすると列ヘッダー・メニューが展開され、ソート順の変更、列の非表示、列のブレーク・グループの作成、列に関するヘルプ・テキストの表示およびフィルタの作成を行うことができます。
レポート設定: 対話モード・レポートをカスタマイズすると、「検索バー」とレポートの間にレポート設定が表示されます。カスタマイズしたレポートを保存すると、レポートがタブとして表示されます。
リンク列: この列は、「単一行ビュー」または「カスタム・ターゲット」にリンクします。図3-12「対話モード・レポートのコンポーネント」に示すように、この対話モード・レポートの場合、リンク列は「カスタム・ターゲット」であり、「編集」アイコンで表示されますが、このアイコンは「Issue Details」フォームにリンクしており、ユーザーは選択した問題の情報を表示および変更できます。
「リンク列」は、「レポート属性」ページにおける対話モード・レポートの「リンク列」設定によって指定されます。この設定には、次の3つのいずれかを選択できます。
単一行ビューへのリンク: このオプションを使用すると、単一行の詳細を表示できます。「単一行ビュー」を使用すると、ユーザーはデータを表示できますが、変更することはできません。「単一行ビューへのリンク」は、「レポート」ページ・タイプの対話モード・レポートを作成する場合のデフォルト設定です。例については、第4章「拡張レポートの手法の使用」で作成される「Issues」対話モード・レポート・ページを参照してください。
カスタム・ターゲットへのリンク: このオプションを使用すると、開発者によって指定されたターゲットに基づいて、アプリケーションの他のページやURLに移動できます。「カスタム・ターゲットへのリンク」は、「レポートとフォーム」ページ・タイプの対話モード・レポートを作成する場合のデフォルト設定です。デフォルトで、ターゲットは、ユーザーが行データを変更可能なフォーム・ページに設定されています。このアプリケーションの「Issues」対話モード・レポートは、このタイプのリンクの例です。
リンク列の除外: このオプションを使用すると、対話モード・レポートから「リンク列」が削除されます。
次に、前述のいくつかの機能を使用して、レポートの外観をカスタマイズし、レポートに含めるデータを指定します。
この項では、「検索バー」を使用してレポートにフィルタを追加します。フィルタによって、Carlaに割り当てられたすべての問題が表示されます。ただし、他の方法でレポートにフィルタを追加することもできます。フィルタを追加するには、次のいずれかを使用します。
検索バー
列ヘッダー・メニュー
アクション・メニュー
「検索バー」を使用してレポートにフィルタを追加するには、次のステップを実行します。
ページ2を実行中であることを確認して、「検索バー」で「列の選択」アイコン(虫眼鏡のようなアイコン)をクリックします。
レポート列のリストが表示されます。
「Assigned To」を選択します。
「検索バー」に「Assigned To」列が表示されます。
テキスト領域にcarla
と入力して、「実行」をクリックします。
表示される「Issues」レポートには、姓名のいずれかに「carla」を含む人物に割り当てられた問題が示されます。検索基準では、大/小文字が区別されません。
レポート上部の「レポート設定」領域に、フィルタ「Assigned To contains 'carla'」が追加されていることに注意してください。このフィルタは、編集、無効化または削除できます。
次に、フィルタを無効にした後、有効にします。
「Assigned To contains 'carla'」の横にある「有効/無効」チェック・ボックスをクリックして、フィルタを無効にします(チェック・ボックスは選択解除された状態になります)。
すべての問題を示すレポートが表示されます。
「Assigned To contains 'carla'」の横にある「有効/無効」チェック・ボックスをクリックして、再びフィルタを有効にします(チェック・ボックスは選択された状態になります)。
Carlaに割り当てられた問題を示すレポートが表示されます。
「Assigned To contains 'carla'」リンクをクリックします。
「フィルタ」編集オプションが表示されます。
「演算子」で、「が次を含まない」を選択します。
「適用」をクリックします。
フィルタの名前が変更され、レポートには、Carlaを除くすべてのユーザーに割り当てられた問題が示されます。
次に、フィルタを削除します。「有効/無効」チェック・ボックスの右にあるフィルタの削除アイコン(フィルタ上にXが表示されたアイコン)をクリックします。
レポートの設定領域からフィルタが削除され、レポートにすべての問題が表示されます。
この演習では、現行のレポート設定をデフォルトとして保存し、一部の行のみを表示するようレポートをカスタマイズします。カスタマイズしたレポート設定は、後で使用できるように保存します。
デフォルトとしてレポート設定を保存するには、次のステップを実行します。
「アクション」メニューをクリックし、「レポートの保存」を選択します。
「レポートの保存」オプション・リージョンが表示されます。
「保存」で、「デフォルトのレポート設定として保存」を選択します。
「適用」をクリックします。
現行のレポート・フォーマットがデフォルトになりました。ユーザーがレポートをリセットすると、前述の設定が適用されます。リセット手順については、「デフォルトのレポート設定へのリセット」を参照してください。
一部の行のみを表示するようレポートをカスタマイズするには、次のステップを実行します。
「アクション」メニューをクリックし、「列の選択」を選択します。
「列の選択」オプション・リージョンが表示されます。
「レポートに表示」ボックスで、[Ctrl]キーを押しながら「Issue Summary」、「Status」、「Priority」、「Target Resolution Date」および「Actual Resolution Date」を選択します。
「削除」矢印(<)をクリックして、選択した列を「表示しない」ボックスに追加します。
「適用」をクリックします。
レポートには、5つの列のみが表示されます。
カスタマイズしたレポート設定を保存するには、次のステップを実行します。
「アクション」メニューをクリックし、「レポートの保存」を選択します。
「レポートの保存」オプション・リージョンが表示されます。
「レポートの保存」オプションで、次の変更を行います。
「保存」で、「名前付きレポートとして保存」を選択します。
「名前」に、Report 1
と入力します。
「説明」に、Only show 5 columns
と入力します。
「適用」をクリックします。
上部にレポート・タブ、「レポート設定」領域に「保存されたレポート = "Report 1"」を含むレポートが表示されます。
「作業レポート」および「Report 1」という2つのタブがあることに注意してください。オレンジ色で強調表示された「Report 1」タブは、現在表示されているレポートであることを示しています。前述の手順に従ってこのレポートをさらにカスタマイズして変更を保存するか、「作業レポート」タブを選択してそのタブ内で変更を行うことができます。「作業レポート」に対して行った変更は、保存済のレポートには影響しません。
保存済のレポート・タブを編集するには、レポート設定領域で「保存されたレポート = "Report 1"」リンクをクリックして、「レポートの保存」オプションに対して変更を行います。
注意: 名前付きレポートはログインしている現行ユーザー専用のレポートとなるため、名前付きレポートの作成機能は、アプリケーションまたはページがパブリックでなく、なんらかの認証を必要とする場合にのみ使用できます。詳細は、『Oracle Database Application Expressユーザーズ・ガイド』の対話モード・レポートの編集に関する説明を参照してください。 |
保存済のレポートを削除することもできます。保存済のレポートを削除するには、次のステップを実行します。
レポート設定領域で、「保存されたレポート = "Report 1"」リンクの横にある「レポートの削除」アイコン(レポート上にXが表示されたアイコン)をクリックします。
「適用」をクリックします。
5つの列を含むカスタマイズされたレポートが、レポート・タブを削除された状態で表示されます。
この項では、「レポート設定の保存および列の選択」で最初に保存したデフォルト設定にレポートをリセットします。
レポートをリセットするには、次のステップを実行します。
「アクション」メニューをクリックし、「リセット」を選択します。
「適用」をクリックします。
デフォルトのレポート設定を適用したレポートが表示されます。
これで、Application Expressのレポート作成の基本を理解しましたので、次は、第4章「拡張レポートの手法の使用」に進みます。
このトピックおよび関連トピックに関するその他の情報は、次を参照してください。
対話モード・レポートのオンライン・ヘルプ
Oracle Database Application Expressの詳細なチュートリアル
『Oracle Database Application Express 2日で開発者ガイド』
「アプリケーションの構築」
Oracle Database Application Expressユーザーズ・ガイド
対話モード・レポートの編集に関する説明
その他のアプリケーションの例については、Learning Libraryを参照してください。Oracle by Example(OBE)、デモ、チュートリアルなどの無料オンライン・トレーニング・コンテンツを検索します。Oracle Learning Libraryには、次のURLでアクセスできます。