Oracle® Application Express

チュートリアル: アプリケーションの構築

リリース5.1

E89953-01(原本部品番号:E69083-02)

2017年6月

Oracle Application Expressチュートリアル: アプリケーションの構築, リリース5.1

E89953-01

Copyright © 2017, 2017, Oracle and/or its affiliates.  All rights reserved.

原本著者: John Godfrey

原本協力者: David Peake、Terri Jennings、Shakeeb Rahman

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 Oracle Application Expressについて

2 始める前に

3 作業領域へのデータの移入

- 3.1 作業領域の設定

- 3.2 サンプル表のインポート

- 3.3 サンプル・データのインポート

- 3.4 表へのデータ移入

- 3.5 オブジェクト・ブラウザでの出力の確認

4 初期アプリケーションの作成

- 4.1 アプリケーションの作成ウィザードを使用した新規アプリケーションの作成

- 4.2 ページの作成ウィザードを使用したプロジェクト・ページの作成

- 4.3 「ページの作成ウィザードを使用したカレンダの作成」

- 4.4 ページ・デザイナについて

- 4.5 アプリケーションの初回実行

5 ホームページの開発

- 5.1 アプリケーション・ランタイムからページ・デザイナへの移動

- 5.2 ホームページへのタスク概要チャートの追加

- 5.3 プロパティ・エディタでのチャート・リージョンの編集

- 5.4 チャートのSQL問合せの定義

- 5.5 レポート・ホームページへの未処理タスクの追加

- 5.6 開発者ツールバーを使用したリージョン外観の変更

- 5.7 ホームページ・サイドバーへのアイコンの追加

6 「Team Member」ページの開発

- 6.1 対話モード・レポートのSQL問合せの編集

- 6.2 ランタイムの対話モード・レポートに表示される列の変更

- 6.3 異なるリージョンへのボタンの移動

- 6.4 モーダル・ダイアログでのストレッチ・フォーム・フィールドの有効化

- 6.5 フォーム・フィールドとTextareaの更新

- 6.6 展開可能サブ・リージョンの作成

- 6.7 「表示のみ」アイテム・タイプによるユーザー・アクセスの制限

7 プロジェクト・ページの開発

- 7.1 SQL問合せと表示列の更新

- 7.2 共有値リストを使用した「Project Lead」列への名前の追加

- 7.3 「Projects」レポート・ページの外観の更新

- 7.4 Projects Report列のカスタマイズ

- 7.5 ライブ・テンプレート・オプションによるProjectフォームの外観の変更

- 7.6 ページ・デザイナでのProjectフォームの更新

- 7.7 静的なステータスの値リストの作成

- 7.8 動的アクションの作成

- 7.9 完了日の検証の追加

- 7.10 異なるページへのサブ・リージョンのコピー

8 「Maintain Project」フォーム・リージョンの開発

- 8.1 「マイルストン」対話グリッドの更新

- 8.2 「タスク」ディテール・リージョンの作成

- 8.3 「タスク」リージョンでの列の更新

- 8.4 リージョン表示セレクタの追加

- 8.5 ランタイムでのデフォルトの「マイルストン」レポートの改善

- 8.6 ランタイムでのデフォルトの「タスク」レポートの改善

9 「タスク」マスター・ディテール/ディテール・リージョンの開発

- 9.1 「To Do」サブ・リージョンの作成

- 9.2 「To-Dos」サブ・リージョンのリンク

- 9.3 「To-Dos」列の改善

- 9.4 「Links」サブ・リージョンの作成

- 9.5 「リンク」サブ・リージョンのリンク

- 9.6 「リンク」列の改善

- 9.7 動的アクションの追加によるリンク・タイプの列の有効化

- 9.8 動的アクションへの反対のアクションの追加

- 9.9 ランタイムでのTo-Dos対話グリッドの改善

- 9.10 ランタイムでの「リンク」対話グリッドの改善

10 「カレンダ」ページの開発

- 10.1 ランタイムでのカレンダのヘッダーと境界線の非表示

- 10.2 個別プロジェクトのドラッグ・アンド・ドロップの有効化

- 10.3 カレンダ・ページへのリンクの追加

A 作業領域へのアプリケーションのインポート

索引

はじめに

『Oracle Application Expressデモ・アプリケーション構築チュートリアル』は、Oracle Application Expressの最新の機能の一部を使用して、プロジェクトとタスクを管理するための機能するアプリケーションを作成する方法を示しています。

対象読者

『Oracle Application Expressデモ・アプリケーション構築チュートリアル』は、Oracle Application Express開発環境を設定する作業領域管理者と、Oracle Application Expressを使用してデータベース集中型のWebアプリケーションを構築する方法を学習するアプリケーション開発者を対象としています。

このガイドを使用するには、リレーショナル・データベースの概念、およびOracle Application Expressを実行するオペレーティング・システム環境について理解しておく必要があります。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、次のOracleドキュメントを参照してください。

- Oracle Application Expressリリース・ノート

- Oracle Application Expressインストレーション・ガイド

- Oracle Application Expressエンド・ユーザー・ガイド

- 『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』

- Oracle Application Express管理ガイド

- Oracle Application Express SQLワークショップ・ガイド

- Oracle Application Express APIリファレンス

- Oracle Application Expressアプリケーション移行ガイド

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle Application Expressについて

Oracle Application Expressは、短時間でのアプリケーションの開発と展開のために設計された環境です。

プログラミングの経験が少なくても、Webブラウザを使用するだけで、高速でセキュアなプロフェッショナル・レベルのアプリケーションを開発できます。Oracle Application Expressは、ユーザー・インタフェース・テーマ、ナビゲーション・コントロール、フォーム・ハンドラ、柔軟なレポートなどの機能を使用することで、効率よくアプリケーションを開発できます。デプロイされたアプリケーションで必要となるのは、Application Expressを実行するOracleデータベースへのアクセス権とブラウザのみです。

このチュートリアルでは、重点を絞ったコンテキストを持つアプリケーションの作成を、ほとんどすべてのステップについて説明します。Oracle Application Expressの詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のクイック・スタートに関する項を参照してください。

このチュートリアルについて

『Oracle Application Expressデモ・アプリケーション構築チュートリアル』では、AnyCo Corpという架空の会社に対する単純な人事管理(HR)アプリケーションを作成します。このアプリケーションで、データベースの表に格納された部門情報および従業員情報を管理します。チュートリアルでは、アプリケーションの構築、変更および実行の方法について説明します。各章は、どんどん高度な概念を学習できるように、以前のレッスンの成果を先に進める新たなレッスンになっています。

『Oracle Application Expressデモ・アプリケーション構築チュートリアル』は、前から順に進めていくように作成されています。いずれかのレッスンの先頭までスキップする場合は、チュートリアル付属の.zipファイルに格納されている、エクスポート済アプリケーション・ファイルをインポートできます。この機能は、スキル・レベルに合せてチュートリアルの先の方までスキップしたり、学習内容をチェックしたりするのに便利です。

付録「作業領域へのアプリケーションのインポート」を参照してください。

2 始める前に

このチュートリアルでは、Oracle Application Express環境へのアクセス権と開発者権限を持つアカウントを持っており、パッケージ・アプリケーションであるサンプル・データベース・アプリケーションを作業領域にインストールしてある必要があります。

Oracle Application Express環境へのアクセス

Oracle Application Expressリリース5.1.2以降へのアクセス権を持っている必要があります。Oracle Application Expressには、次のいずれかの方法でアクセスできます。

- apex.oracle.comでアカウントをリクエストします。

- Oracle Application Expressを含むOracle Database Cloud Service上のアカウントをサブスクライブします。

- Oracle Application Expressリリース5.1.2以降を含むOracle Databaseのローカル・インストールをインストールします。

Oracle Application Express開発用ユーザー・アカウント

ホスト環境でOracle Application Expressにアクセスしている場合、アカウントをリクエストすると、作業領域とアカウントが作成されます。ローカルでOracle Application Expressを管理している場合は、手動で作業領域とアカウントを作成します。どちらのシナリオでも、Oracle Application Expressアカウントは開発者権限を持っている必要があります。

サンプル・データベース・アプリケーション・パッケージ・アプリケーションのインストール

パッケージ・アプリケーションであるサンプル・データベース・アプリケーションを作業領域にインストールしておく必要があります。このチュートリアルでは、データを移入するいくつかのデータベース・オブジェクトを使用します。

サンプル・データベース・アプリケーションが作業領域Packaged Appsにインストールされていることを確認するには、次のステップを実行します。

1. Oracle Application Express作業領域にサインインします。

2. 「パッケージ・アプリケーション」をクリックします。

3. 「サンプル・データベース・アプリケーション」をクリックします。

ヒント:
[Ctrl]+[F]または[Cmd]+[F]を使用するとすばやく検索できます。

4. 次のいずれかの操作を行います。

- 画面に「インストール済」と表示されたら、それ以上のステップは不要です。

- 画面に「パッケージ・アプリケーションのインストール」と表示されたら、「パッケージ・アプリケーションのインストール」をクリックして画面の手順に従います。

3 作業領域へのデータの移入

Oracle Application Expressアプリケーションを作成するには、表とデータが揃ったセットが必要です。それらは、このチュートリアルに付属の.zipファイルに用意されています。

このレッスンについて

このレッスンでは、.zipファイルを入手してローカル・マシンに解凍し、Oracle Application Expressのツール(SQLワークショップとSQLスクリプト)を使用して、そのコンテンツの一部を作業領域にインポートします。

インポートしたら、オブジェクト・ブラウザのスクリプトの出力を確認して表とデータがあることを確認します。

これらのステップでロードするサンプルの表とデータは、実際のOracle Application Express HRアプリケーションで日々使用される種類の情報に似ています。従業員、プロジェクト、カレンダおよびスケジュールに相当するデータ・セットに特有の情報が含まれています。

3.1 作業領域の設定

このチュートリアルを進めるには、次のタスクを完了する必要があります。

- 「始める前に」に記載されたすべての要件を満たすことを確認します。

- 最新の表とデータを含む.zipファイルをダウンロードします。

.zipファイルをダウンロードするには、次のステップを実行します。

1. チュートリアルのページ(http://docs.oracle.com/database/apex-5.1/nav/tutorials.htm)に移動します

2. 「Download sample tables and data zip file」をクリックします。
ダウンロードが始まります。

3. ローカル・マシン上の簡単にアクセスできる場所に.zipファイルを解凍します。

3.2 サンプル表のインポート

Oracle Application Expressには、既存のデータ・セットに基づいて初期アプリケーションを短時間で構築できるように作成された強力なウィザードがあります。ただし、まず作業領域にデータを取得する必要があります。先にダウンロードした.zipファイルには、一連のサンプル表を生成するスクリプトが含まれています。

作業領域にDemo_Project_Basic_Tables.sqlスクリプトをアップロードして作業領域を準備し、SQLワークショップでそれを実行します。

作業領域にサンプル表をインポートするには次のステップを実行します。

1. Oracle Application Express作業領域にサインインします。

2. 「SQLワークショップ」をクリックし、「SQLスクリプト」を選択します。

3. 「アップロード」ボタンをクリックします。
「スクリプトをアップロード」ダイアログが表示されます。

4. 「ファイルのインポート」では適切なボタン(たとえば、Chromeでファイルを選択するボタン)をクリックしてシステム内でファイルを探します。

5. .zipファイルを解凍したディレクトリに移動して、filesフォルダまたはサブディレクトリを開きます。

6. Demo_Project_Basic_Tables.sqlを選択して「開く」をクリックします。

7. 「アップロード」をクリックします。

8. SQLスクリプトのリストで、スクリプトの横にある「編集」アイコン(鉛筆)をクリックします。
スクリプト・エディタが表示されます。

9. スクリプト・エディタで、スクリプトの未加工のコードを確認します。

次のオブジェクトが作成されます。

- DEMO_TEAM_MEMBERS - 写真など、アプリケーションのユーザーの詳細を格納します。次のものが含まれます。

- 主キー - ID

- 一意キー - USERNAME

- 挿入の前またはトリガーの更新 - IDにGlobally Unique Identifier (GUID)を移入します監査列に移入しますUSERNAMEを大文字に設定します

- DEMO_PROJECTS - リーダー、ステータス、完了日など、プロジェクトの詳細を格納します。次のものが含まれます。

- 主キー - ID

- 一意キー - NAME

- 外部キー - PROJECT_LEADは、DEMO_TEAM_MEMBERSのIDに一致する必要があります

- 索引 - 外部キー列上の問合せパフォーマンスを向上させるPROJECT_LEAD

- 挿入の前またはトリガーの更新 - IDにGUIDを移入します。監査列に移入します

- DEMO_MILESTONES - 期日などのマイルストンに対応するプロジェクトの下の子表。次のものが含まれます。

- 主キー - ID

- 外部キー - PROJECT_IDは、DEMO_PROJECTSのIDに一致する必要があります

- 索引 - 外部キー列上の問合せパフォーマンスを向上させるPROJECT_ID

- 挿入の前またはトリガーの更新 - IDにGUIDを移入します。監査列に移入します

- DEMO_TASKS - タスク(オプションで指定のマイルストン)に対応するプロジェクト下の子表で、割当て先と日付を含みます。次のものが含まれます。

- 主キー - ID

- 外部キー - ASSIGNEEは、DEMO_TEAM_MEMBERSのIDに一致する必要があります

- 外部キー - PROJECT_IDは、DEMO_PROJECTSのIDに一致する必要があります

- 外部キー - MILESTONE_IDは、DEMO_MILESTONESのIDに一致する必要があります

- 索引 - 外部キー列上の問合せパフォーマンスを向上させるASSIGNEE、PROJECT_ID、MILESTONE_ID

- 挿入の前またはトリガーの更新 - IDにGUIDを移入します。監査列に移入します

- DEMO_TO_DOS - To Doに対応するタスクの下の子表で、割当て先と日付を含みます。次のものが含まれます。

- 主キー - ID

- 外部キー - PROJECT_IDは、DEMO_PROJECTSのIDに一致する必要があります

- 外部キー - TASK_IDは、DEMO_TASKSのIDに一致する必要があります

- 外部キー - ASSIGNEEは、DEMO_TEAM_MEMBERSのIDに一致する必要があります

- 索引 - 外部キー列上の問合せパフォーマンスを向上させるPROJECT_ID、TASK_ID、ASSIGNEE

- 挿入の前またはトリガーの更新 - IDにGUIDを移入します。監査列に移入します

- DEMO_LINKS - リンクに対応するタスクの下の子表。次のものが含まれます。

- 主キー - ID

- 外部キー - PROJECT_IDは、DEMO_PROJECTSのIDに一致する必要があります

- 外部キー - TASK_IDは、DEMO_TASKSのIDに一致する必要があります

- 索引 - 外部キー列上の問合せパフォーマンスを向上させるPROJECT_ID、TASK_ID

- 挿入の前またはトリガーの更新 - IDにGUIDを移入します。監査列に移入します

10. 「実行」ボタンをクリックします。
「スクリプトの実行」ダイアログが表示されます。

11. 「即時実行」をクリックしてDemo_Project_Basic_Tables.sqlスクリプトを実行します。
「スクリプト結果の管理」ページが表示されます。

12. 「結果の表示」アイコン(拡大鏡)をクリックします。
結果は、処理された文37、成功37、エラーあり0になるはずです。

作業領域のサンプル表にデータを移入しました。

3.3 サンプル・データのインポート

次に、サンプル・データをインポートします。

作業領域にDemo_Project_Basic_Data.sqlスクリプトをアップロードし、SQLワークショップでそれを実行します。

作業領域にサンプル・データをアップロードするには、次のステップを実行します。

1. SQL結果のサマリー・ページで、「SQLスクリプト」ブレッドクラムをクリックします。

2. 「アップロード」をクリックします。

3. 「ファイルのインポート」では適切なボタン(たとえば、Chromeでファイルを選択するボタン)をクリックしてシステム内でファイルを探します。

4. .zipファイルを解凍したディレクトリに移動して、filesフォルダまたはサブディレクトリを開きます。

5. Demo_Project_Basic_Data.sqlという名前のSQLスクリプト・ファイルを選択し、「開く」をクリックします。

6. 「アップロード」をクリックします。

7. SQLスクリプトのリストで、Demo_Project_Basic_Data.sqlスクリプトの横にある「実行」アイコン(鉛筆)をクリックします。
「スクリプトの実行」ダイアログが表示されます。

8. 「即時実行」をクリックします。
「スクリプト結果の管理」ページが表示されます。

9. 「結果の表示」アイコン(拡大鏡)をクリックします。
結果は、処理された文2、成功2、エラーあり0になるはずです。

作業領域のサンプル・データにデータを移入しました。まだサンプル表にデータを移入する必要があります。

3.4 表へのデータ移入

前のトピックでロードしてSQLワークショップで実行した2つのスクリプトは、作業領域に、サンプルの表とデータをデータベース・オブジェクトとして生成しました。ここでは、表にデータを追加する必要があります。

SQLスクリプトに加えて、SQLワークショップにも、SQLコマンド・ファシリティの機能があります。SQLコマンドを使用すると、データ・パッケージのターゲット表へのロードなど、任意の有効なSQLコマンドを実行できます。

Oracle Databaseパッケージを実行してサンプル・データをサンプル表に移入するには、次のステップを実行します。

1. SQLスクリプトの「結果」ページで、ページ上部の「SQLワークショップ」タブをクリックしてSQLワークショップのホームページに戻ります。

2. 「SQLコマンド」をクリックします。

3. 次のコードを入力します。

begin
demo_projects_data_pkg.load_sample_data;
end;

4. 「実行」をクリックします。
パッケージが完了したら、「結果」タブに「文が処理されました。」と表示されます。サンプル・データでサンプル表にデータを移入しました。

これでサンプル表にサンプル・データを移入できました。

3.5 オブジェクト・ブラウザでの出力の確認

オブジェクト・ブラウザは、作業領域に関連付けられたOracleデータベース・スキーマに存在するすべての未加工のオブジェクトを表示します。Application ExpressによりAPEX$表が作成され、作業領域に固有の内部データを格納します。サンプル・データベース・アプリケーションをインストールした場合は、DEMO_CUSTOMERSなど、他の表が作成されました。

オブジェクト・ブラウザで作成したパッケージを確認するには、次のステップを実行します。

1. 「SQLワークショップ」をクリックして「SQLワークショップ」ホームページに戻ります。

2. 「オブジェクト・ブラウザ」をクリックします。

ヒント:
すばやく操作するには「SQLワークショップ」の横にある矢印をクリックしてドロップダウン・メニューを表示します。

3. 表のリストで、DEMO_TEAM_MEMBERSを選択します。

4. 「データ」タブをクリックします。「データ」タブには、DEMO_TEAM_MEMBERS表の未加工の情報が表示されます。

注意:
「データ」レポートの「編集」アイコンをクリックして、現在のデータを直接編集することもできます。ただし、ここではデータを変更しないでおきます。

5. 左側のペインで、「表」をクリックしてドロップダウン・リストを表示し、「パッケージ」を選択します。
作業領域スキーマに存在するすべてのパッケージのリストが表示されます。

6. DEMO_PROJECTS_DATA_PKGを選択します。

7. 「本体」タブを選択して、データを移入するために実行した主PL/SQLコードを確認します。

このパッケージには、イメージを挿入し、レコードに入力されるユーザーを複製する、複雑なPL/SQLコードがあります。通常この事項のデータを移入する必要はないため、このパッケージのPL/SQLコードを理解していることは重要でありません。通常はデータなしで表を作成し、構築するアプリケーションを使用してレコードを挿入するでしょう。

8. 完了したら、ページの左上のOracleロゴをクリックして作業領域のホームページに戻ります。

これで作業領域に完全にデータを移入できたので、新しいアプリケーションを作成できます。

次のレッスンに進みます。

4 初期アプリケーションの作成

このレッスンについて

このレッスンでは、アプリケーションの作成ウィザードを使用して、インポートした表とデータに基づいて、アプリケーションの基盤となるページを構築します。

アプリケーションの基盤を作成したら、ページ・デザイナの ページの作成ウィザードを使用して既存のアプリケーションに新しいページを追加し、アプリケーションを初回実行します。

4.1 アプリケーションの作成ウィザードを使用した新規アプリケーションの作成

表にデータを移入したら、アプリケーションの作成ウィザードでそれぞれの表専用のページを作成できます。

アプリケーションの作成ウィザードでは、レポート、フォーム、マスター・ディテールなど、多くの異なる種類のページを表から作成できます。

各ページ・タイプの詳細については、チュートリアルのこの後の部分で説明します。ここでは簡単に基本のみ説明します。

- レポートは、表の内容を表示するページです。

- フォームを使用すると、ユーザーが表を変更できます。

- マスター・ディテールには、通常1対多関係を持つ複数の表が一度に表示されます。

初期アプリケーションを作成するには、次のステップを実行します。

1. 「アプリケーション・ビルダー」をクリックし、「作成」を選択します。
「アプリケーションの作成」ウィザードが表示されます。

ヒント:
画面最上部のタブで下矢印アイコンをクリックすることで、ウィザードなどのページへのショートカットのリストを表示することもできます。

2. 「デスクトップ」をクリックします。

3. 「名前」に「Demo Projects」と入力し、「次へ」をクリックします。

注意:
アプリケーションの作成ウィザードは、自動的にホームページを作成します。

開発初期には、アプリケーションに必要なページの一部しかわかっていないことがよくあります。それらを後で一度に1つずつ作成するのでなく、「ページの追加」をクリックすることでアプリケーションのページを一括生成して時間を節約できるようになりました。

各ページがリストに表示されます。編集アイコン(鉛筆)をクリックして各ページの属性の一部を編集したり、削除アイコン(X)をクリックしてこのリスト・ビューにあるページを削除したりすることもできます。

次に対話モード・レポートを作成して、ユーザーが連絡先情報を表示および管理できるようにします。

DEMO_TEAM_MEMBERSページにレポートとフォームを追加するには、次のステップを実行します。

4. アプリケーションの作成ウィザードのリスト・ビューで、「ページの追加」ボタンをクリックします。
次を編集します。

a. ページ・タイプの選択 - 「レポートとフォーム」を選択します

b. 表名 - 「DEMO_TEAM_MEMBERS」を選択します

c. レポート・タイプ - 「対話モード・レポート」を選択します

d. フォーム・ページ・モード - 「モーダル・ダイアログ」を選択します

5. 「ページの追加」ボタンをクリックします。

リスト・ビューに戻ります。

リストには、「Demo Team Members」という名前のレポートと、「Demo Team Members」という名前のフォームの2つのページが表示されます。レポートとフォームを作成すると、親子の関係を持つ一対のページが作成されます。たとえば、レポートを削除するとフォームも自動的に削除されます(ただしフォームを削除してもレポートは残ります)。

アプリケーションの作成ウィザードは、表の名前に基づいて、新しいページに自動的に名前を付けます。ページの名前がユーザーにわかりやすいものであるよう常に注意してください。この事例では、ユーザーの混乱を避けるために、「Demo」という単語を削除します。

アプリケーションの作成ウィザードでレポートの名前を編集するには、次のステップを実行します。

6. ページ2「Demo Team Members」の横にある編集アイコン(鉛筆)をクリックします。
「新しいページ定義」ダイアログが表示されます。

7. 「ページ名」フィールドで名前を「Team Members」に変更し、「変更の適用」をクリックします。

フォームの名前を編集するには、次のステップを実行します。

8. ページ3「Demo Team Members」の横にある編集アイコン(鉛筆)をクリックします。

9. 「ページ名」フィールドで名前を「Maintain Team Members」に変更し、「変更の適用」をクリックします。

10. リストに3つのページが含まれていることを確認します。

- ページ1: ホームページ、タイプ - 空欄

- ページ2: Team Members、タイプ - レポート

- ページ3: Maintain Team Member、タイプ - フォーム

11. 「アプリケーションの作成」ボタンをクリックします。確認ページで、「アプリケーションの作成」をクリックします。

Application Expressがアプリケーション・ビルダーのアプリケーションのホームページに移動し、「アプリケーションは正常に作成されました。」というメッセージが表示されます。

これで初期アプリケーションの生成が完了しました。

4.2 ページの作成ウィザードを使用したプロジェクト・ページの作成

ページの作成ウィザードを使用してアプリケーションに新しいページを追加します。ページの作成ウィザードには洗練されたインタフェースがあり、複雑なページ・タイプ(たとえばマスター・ディテールやカレンダ)を簡単に追加したり事前構成したりできます。

次に、ユーザーがプロジェクトの進捗をチェックできるプロジェクト管理ページを追加します。プロジェクトの進捗はマイルストンで測られるため、その2つの表を接続する必要があります。

マスター・ディテール・ページには、2つの表の1対多関係が反映されます。この事例では、DEMO_PROJECTSとDEMO_MILESTONES表の関係を表示します。

マイルストンとプロジェクトの進捗の表示に加えて、ユーザーが自身の情報を編集できるようにします。レポートやフォームと同様に2ページのマスター・ディテールが事前構築されており、ユーザーが情報を編集することができます。

ページの作成ウィザードを使用して2ページのマスター・ディテール・ページを追加するには、次のステップを実行します。

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

ページの作成ウィザードが表示されます。

2. 「ページ・タイプの選択」で「フォーム」を選択します。

3. 「2ページのマスター・ディテール」を選択します。
「マスター・ディテールの作成」ページが表示されます。

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

a. マスター・ページ番号 - 「4」と入力します

b. マスター・ページ名 - 「Projects」と入力します

c. ディテール・ページ番号 - 「5」と入力します

d. ディテール・ページ名 - 「Maintain Project」と入力します

e. 「ブレッドクラム」で、「ブレッドクラム」を選択します

注意:

ページ名に入力した名前は、「マスター・ページ・エントリ名」と「ディテール・ページ・エントリ名」の各フィールドに自動的に移入されます。

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

5. 「ナビゲーションのプリファレンス」では「新規ナビゲーション・メニュー・エントリの作成」を選択して「次へ」をクリックします。

6. 「マスター・ソース」には次を入力します。

a. 表/ビューの名前 - 「DEMO_PROJECTS (table)」を選択します

b. フォームのナビゲーションの順序 - 次を選択します: CREATED (「TIMESTAMP(6) WITH LOCAL TIME ZONE

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

7. ディテール・ソースには次のように入力します。

a. 表/ビューの名前 - 「DEMO_MILESTONES」を選択します

b. マスター・ディテール外部キー - 「ID」 -> 「PROJECT_ID」を選択します

8. 「作成」をクリックします。
ページ・デザイナに、新しいページ(「Projects」)が表示されます。

ページ・デザイナはOracle Application Expressの包括的な統合開発環境(IDE)です。ページ・デザイナについては、今後のレッスンで詳しく扱います。さて、まだもう1つページを作成する必要があります。

4.3 ページの作成ウィザードを使用したカレンダの作成

ユーザーが期限を管理できるように、ページの作成ウィザードを使用してカレンダ・ページを追加します。

ページの作成ウィザードでカレンダ・ページを追加するには、次のステップを実行します。

1. ページ・デザイナ・ツールバーで、「作成」メニューをクリックして「ページ」 (+) を選択します。

ページの作成ウィザードが表示されます。

2. 「ページ・タイプの選択」で「カレンダ」を選択します。
「ページ属性」セクションが表示されます。

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

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

b. 「ページ名」には「カレンダ」と入力します

c. 「ブレッドクラム」で、「ブレッドクラム」を選択します

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

4. 「ナビゲーションのプリファレンス」では「新規ナビゲーション・メニュー・エントリの作成」を選択して「次へ」をクリックします。

5. 「ソース」には次を入力します。

a. ソース・タイプ - 「表」を選択します

b. 表/ビューの名前 - 「DEMO_TASKS (table)」を選択します

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

6. 「設定」には次を入力します。

a. 表示列 - 「NAME」を選択します

b. 終了日列 - 「END_DATE」を選択します

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

ページ・デザイナに、新しい「カレンダ」ページが表示されます。

4.4 ページ・デザイナについて

ページ・デザイナを使用して、Oracle Application Expressでアプリケーションの個別ページを開発、管理します。ページ・デザイナは強力な統合開発環境(IDE)で、多くのペインとツールバーを備えており、開発者が必要とするすべてを簡単に扱えます。このチュートリアルでは、大部分の時間をページ・デザイナに費やします。

注意:

このセクションは非常に強力なツールの概要を説明します。ページ・デザイナの機能の詳細は、Oracle Application Expressの公式ドキュメント『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のページ・デザイナでのページ管理に関する章を参照してください。

ツールバー

ページ・デザイナの最上部はツールバーです。ツールバーには、いくつかのボタンとメニューがあります。ページ・セレクタ、変更のやりなおし、共有コンポーネント、「保存」および「ページの保存と実行」を最も多く使用します。ボタンにマウス・カーソルを合せると、ツールチップにその名前が表示されます。

ページ・セレクタ

現在のページを表示します。ページ番号を直接入力することも、ポップアップする値リストをクリックしてページを選択することもできます。

ページ・ロック

ページがロック解除されている(クリア)か、自分がロックしたか(緑)、別の開発者がロックしたか(赤)を示します。別の開発者がロックしていない場合、このアイコンをクリックしてページをロックまたはロック解除できます。

変更を元に戻す

クリックすると、ページ・デザイナ内で行った前回の更新が元に戻されます。

変更の再実行

クリックすると、「変更を元に戻す」を使用して元に戻した最後の更新を再適用します。

作成

新しいページ、リージョン、共有コンポーネント、開発者コメントおよびチーム開発エントリを作成します。

ユーティリティ

現在のページに対してチェック、削除、エクスポートまたは履歴確認を実行します。属性辞書やアプリケーション・ユーティリティにアクセスすることも、アプリケーションをアップグレードすることもできます。

設定

2ペイン・レイアウトと3ペイン・レイアウトを切り替えるか、ページ・レイアウトをリセットしてデフォルトに戻します。

チーム開発

このページの機能、To Do、バグおよびフィードバックの各エントリを表示します。各エントリ・タイプのフィルタ済レポートにドリル・インすることもできます。

開発者のコメント

現在のページの開発者コメント(たとえばバグやTo Do)にドリル・インします。新しいコメントの作成、表示されているモーダル・ウィンドウからのコメントの削除もできます。

共有コンポーネント

共有コンポーネント・ページにナビゲートします。

保存

現在のページで行ったすべての変更を保存します。

ページの保存と実行

すべての変更を保存してから、現在のページを実行します。

「ページの保存と実行」を使用して、モーダルおよび非モーダル・ページを直接実行することはできません。そのかわりに、通常のページに移動してそこからページを実行してから、動作中のアプリケーション内のモーダルまたは非モーダルのページに移動します。

ペイン

ページ・デザイナは様々なペインに分割されています。各ペインは特定の目的専用です。

左ペイン(「レンダリング」ツリー)

レンダリング、動的アクション、プロセスとページ共有コンポーネントに対応するタブがあります。各タブには、現在のページに作成された、対応するコンポーネント・タイプとコンポーネントのリストが表示されます。

右クリックしてコンテキスト・メニューにアクセスします。コンポーネントをツリー内で上下にドラッグして、選択したコンポーネントの位置または順序を変更することもできます。

中央ペイン

レイアウト、コンポーネント・ビュー、メッセージ、ページ検索およびヘルプに対応するタブがあります。

- レイアウトは、ページの視覚的表示を表します。新しいコンポーネントをページに追加するには、最下部の「ギャラリ」ペインからページにドラッグして、レイアウトにドロップします。

- コンポーネント・ビューは、ユーザー・インタフェース要素とアプリケーション・ロジックをコンポーネント・タイプ別にグループ化します。

- メッセージにはエラーと警告が表示されます。メッセージをクリックすると、プロパティ・エディタ内で、エラーまたは警告に関連付けられた対応する属性にフォーカスが移動します。

- 「ページ検索」を使用すると、現在のページ内のすべてのテキストを検索できます。

- 「ヘルプ」は属性固有のヘルプを表示します。プロパティ・エディタ内で属性名をクリックすると、属性の情報と例が表示されます。

右ペイン(プロパティ・エディタ)

プロパティ・エディタを表示します。選択したコンポーネントの属性を更新するには、プロパティ・エディタを使用します。

複数のコンポーネントを選択すると、プロパティ・エディタには共通の属性のみが表示されます。共通の属性を更新すると、選択したすべてのコンポーネントのその属性が更新されます。

4.5 アプリケーションの初回実行

アプリケーションは、機能的には実行の準備ができています。

アプリケーションを実行するとは、新しいブラウザ・ウィンドウを開いてアプリケーションをレンダリングするようOracle Application Expressに指示することです。レンダリングされたアプリケーションは、「アプリケーション・ランタイム」(または単に「ランタイム」)と呼ばれます。新しいページを作成したら、そのページを個別に実行するか、またはアプリケーション全体を実行できます。

ページ・デザイナからアプリケーションを初回実行してアプリケーション・ランタイムを表示します。

ページ・デザイナからアプリケーションを実行するには、次のステップを実行します。

1. ツールバーで「ページの保存と実行」ボタンをクリックします。

「ログイン」ページが表示されます。

2. Application Express資格証明を入力し、「ログイン」をクリックします。

アプリケーションの「カレンダ」ページが開きます。

ナビゲーション・ペインでメニュー・アイテムをクリックして異なるページに移動することでアプリケーション内を探索します。サンプルの表とデータは未加工の形式で様々なページに表示されます。チュートリアルのこの先では、エンド・ユーザーに対するこのデータの表示と機能を向上させるための開発プロセスをガイドします。

ヒント:

これ以降、.zipファイルから様々なスクリプトをロードすることで、次以降の任意の章の先頭から開始することができます。これは先に進んだり戻ったり、または回答のヒントとして学習成果を確認したりするのに便利です。

次のレッスンに進みます。

5 ホームページの開発

ページ・デザイナを使用して、プロジェクト・タスクのチャートと、アプリケーションのホームページにある未処理タスクについて詳しく説明したレポートを作成します。

このレッスンについて

このレッスンでは、ページ・デザイナとアプリケーション・ランタイム(略して「ランタイム」)という2つの主要な開発手段を紹介します。

ページ・デザイナで、「レンダリング」ツリーと「レイアウト」タブを使用して、ホームページに新しいリージョンを追加します。続いてプロパティ・エディタを使用して、SQL文や外観オプションなど、リージョンとページ・コンポーネントの様々な属性を編集します。

ランタイムでは、開発者ツールバーを使用して、ページに即座に変更を加えたり、ページ・デザイナにすぐに戻ったりできます。

一度作成して、作成後にアプリケーション内の複数のページに追加できる要素がある「共有コンポーネント」セクションを使用して、ナビゲーション・メニューのプレースホルダ・アイコンをアップデートできます。

ここから開始:
Basic Projects App Export - Topic 3.sql
前のレッスンを完了していない場合、付録「作業領域へのアプリケーションのインストール」を使用して上述のSQLスクリプトを作業領域にインポートし、このレッスンから先に学習を続けられます。このスクリプトは、このチュートリアル付属の.zipファイルを解凍した場所の/filesサブディレクトリにあります。

5.1 アプリケーション・ランタイムからページ・デザイナへの移動

前のレッスンの最後で、ページ・デザイナからアプリケーションを実行しました。それにより、Webブラウザのウィンドウにアプリケーション・ランタイムの「カレンダ」ページが開きました。

アプリケーション・ビルダーからデスクトップ・アプリケーションを実行すると、すべての編集可能な実行ページの最下部にランタイム開発者ツールバーが表示されます。

開発者ツールバーを使用すると、現在のアプリケーションまたは現在実行しているページをすぐに編集できます。開発者ツールバーは、開発者レベルの権限を持つユーザーに対してのみ表示されます。

ホームページの開発を開始するには、ページ・デザイナに戻ってアプリケーション・ビルダーのホームページを検索します。ランタイムの開発者ツールバーにあるショートカットを使用することもできます。

開発者ツールバーを使用してページ・デザイナのホームページに戻るには、次のステップを実行します。

1. アプリケーション・ランタイムの左上で、次のいずれかを実行します。

- アプリケーションの名前Demo Projectsをクリックします。

- サイドバーのHomeリンクをクリックします。(開発者ツールバーの「ホーム」をクリックしないでください。)

空白のホームページが表示されます。

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

注意:
「ページの編集 #」ボタンの番号は、ページ・デザイナで割り当てられたページ番号に対応します。

ブラウザは、ページ・デザイナのウィンドウに自動的に切り替わります。

5.2 ホームページへのタスク概要チャートの追加

ページ・デザイナで見ているのは、ホームページの骨組みです。ユーザーがログイン時にすぐに目にするように、すべてのプロジェクトの残りのタスクのチャートを作成します。

「ギャラリ」の「レイアウト」タブの下には、「リージョン」、「アイテム」および「ボタン」の3つのタブがあります。各「ギャラリ」タブにはアプリケーション・ページに追加できる要素があり、要素を右クリックして「追加先」機能を選択することで配置できます。

ページ・デザイナでは、「レイアウト」タブでマウスでオブジェクトをドラッグするなど、いくつかの方法でページ・コンテンツを対話的に操作できます。

グラフをページに追加する手順:

1. ページ・デザイナで、「ギャラリ」の「リージョン」タブをクリックします。

2. チャート要素を見つけます。

3. 「チャート」を右クリックして「追加先」を選択し、「コンテンツ本体」を選択します。

ヒント:
「ギャラリ」から「レイアウト」にコンテンツをドラッグ・アンド・ドロップすることもできます。リージョンを上へドラッグして「コンテンツ本体」の下の小さな黄色のセクションに合せると、黄色のセクションが展開します。黒い四角がついた濃い黄色のセクションは、リージョンが表示される位置を示します。

ヒント:

前のアクションを元に戻すには、「元に戻す」ボタンをクリックします。

5.3 プロパティ・エディタでのチャート・リージョンの編集

次に、名前などの更新されるアイテムがあるチャート・リージョンを構成する必要があります。

新しいリージョンを構成するごとに、プロパティ・エディタでいくつかの属性フィールドを更新する必要があります。リージョンが複雑であるほど、多くのフィールドを構成する必要があります。一部のフィールドには、「タイトル - 新規」など、デフォルトのプレースホルダ・コンテンツがすでに含まれています。

チャート・リージョンを選択してプロパティ・エディタでデフォルト値を編集します。

チャート・リージョンの名前を変更するには、次のステップを実行します。

1. 「コンテンツ本体」の下の「レンダリング」ツリーで、「新規」チャートをクリックして選択します。

2. プロパティ・エディタで「指定」グループを見つけます。

ヒント:

属性は、機能グループに編成されます。これらのグループを展開または縮小するには、「共通の表示」、「すべて表示」、「すべて閉じる」および「すべて開く」アイコンをクリックします。

属性を検索するには、「フィルタ・プロパティ」フィールドにキーワード検索を入力します。その用語を含むグループと属性が表示されます。

3. タイトルに「Project Tasks」と入力して[Enter]を押します。

「レンダリング」タブと「レイアウト」のリージョンの名前が更新されます。

また、変更したグループ名の近くにはマーカー(青い三角形)が表示されます。これらのマーカーは、保存されていない変更があるフィールドの横に表示されます。まだリージョンに対して行うべき追加の変更があるので、保存の前にそれらを完了します。

注意:
ページ・デザイナ内で他のどこかをクリックすると、プロパティ・エディタのフィールドも自動的に更新されます。

次に、プロパティ・エディタで外観テンプレートを編集して、チャートのサイズを変更します。

リージョンのテンプレート・オプションを変更するには、次のステップを実行します。

4. プロパティ・エディタで「外観 - テンプレート・オプション」を見つけます。

ヒント:

「グループに移動」アイコンをクリックすると、プロパティ・エディタに現在リストされているすべてのグループが表示されます。リストにあるグループの名前を選択すると、プロパティ・エディタでそこにジャンプします。

プロパティ・エディタ最上部の検索フィルタを使用して表示されるフィールドを絞り込むか、[Ctrl] + [F]または[Cmd] + [F]でブラウザの検索機能を使用してページ・デザイナのアイテムを検出します。

5. 「テンプレート・オプション」ボタンをクリックします(テンプレート・デフォルトの使用, スクロール - デフォルト)。

「テンプレート・オプション」ダイアログが表示されます。

6. 「共通 - 本体高さ」には480pxを選択し、「OK」をクリックします。
「テンプレート・オプション」ボタンが、現在の構成を反映して「テンプレート・デフォルトの使用, 480px, スクロール - デフォルト」に更新されます。

次に、チャートを構成するために「レンダリング」タブで属性アイテムを選択してプロパティ・エディタで編集します。

ここまでは、プロパティ・エディタでリージョンのプロパティを構成しました。これらのプロパティは、ページ上のリージョンが、ページの残りのリージョンと関連してどう表示されるかを制御します。

次に、リージョンの属性を変更するために「レンダリング」ツリーで「属性」フォルダを選択します。属性はリージョン・タイプ(ここではチャート・リージョン)に固有で、リージョンの内部特性を制御します。たとえば、「属性」でチャート・タイプ(棒グラフ)、向き(縦)および軸ラベルを選択します。

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

7. 「レンダリング」タブで、「属性」フォルダを選択します。

8. Property Editorで、次のように操作します。

- 外観: 向き - 「横」を選択します

- 外観: 積上げ - 「はい」を選択します

- レイアウト: 高さ - 「480」と入力します

注意:
プロパティ・エディタ内の属性はグループに整理されています。プロパティ・エディタの箇条書きリストで「グループ: 属性 - アクション」を指定すると、指定の属性を簡単に見つけられます。

次に、必要なSQL問合せを追加してチャートのデータを入力します。

5.4 チャートのSQL問合せの定義

最後に、チャートのSQL問合せを定義して、データベースのDEMO_PROJECTS表からデータを導入する必要があります。

SQL問合せはチャートの動的部分です。ユーザーがアプリケーションで進捗を更新すると、チャートに変更が反映されてユーザーがページをリフレッシュするたびに更新されます。

このチャートに対して2つの問合せを定義します。いずれもDEMO_TASKS表のIS_COMPLETE_YN列を問い合せますが、1つ目はY (= yes)とマークされたアイテムを表示し、2つ目はN (= no)とマークされたアイテムを表示します。ユーザーがタスクが完了したかどうかをアプリケーションで示すと、IS_COMPLETE_YN列にデータが移入されます。

ヒント:

データ系列は、「レンダリング」ペインの「シリーズ」フォルダにあります。現時点では、赤いXが横についた「新規」系列が表示されています。

これは、必須要素が不適切に定義されていることを示すエラー・メッセージです(この場合、まだ問合せを入力していないため)。また、中央ペインの「メッセージ」タブに、3つのシステム・メッセージが現在表示されていることが示されます。「メッセージ」タブをクリックすると、特定のエラーと、ページ・デザイナのどこに表示されているかが表示されます。この事例では、すべてのメッセージが、チャートのデータ系列の必須要素が存在しないことを示しています。

「レンダリング」ペインの「シリーズ」アイテムに対してSQL問合せ「Yes」を定義するには、次のステップを実行します。

1. 「レンダリング」タブの「シリーズ」の下にある「新規」をクリックします。

2. Property Editorで、次のように操作します。

a. 指定: 名前 - 「Completed Tasks」と入力します

b. 「ソース: SQL問合せ」フィールドを見つけます。次のコードをコピーして貼り付けます。

select p.created
, p.id
, p.name
, count(t.id) tasks
from demo_projects p
, demo_tasks t
where p.id = t.project_id
and nvl(t.is_complete_yn,'N') = 'Y'
group by p.created, p.id, p.name
order by p.created

c. 列のマッピング: ラベル - 「NAME」を選択します

d. 列のマッピング: 値 - 「TASKS」を選択します

次に、2つ目の系列を追加して2つ目の問合せを適用します。問合せが非常に類似しているため、ゼロから定義しなくとも、この系列を複製していくつか細かく修正することができます。

SQL問合せを複製して再構成するには、次のステップを実行します。

3. 「レンダリング」ツリーで、「Completed Tasks」系列を右クリックします。

4. 「複製」を選択します。
系列「Completed Tasks_1」が、「シリーズ」フォルダの下に、選択された状態で表示されます。

5. Property Editorで、次のように操作します。

a. 指定: 名前 - 「Incomplete Tasks」と入力します

b. 「ソース: SQL問合せ」フィールドを見つけます。次のコードをコピーして貼り付け、現在のコンテンツを上書きします。

select p.created
, p.id
, p.name
, count(t.id) tasks
from demo_projects p
, demo_tasks t
where p.id = t.project_id
and nvl(t.is_complete_yn,'N') = 'N'
group by p.created, p.id, p.name
order by p.created

注意:
各プロジェクト・レコードに対してDEMO_TASKSを数え、適切なWHERE条件を使用することで、2つの系列(「Completed Tasks」と「Incomplete Tasks」)が定義されます。

最後に、適切なラベルで軸を更新します。

6. 軸フォルダの下にネストされている「レンダリング」ツリーで、x軸をクリックします。

7. 「指定: タイトル」に「Projects」と入力します。

8. y軸をクリックします。

9. 「指定: タイトル」に「Tasks」と入力します。

10. ページ・デザイナ・ツールバーの「保存」をクリックします。

タスク概要に対するチャートの追加が完了しました。

5.5 レポート・ホームページへの未処理タスクの追加

追加したチャートはすべてのチーム・メンバーのすべてのタスクの概要を提供しているため、個人でなくすべてのユーザーに適用される情報のみを提供します。ユーザーが自分の未処理タスクを表示するスペースを追加するために、クラシック・レポートを追加できます。

Oracle Application Expressでは、レポートは書式が設定されたSQL問合せの結果であり、Application Expressがデータベースから最新情報を導入し、人間が読み取れる表にそれを移入することを意味します。読取り専用のレポートもあれば、エンド・ユーザーがデータを操作、編集できる対話的なものもあります。

クラシック・レポート・リージョンを追加するには、次のステップを実行します。

1. 「レンダリング」ツリーで、「コンテンツ本体」を右クリックして「リージョンの作成」を選択します。
新しいリージョンが表示されます。

2. プロパティ・エディタで、リージョン・プロパティを編集します。

a. 指定: タイトル - 「My Outstanding Tasks」と入力します

b. 指定: タイプ - 「クラシック・レポート」を選択します

c. SQL問合せ - 次をコピーして貼り付けます。

select p.name project
, t.name task
, t.end_date
from demo_tasks t
, demo_projects p
, demo_milestones m
, demo_team_members tm
where p.id = t.project_id
and m.id = t.milestone_id (+)
and tm.id = t.assignee and nvl(t.is_complete_yn, 'N') = 'N'
and upper(tm.username) = upper(:APP_USER)
order by t.end_date

ヒント:
username = :APP_USERのwhere条件は、レコードを、アプリケーションを実行する人に割り当てられているものに制限します。

3. 「ページの保存と実行」をクリックします。求められたら、アプリケーションにログインします。

5.6 開発者ツールバーを使用したリージョン外観の変更

ページ・デザイナでは、プロパティ・エディタで「外観: テンプレート・オプション」ボタンをクリックしてテンプレート・オプションを更新できます。

別の方法として、開発者であれば、開発者ツールバーでライブ・テンプレート・オプションを呼び出すことで、ランタイム環境でのリージョンの表示特性を更新することもできます。

開発者ツールバーで「クイック編集」オプションをクリックしてオプションを変更すると、基礎になるリージョンにすぐに影響が反映されます。クイック編集を使用して個別のページ・コンポーネント(たとえばリージョン、アイテム、列またはボタン)を編集します。

クイック編集をクリックすると、マウス・カーソルがあるコンポーネントの右上隅にレンチのアイコンが表示されます。次の2つのオプションがあります。

- コンポーネント内でクリックすると、選択したコンポーネントにフォーカスがある状態で、すぐにページ・デザイナに戻ります。

- レンチのアイコンをクリックすると、コンポーネントの「ライブ・テンプレート・オプション」ダイアログが起動しますが、ランタイム内にとどまります。

ヒント:
クイック編集をキャンセルするには、コンポーネント外をクリックするか、[Esc]を押します。

開発者ツールバーを使用してランタイム内でページ要素を編集するには、次のステップを実行します。

1. ランタイム開発者ツールバーで、「クイック編集」をクリックします。

2. 「My Outstanding Tasks」リージョン(ページ最下部)にカーソルを合せてレンチのアイコンをクリックします。

「ライブ・テンプレート・オプション」ダイアログが表示されます。

3. 「リージョン」タブで、次を入力します。

a. 一般: 本体パディングの削除 - 有効化するには、チェック・ボックスをクリックします

b. 本体高さ - 「480px」を選択します

リージョンが各々のオプションにより変更されます。

リージョンのテンプレート・オプション(「本体高さ」、「ヘッダー」、スタイルなど)は、リージョンの全体的な表示を変更します。リージョンのプロパティは、リージョンがどう表示されるかを決定します。

一部のリージョン・タイプには、属性プロパティ(クラシック・レポート、チャートなど)も含まれます。リージョンの属性は、リージョンのコンテンツがどう表示されるかを指定します。

4. 「ライブ・テンプレート・オプション」ダイアログで、「属性」タブをクリックします。

5. 次のように入力します。

a. 一般: ストレッチ・レポート - 有効化するには、チェック・ボックスをクリックします

b. レポート境界線 - 「外部境界線なし」を選択します

6. 「保存」をクリックします。

設定が保存されます。

これでタスク・ブレークダウン・レポート・リージョンの更新を完了しました。

5.7 ホームページ・サイドバーへのアイコンの追加

ページ左上のサイドバーにあるナビゲーション・リンクの横のアイコンは、空のプレースホルダです(サイドバーを展開するためにメニュー・アイコンをクリックする必要があることがあります)。このサイドバーは、「ナビゲーション・メニュー」という名前のリストです。開発者には、アプリケーションのフォームと機能への関心が必要です。ナビゲーション・メニューのアイコンとリンクは技術的に機能しますが、関連グラフィックへの各リンクに対応するプレースホルダ・アイコンを更新するとアプリケーションの操作性を向上させます。

Oracle Application Expressのすべてのインスタンスには、この目的ですぐに使用できる多数のアイコン・セットが付属しています。

アプリケーション・ビルダーの「共有コンポーネント」セクションでリストを編集することで、ナビゲーション・メニューに関連したアイコンを更新できます。共有コンポーネントは、アプリケーション全体で使用できるオブジェクトです。ベスト・プラクティスとして、可能なかぎり共有コンポーネントに一度コードを定義して、様々なページでそのコンポーネントを参照することをお薦めします。

共有コンポーネントで「ナビゲーション・メニュー」アイコンを更新するには、次のステップを実行します。

1. アプリケーション・ランタイムの開発者ツールバーで、「アプリケーション####」(####がアプリケーションIDを表す)をクリックします。
アプリケーションのホームページが表示されます。

2. 「共有コンポーネント」をクリックします。

3. 「ナビゲーション」で、「リスト」をクリックします。

4. 「リスト」レポートで、「デスクトップ・ナビゲーション・メニュー」を選択します。

5. 「リスト詳細」レポートで、「ホーム」を選択します。

6. 「イメージ/クラス」アイテムを見つけます。フィールド末尾の上矢印アイコン(^)をクリックします。

「イメージ」ライブラリが別ウィンドウで開きます。

「フォントAPEX」ライブラリ(短縮形は接頭辞「fa-」を使用)に用意されているイメージを確認します。これらのイメージはアプリケーション全体で使用でき、見映えを改善し、テキストのみの場合よりも見てわかりやすい目印を提供します。

7. fa-homeを見つけてクリックします。

ヒント:
ブラウザの検索機能([Ctrl] + [F]または[Cmd] + [F])を使用してページを検索できます。

イメージの名前(fa-home)は、「イメージ/クラス」フィールドに表示されます。

これが唯一の変更だった場合は、変更を保存するために「変更の適用」ボタンをクリックしてかまいませんが、まだ残りの「ナビゲーション・メニュー」エントリを更新する必要があります。

毎回イメージ・ライブラリを参照するのでなく、「イメージ/クラス」のイメージの名前を入力することもできます。

8. 「ナビゲーション・メニュー」で残りのエントリを更新します。

a. 画面の左上で「次へ」アイコン(>)をクリックして次のエントリ(Team Members)に移動します。

b. Team Membersリスト・エントリで、「イメージ/クラス」に「fa-users」と入力します

c. 「次へ」アイコン(>)をクリックします。

d. Projectsリスト・エントリで、「イメージ/クラス」に「fa-folder」と入力します

e. 「次へ」アイコン(>)をクリックします。

f. 「カレンダ」リスト・エントリで、「イメージ/クラス」に「fa-calendar」と入力します

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

10. 「リスト詳細」ページの右上で、「ページの実行 1」アイコン(再生ボタン)をクリックします。

ホームページがリロードされます。

11. 画面左のナビゲーション・メニューにある新しいアイコンを確認します。

12. 完了したら、「共有コンポーネント - リスト詳細」ウィンドウに戻り、ページ・ブレッドクラムの「アプリケーション####」をクリックしてアプリケーションのホームページに戻ります。

これでホームページは完成です。

このレッスンでは、ページ・デザイナを使用して、ページ上のページ・コンポーネントを追加および拡張する方法を学習しました。また、ライブ・テンプレート・オプションを使用してリージョンの外観を改善しました。最後に、共有コンポーネントを使用して、すべてのページ(ナビゲーション・メニュー)に表示されるコンポーネントを更新しました。

次のレッスンに進みます。

6 「Team Member」ページの開発

ページの作成ウィザードで生成された「Team Member」レポートをチーム・メンバーに便利なディレクトリに開発し、「Team Member」フォームを開発してユーザーがより簡単に「Team Member」データを編集できるようにします。

このレッスンについて

これまでに、アプリケーションの作成ウィザードを使用して、DEMO_TEAM_MEMBERS表のレポートとフォームを生成しました。

このレッスンでは、ページ・デザイナを使用して一般的なページの組み合せ、レポートとフォームを開発します。レポートはSQL問合せの書式設定された結果で、フォームはレポートと対になるページで、レポートが問い合せる表をユーザーが更新できるようにします。(通常、フォームは親レポート・ページの子ページです。)どちらのページもDEMO_TEAM_MEMBERS表を問い合せます。

「Team Members」レポートはユーザーの連絡先情報のリポジトリとして使用されますが、「Team Members」フォームは、ユーザーが開いて「Team Members」レポートの情報を更新できる、別のページです。

レポート・ページを開発するには、SQL問合せで問い合せられた列のリストを更新し、ランタイムに表示された列の一部を削除して、ページの下部を移動してそのテキストを編集することによって主レポートを更新します。

アプリケーションの作成ウィザードでレポートとフォームが作成されると、デフォルトでフォームはランタイムにモーダル・ダイアログとして表示されます。モーダル・ダイアログは、同じブラウザ・ウィンドウ内に表示されるオーバーレイ・ウィンドウです。それはユーザーが終了して閉じるまで、アクティブでフォーカスされたままです。

フォーム・ページでは、ページの作成ウィザードのデフォルトから、一部のフィールドへの必須条件の追加など、フィールドの外観と機能を更新し、いくつかの「表示のみ」アイテムを構成します。また、ユーザーが必要に応じて展開し、あまり使用されない情報を参照できるサブ・リージョンを追加します。

ここから開始:
Basic Projects App Export - Topic 4.sql
前のレッスンを完了していない場合、付録「作業領域へのアプリケーションのインストール」を使用して上述のSQLスクリプトを作業領域にインポートし、このレッスンから先に学習を続けられます。このスクリプトは、このチュートリアル付属の.zipファイルを解凍した場所の/filesサブディレクトリにあります。

6.1 対話モード・レポートのSQL問合せの編集

Oracle Application Expressの対話モード・レポートでは、エンド・ユーザーが必要に合せてデータを操作でき、アプリケーション開発者に多数のレポートを定義してもらう必要がありません。エンド・ユーザーが表示されるデータとその表示方法を操作できるようにするには、基礎になるOracle Database表からデータをすべて取得するSQL文を定義する必要があります。

ページ・デザイナのコード・エディタを使用して、対話モード・レポートのDEMO_TEAM_MEMBERS表の列を問い合せるSQLを編集します。これにより、ユーザーが他のユーザーのタスクの表示や自分のワークフローの更新などの操作ができるようになります。

ページ・デザイナで「Team Members」対話モード・レポートを編集するには次のステップを実行します。

1. アプリケーションのホームページで、「2 - Team Members」をクリックしてページ2に移動します。

2. 「レンダリング」ツリーで、「Team Members」リージョンを選択します。

3. プロパティ・エディタの「ソース: SQL問合せ」の下で、「コード・エディタ」アイコンをクリックします。

4. コード・エディタで現在のコンテンツを削除してから、次のコードをコピーして貼り付けます。

select
"ID",
"USERNAME",
"FULL_NAME",
"EMAIL",
"PROFILE",
"CREATED",
"CREATED_BY",
"UPDATED",
"UPDATED_BY"
from "DEMO_TEAM_MEMBERS"

5. 「検証」アイコン(チェックマーク)をクリックして、SQL文が有効であることを確認します。

6. 「OK」をクリックします。

これで対話モード・レポートのSQL問合せを更新できました。

6.2 ランタイムの対話モード・レポートに表示される列の変更

対話モード・レポートのSQL文は上述のすべての列を問い合せないと機能しませんが、対話モード・レポートにそれらをすべて表示するとユーザーに迷惑です。ID、CREATEDおよびCREATED_BYなどの列は、主にエンド・ユーザーでなく開発者に情報を伝えるために存在します。

ランタイムで「アクション」メニューを使用して対話モード・レポートの主レポートを構成し、エンド・ユーザーがどの列にアクセスできるかを変更します。

対話モード・レポートに表示する列を変更するには、次のステップを実行します。

1. ページ・デザイナで「ページの保存と実行」ボタンをクリックします。

a. ページのフォーカシングに関するメッセージで求められた場合、「再試行」をクリックします。

別のブラウザ・ウィンドウにランタイムが開くかリフレッシュされます。

2. ランタイムで、検索バーの横にある「アクション」メニュー・ボタンをクリックします。

3. 「列」を選択します。
「列選択」ダイアログが表示されます。

4. 「レポートに表示」列で、[Ctrl]キーを押したまま次のアイテムをクリックして、複数のアイテムを選択します。

- ID

- ユーザー名

- 作成日

- 作成者

- 更新日

- 更新者

5. 列ペインの間にある「削除」ボタン( < )をクリックします。

6. 「適用」をクリックします。

表のデフォルトの順序を「フルネーム」列のアルファベット順に構成して、レポートの操作性を向上させることもできます。

「フルネーム」を基準に行の順序をソートするには、次のステップを実行します。

7. 「フルネーム」列ヘッダーをクリックして「列ヘッダー」メニューを開き、「昇順ソート」アイコンをクリックします。

最後に、レポートを保存してこれらの変更を対話モード・レポートの主レポートに維持する必要があります(他のレポート・タイプにはプライベート、代替およびパブリックがあります)。

すべてのユーザーがプライベート・レポートを保存できますが、主レポートを保存できるのは開発者のみです。主レポートは、最初に表示されるレポートです。他のユーザーが主レポートの名前を変更したり削除したりすることはできません。

現在の設定をデフォルトで保存するには、次のステップを実行します。

8. 「アクション」をクリックし、「レポート」、「レポートの保存」の順に選択します。

9. 「保存」で、「デフォルトのレポート設定として保存」を選択します。

10. デフォルトのレポート・タイプが「主」であることを確認し、「適用」をクリックします。

注意:
主レポートは、すべてのエンド・ユーザーが初めてページにアクセスするときのレポート表示方法です。任意の数の代替レポートを保存できます。なんらかの追加のレポート・レイアウトが保存されたら、エンド・ユーザーは、自動的に表示されるドロップダウン・リストからそれを選択して実行できます。

これで、いくつかの列をビューから非表示にして、対話モード・レポートのデフォルトのソート順を変更できました。

6.3 異なるリージョンへのボタンの移動

ページの作成ウィザードは対話モード・レポートに自動的に「CREATE」ボタンを追加して、エンド・ユーザーが新しいメンバーをすぐに表に追加できるようにしていますが、ボタンを別の場所に配置しなおす方が適切な場合があります。

ページ・デザイナのコンテキスト・メニューを使用して、「CREATE」ボタンを「ブレッドクラム」リージョンに移動します。

ヒント:

ドラッグ・アンド・ドロップで「レイアウト」にアイテムを移動することもできます。

ヒント:

前のアクションを元に戻すには、「元に戻す」ボタンをクリックします。

コンテキスト・メニューを使用して異なるリージョンにボタンを移動するには、次のステップを実行します。

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

2. 「レイアウト」ペインで、「CREATE」ボタンを右クリックします。

3. 「移動先」を選択し、「ブレッドクラム」を選択して、「作成」を選択します。

「CREATE」ボタンが「ブレッドクラム」リージョンのCREATEプレースホルダに移動します。

注意:

「レンダリング」ツリーで、「リージョン・ボタン」フォルダ(「CREATE」ボタンを含む)は、コンテンツ本体からブレッドクラムに自動的に移動します。

4. Property Editorで、次のように操作します。

a. 指定: ラベル - 「Add Team Member」と入力します

b. 外観: ホット - 「はい」を選択します。

5. 「ページの保存と実行」をクリックして、変更されたボタンを確認します。

a. 「ページにフォーカス」ダイアログが表示されたら、「再試行」をクリックします。

別のブラウザ・ウィンドウにランタイムが開くかリフレッシュされます。

これで「作成」ボタンを移動できました。

Team Membersのレポートとフォームのレポート部分が完成しました。次に、「Team Members」フォームを開発します。

6.4 モーダル・ダイアログでのストレッチ・フォーム・フィールドの有効化

次に、「Team Members」レポート・ページに、「Maintain Team Member」フォームを開発します。

「Maintain Team Member」フォームはモーダル・ダイアログです。モーダル・ダイアログは、ページ・デザイナでは別のページとみなされます。動作はページ内ページのようですが、複雑度は同等だからです。

まずページ・デザイナでフォームに移動し、フォームの「テンプレート・オプション」でフィールド幅を構成して、フォームが見やすく、統一的に見えるようにします。

リージョン内のすべてのフィールドの幅を広げるには、次のステップを実行します。

1. ランタイムで、チーム・メンバーの名前の横にある「編集」アイコン(鉛筆)をクリックし、「Maintain Team Member」モーダル・ダイアログを表示します。

2. 開発者ツールバーの「ページの編集 3」をクリックして、ページ・デザイナにページを表示します。

3. 「Maintain Team Member」リージョンを選択します。

4. プロパティ・エディタで「外観: テンプレート・オプション」を見つけて「テンプレート・オプション」ボタン(「テンプレート・デフォルトの使用」)をクリックします。

5. 「テンプレート・オプション」で、次のように操作します。

- 詳細: アイテムの幅 - ストレッチ・フォーム・フィールドを選択します

6. 「OK」をクリックします。
「テンプレート・オプション」ボタンが「テンプレート・デフォルトの使用, ストレッチ・フォーム・フィールド」に変更されます。

6.5 フォーム・フィールドとTextareaの更新

アプリケーションの作成ウィザードは、DEMO_TEAM_MEMBERS表の列に基づくフィールドを使用して、このページに自動的にデータを移入しました。技術的にはフィールドはすべて機能していて正しく表示されていますが、次のようにインタフェースを変更するとユーザーに有益です。

- ユーザー名など、特定のフィールドのユーザーによる入力を必須にする。これは一般的で適切な方法です。NOT NULL制約は、NULL値を受け入れないように列に強制します。これは常に値を含むようにフィールドに強制します。新しいレコードを挿入したり、このフィールドに値を追加しないでレコードを更新したりできないことを意味します。

- ユーザーによる情報入力を奨励するには、「プロファイル」フィールドのサイズを増やします。このフィールドは、ロールとチームの任務の説明として役立ちます。

- 写真BLOBのラベルを変更します。

- 見やすくするために、不必要なフィールドをビューから非表示にします。

「ユーザー名」と「フルネーム」フィールドを必須に変更してユーザーが空白のままにすることができないようにします。

1. [Ctrl]キーを押したままP3_USERNAMEとP3_FULL_NAMEをクリックして、両方を選択します。

2. Property Editorで、次のように操作します。

a. 外観: テンプレート - 「必須」を選択します

b. 検証: 必須の値 - 「はい」を選択します

「ユーザー名」と「フルネーム」のフィールドが必須になりました。

「プロファイル」フィールドはユーザーが個人情報を入力するところなので、複数のテキスト行の表示をサポートする必要があります。それをテキスト領域に変換するには次のステップを実行します。

3. P3_PROFILEを選択します。

4. Property Editorで、次のように操作します。

a. 指定: タイプ - 「テキスト領域」を選択します

これで「プロファイル」フィールドが単一行でなく段落として表示されるようになりました。

「Photo Blob」フィールドのラベルを変更するには、次のステップを実行します。

5. P3_PHOTO_BLOBを選択します。

6. Property Editorで、次のように操作します。

a. ラベル: ラベル - 「Photo」と入力します

これでフィールドのラベルが「Photo」になりました。

ユーザーがプロファイルを更新するときに、いくつかのフィールドはまったく不必要です。

フィールドをビューから非表示にするには、次のステップを実行します。

7. [Ctrl]キーを押したまま、次の4つのアイテムのみを選択します(P3_PHOTO_BLOBは選択しません)。

- P3_PHOTO_FILENAME

- P3_PHOTO_MIMETYPE

- P3_PHOTO_CHARSET

- P3_PHOTO_LAST_UPDATED

8. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

写真のファイル名、MIMEタイプ、キャラクタ・セットおよび最終更新日のフィールドが、ランタイムでビューから非表示になります。

ヒント:
「クイック選択」ボタンを使用して、リスト全体を表示するのでなく最も一般に使用されるタイプのショート・リストから選択することもできます。

注意:
複数のコンポーネントを選択すると、プロパティ・エディタは共通の属性の属性名の横に青い三角形を付けて識別し、属性フィールドの外枠を青で示します。選択されたコンポーネントがすべて同じ属性値だった場合、名前と値は通常どおり表示されます。すべての値が一致しない場合、フィールドは空です。

6.6 展開可能サブ・リージョンの作成

一部の詳細(タイムスタンプなど)は便利ですが、ほとんどの時間、ユーザーが参照する必要はありません。それらを「Audit Details」サブ・リージョンにグループ化し、将来の使用に備えて維持しつつフォームのスペースを節約することができます。

折りたためるサブ・リージョンを作成するには、次のステップを実行します。

1. 「レンダリング」ツリーで、「Maintain Team Member」リージョンを右クリックして「サブ・リージョンの作成」を選択します。
「新規」サブ・リージョンが、「サブ・リージョン」フォルダに表示されます。

2. Property Editorで、次のように操作します。

a. 指定: タイトル - 「Audit Details」と入力します

b. 外観: テンプレート - 折りたたみ可能を選択します

プロパティ・エディタで、監査列を「Audit Details」サブ・リージョンに移動します。

3. [Ctrl]キーを押したまま次のアイテムを選択します。

- P3_CREATED

- P3_CREATED_BY

- P3_UPDATED

- P3_UPDATED_BY

4. Property Editorで、次のように操作します。

a. レイアウト: リージョン - 「..Audit Details」を選択します

注意:

2つの終止符は、インタフェースにおけるサブ・リージョンの名前の短縮機構です。実際には「Sub Region, Audit Details」と読まれると思ってください。

アイテムがサブ・リージョンに移動します。

5. 「Audit Details」リージョンをクリックします。

6. 「外観: テンプレート・オプション」ボタンを見つけます(「テンプレート・デフォルトの使用, スクロール - デフォルト」を使用)。

7. 「テンプレート・オプション」で、次のように操作します。

a. デフォルト状態 - 折りたたみを選択します

b. スタイル - UI装飾の削除を選択します

8. 「OK」をクリックします。

9. プロパティ・エディタで「グループに移動」アイコンをクリックしてサーバー側の条件を選択します。

10. Property Editorで、次のように操作します。

a. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します

b. サーバー側の条件: アイテム - P3_IDを入力または選択します

6.7 「表示のみ」アイテム・タイプによるユーザー・アクセスの制限

ユーザーが監査列の情報を参照するのは許容できますが、このシステム生成データを直接変更する権限は決して持たせてはいけません。「表示のみ」にすることで、ユーザーがこれらのアイテムを編集するのを制限できます。

セキュリティ目的のために、この情報がランタイムで制限されていることを確認することも必要です。

リージョンの監査列へのユーザーのアクセスを制限するために「表示のみ」にするには、次のステップを実行します。

1. [Ctrl]キーを押したまま、「Audit Details」サブ・リージョンの次のアイテムを選択します。

- P3_CREATED

- P3_CREATED_BY

- P3_UPDATED

- P3_UPDATED_BY

2. Property Editorで、次のように操作します。

a. 指定: タイプ - 「表示のみ」を選択します

ページ・デザイナでモーダル・ダイアログを編集している場合、保存と実行のボタンは変更を保存するのみで、新しいブラウザ・ウィンドウのページには移動しません。ランタイムの親ページでモーダル・ダイアログを開く必要があります。

3. 「保存」をクリックします。

ランタイムでモーダル・ダイアログを表示するには、次のステップを実行します。

4. 次のいずれかを行います:

- アプリケーション・ランタイムを含んでいるブラウザ・ウィンドウをリフレッシュします。

- ページ・デザイナで「ページ・ファインダ」に「2」と入力して[Enter]を押し、モーダル・ダイアログの親ページに移動します。保存と実行をクリックします。ランタイムが、新しいブラウザ・ウィンドウに表示されます。

5. ユーザーの名前の横にある「編集」アイコン(鉛筆)をクリックすると、改善されたモーダル・ダイアログが表示されます。

6. 完了したら、開発者ツールバーの「アプリケーション####」をクリックしてアプリケーションのホームページに戻ります。

これで「Team Members」ページのレポートとフォームの更新を完了しました。

このレッスンでは、対話モード・レポートと、そのSQL問合せと主レポートを編集する方法、「ブレッドクラム」リージョンにボタンを移動する方法、モーダル・ダイアログのフィールドのデフォルト設定からの更新、および「表示のみ」アイテムを持つサブ・リージョンの作成について学習しました。

次のレッスンに進みます。

7 プロジェクト・ページの開発

ユーザーのプロジェクト管理タスクをサポートするために、プロジェクトのレポートとフォームのページを開発します。

このレッスンについて

これまでに、アプリケーションの作成ウィザードを使用して、DEMO_PROJECTS表のレポートとフォームを生成しました。以前のレッスンで、これは未加工のHomeおよびTeam Membersのページに類似した一部のデフォルト出力を生成しました。ただしプロジェクト・レポートが対話グリッドを使用し、プロジェクト・フォームが別のページ(モーダル・ダイアログではありません)である点が異なります。

Maintain Projectフォームは、マスター・ディテール・フォーム(略して「マスター・ディテール」)です。マスター・ディテールは、データベースの2つの表の1対多関係を示します。通常、マスター・ディテール・フォームには、1つのHTMLフォーム内にマスター行および複数のディテール行が表示されます。このフォームを使用すると、2つの表またはビューに対し、値の挿入、更新および削除を行うことができます。

このレッスンでは、共有コンポーネントに共有値リスト(LOV)を作成し、ページ・デザイナでそれをレポートに追加する方法を学習します。また、統一した外観になるようにレポートを調整し、Team Membersレポートのように見えるようにします。

フォームについては、開発者ツールバーのライブ・テンプレート・オプションを使用して、ランタイムでページを直接変更する方法を学習します。続いてページ・デザイナで、静的な値リスト、動的アクションおよび検証を作成する方法を学習します。

最後に、ページ・デザイナで、ページ同士でサブ・リージョンをコピーする方法を学習します。

ここから開始:
Basic Projects App Export - Topic 5.sql
前のレッスンを完了していない場合、付録「作業領域へのアプリケーションのインストール」を使用して上述のSQLスクリプトを作業領域にインポートし、このレッスンから先に学習を続けられます。このスクリプトは、このチュートリアル付属の.zipファイルを解凍した場所の/filesサブディレクトリにあります。

7.1 SQL問合せと表示列の更新

まず、DEMO_PROJECTSのSQL問合せを更新してプロジェクト・レポート・ページを更新し、主レポートでデフォルトの表示列を再構成します(Team Membersページに対して行ったことに似ています)。

Team Membersページとは異なり、プロジェクト・レポート・ページは対話グリッドを使用します。対話グリッドは対話モード・レポートに似ていますが、より多くの機能を備えており、データ・セットとのより高度な対話をサポートします。

SQL問合せと対話グリッドの列表示を更新するには、次のステップを実行します。

1. アプリケーションのアプリケーション・ビルダー概要で、4 - プロジェクトをクリックして、ページ・デザイナでプロジェクト・レポートを開きます。

2. ページ・デザイナで、「プロジェクト」リージョンを選択します。

3. Property Editorで、次のように操作します。

a. ソース: SQL問合せ - 現在のコンテンツを削除してから、次のコードをコピーして貼り付けます。

select ID
, NAME
, DESCRIPTION
, PROJECT_LEAD
, COMPLETED_DATE
, STATUS
, CREATED
, CREATED_BY
, UPDATED
, UPDATED_BY
, (select count('x')
from demo_milestones m
where m.project_id = p.id
) milestones
, (select count('x')
from demo_tasks t
where t.project_id = p.id
) tasks
from DEMO_PROJECTS p

注意:
マイルストンとタスク統計(それぞれ行11および15)は、内部のSQL SELECT文を使用して決定されます。

SQL文を入力した後で、ページ上で「SQL問合せ」フィールドの外側のどこかをクリックしてページのフォーカスを変更すると、ページ・デザイナが自動的にコードを検証します。エラーがない場合、保存されていない変更があることを示す青の三角形を付けて、フィールドが正常に表示されます。エラーがある場合、プロパティ・エディタで領域が赤くなり、エラー・メッセージが表示されます。

4. 「ページの保存と実行」をクリックします。

a. 「ページにフォーカス」ダイアログが表示されたら、「再試行」をクリックします。

ランタイム内の無関係な列を削除するには、次のステップを実行します。

5. アプリケーション・ランタイムで、「アクション」をクリックして「列」を選択します。
「列」ダイアログが表示されます。

6. 「列」ダイアログの左のペインで、次の列の横にあるボックスを選択解除してビューに表示されないようにします。

- ID

- 作成日

- 作成者

- 更新日

- 更新者

7. 「保存」をクリックします。
対話グリッドがリフレッシュされ、選択した列を非表示にします。

2つの列はデフォルトでソートできないので(NameとDescription)、この機能を有効化してください。

対話グリッドで列のソートを有効化するには、次のステップを実行します。

8. 開発者ツールバーの「ページの編集 4」をクリックしてページ・デザイナに戻ります。

9. 「レンダリング」ツリーのProjectsリージョンの下で、「列」フォルダを展開します。

10. [Ctrl]キーを押したまま、次のアイテムをクリックして選択します。

- NAME

- DESCRIPTION

プロパティ・エディタでソート属性を検索するには、「フィルタ・プロパティ」に検索を入力します。

11. プロパティ・エディタの上部で、「フィルタ・プロパティ」フィールドをクリックして「sort」と入力します。

プロパティ・エディタに、「sort」文字列を含んでいるフィールドのみが表示されます。

12. 「ユーザーの有効化: ソート/コントロール・ブレーク/集計」で、「はい」を選択します。

13. 「保存」をクリックします。

7.2 共有値リストを使用した「Project Lead」列への名前の追加

ランタイムを見ると、プロジェクト・レポートのProject Lead列には、現在ユーザーの名前でなく数値のIDが表示されています。これは、技術的には正確ですが、ユーザー・フレンドリではありません。

Project Lead IDは、DEMO_PROJECTS表から導入されます。ただし、DEMO_TEAM_MEMBERS表には、各製品リーダーのIDに関連付けられた名前があります。数値IDをチーム・メンバーの名前に変換するには、2つの表の間に接続を作成する必要があります。

Project Lead列に2つの表を接続し、共有の値リスト(LOV)を作成して、Projectsページの対話グリッドに追加します。

「共有コンポーネント」メニューにアクセスするには、次のステップを実行します。

1. 次のいずれかを行います:

- ページ・デザイナで、「保存」ボタンの横にある「共有コンポーネント」アイコン(三角形、円、正方形)をクリックします。

- ページ・デザイナで、「アプリケーション####」をクリックしてアプリケーション・ページの概要に戻り、「共有コンポーネント」をクリックします。

共有LOVを作成するには、次のステップを実行します。

2. 「他のコンポーネント」で、「LOV」をクリックします。

3. 「作成」をクリックします。
「LOVの作成」ウィザードが表示されます。

4. 「最初から」が選択されていることを確認し、「次へ」をクリックします。

5. 「名前」および「動的」セクションで、次のように操作します。

- 名前 - 「Team Members」と入力します

- タイプ - 「動的」を選択します

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

7. 「問合せ」で、現在のコンテンツを削除してから、次のコードをコピーして貼り付けます。

select full_name as display
, id as return
from demo_team_members
order by 1

8. 「LOVの作成」をクリックします。
TEAM MEMBERS値リストが表示されます。

9. ツールバーの「ページの編集 4」ボタンをクリックしてページ・デザイナに戻ります。

これで値リストを作成できました。次に、それをProjects対話グリッドのPROJECT_LEAD列に追加します。

ページ・デザイナの列に値リストを追加するには、次のステップを実行します。

10. 「レンダリング」ツリーのProjectsリージョンの下で、「列」フォルダを展開します。

11. PROJECT_LEAD列を選択します。

12. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. ヘッダー: 位置合せ - 「開始」を選択します

c. レイアウト: 列の位置合せ - 「開始」を選択します

d. LOV: タイプ - 「共有コンポーネント」を選択します

e. LOV: LOV - TEAM MEMBERSを選択します

f. LOV: 追加値の表示 - 「いいえ」を選択します

g. LOV: NULL表示値 - 「- Select Project Lead -」と入力します

これでPROJECT_LEAD列に値リストを追加して構成できました。

7.3 「Projects」レポート・ページの外観の更新

アプリケーションの作成ウィザードはページに自動的にボタンを生成しますが、ユーザーに最適になるように、常に必要に応じて評価、再構成してください。

「作成」ボタンを「ブレッドクラム」リージョンに移動します(Team Membersレポート・ページで行った操作に似ています)。

さらに、対話グリッドの外観テンプレートを対話モード・レポートのものに変更して、外観がアプリケーション全体で整合的になるようにします。

ページ・デザイナでボタンを移動するには、次のステップを実行します。

1. 「レイアウト」タブで、「CREATE」ボタンを右クリックします。

2. 「移動先」を選択し、「ブレッドクラム」を選択して、「作成」を選択します。

ヒント:
「作成」ボタンをProjectsリージョンから「ブレッドクラムへのプレースホルダの作成」リージョンにドラッグ・アンド・ドロップすることもできます。

3. Property Editorで、次のように操作します。

a. 指定: ラベル - 「Add Project」と入力します

これでボタンを更新できました。

Projectsリージョンの外観テンプレートを変更するには、次のステップを実行します。

4. 「レンダリング」ツリーまたは「レイアウト」で、Projectsリージョンを選択します。

5. Property Editorで、次のように操作します。

a. 外観: テンプレート - 「対話モード・レポート」を選択します

6. 「ページの保存と実行」をクリックすると、更新された「作成」ボタンがランタイムに表示されます。

7.4 Projects Report列のカスタマイズ

ランタイムで、対話グリッドを更新して読みやすくしてください。

ページ上の位置に固定させることで、プロジェクトの名前に優先順位をつけます。続いて、グリッドの端に「説明」列を移動し、「アクション」メニューの「データ」サブメニューを使用してすべての列にデフォルトのソート・ルールを適用します。

対話グリッドで列を固定するには、次のステップを実行します。

1. 「名前」をクリックします。(「名前」列のヘッダー)。

「列ヘッダー」メニューが表示されます。

2. 「凍結」アイコン(雪片)をクリックします。

列が位置に固定され、水平スクロール・バーが他の列の下に表示されます。これで、「名前」列が常にページに表示されます。

列の順序を変更するには、次のステップを実行します。

ヒント:
マウス・カーソルを列ヘッダーに合せると表示されるドラッグ・ハンドルをクリックしたままにして、列を位置にドラッグ・アンド・ドロップして並べ替えることもできます。

3. 「アクション」ボタンをクリックして「列」を選択します。
「列」ダイアログが表示されます。

4. 「説明」列をクリックして選択します。

5. ペインの下で、下移動ボタン(下矢印)を、リストの最下部(「タスク」の下)に「説明」が表示されるまで、数回クリックします。

6. 「保存」をクリックします。

作成日でレコードをソートするには、次のステップを実行します。

7. 「アクション」ボタンをクリックし、「データ」を選択し、「ソート」を選択します。
「ソート」ダイアログが表示されます。

8. 「ソート」ダイアログで、次のように操作します。

a. 列 - 「作成」を選択します

9. 「保存」をクリックします。

10. (オプション)どの列も広すぎたり(「マイルストン」と「タスク」など)、狭すぎたり(「説明」など)しないように、必要に応じてすべての列の幅を調整します。

11. 完了したら、「アクション」ボタンをクリックして、「レポート」を選択し、「保存」をクリックします。
レポートに変更が保存されます。

Projectsレポート・ページが完成しました。次に、Projectsフォーム、Maintain Projectを開発します。

7.5 ライブ・テンプレート・オプションによるProjectフォームの外観の変更

アプリケーションの操作性にとって整合性は重要です。Maintain Team Memberモーダル・ダイアログの外観と機能に適合するように、Projectフォーム・モーダル・ダイアログのプロパティを更新します。チュートリアルのここまでで、新しいページに同じ組み合せの設定を適用してきたので、これについては多少ご存知でしょう。

開発者ツールバーのライブ・テンプレート・オプションを使用してランタイムでフォームの外観を変更し、続いてページ・デザイナに切り替えてより細かい変更を行います(たとえばボタンの移動やフィールドの条件変更)。

Maintain Projectページに移動するには、次のステップを実行します。

1. ランタイムのProjectsページで、いずれかのプロジェクトの名前の横にある「編集」アイコン(鉛筆)をクリックします。
ブラウザが、Maintain Projectフォームに移動します。

ライブ・テンプレート・オプションを使用してページを更新するには、次のステップを実行します。

2. 開発者ツールバーで、「クイック編集」をクリックします。
ページがクイック編集モードになります。

3. 「Maintain Project」リージョン(ページ・タイトルでなく)にマウスを合せます。
レンチのアイコンが右上隅に表示されます。

4. レンチのアイコンをクリックします。
「ライブ・テンプレート・オプション」ダイアログが表示されます。

5. 「ライブ・テンプレート・オプション」で次のように操作します。

a. ヘッダー - 「非表示だがアクセス可能」を選択します

b. スタイル - UI装飾の削除を選択します

c. アイテム・パディング - スリム・パディングを選択します

それぞれの変更を反映してページが更新されます。

6. 「保存」をクリックします。

7.6 ページ・デザイナでのProjectフォームの更新

Projectsレポートの場合、「ブレッドクラム」リージョンのページの右上に「作成」ボタンを移動しました。Maintain Projectフォームでは同じスペースが空である点に注意してください。ページ・デザイナでの「作成」ボタンのデフォルトの位置はページの右上隅ですが、プレースホルダにはいかなるボタンでも配置できます(特に、今のところ何もそこにないため)。

一部のフィールドを必須に変更し、「Project Lead」フィールドにTEAM MEMBERS LOVを追加する必要があります(Maintain Team Memberフォームに対して行った変更に似ています)。

まずボタンから始めます。

1. 開発者ツールバーで「ページ5の編集」をクリックしてページ・デザイナのページに戻ります。

プロジェクト・エントリのナビゲーション・ボタンを「作成」位置に移動するには、次のステップを実行します。

2. 「レイアウト」タブの中央で、Maintain Projectリージョン(サブ・リージョンでなく)の最下部近くにある既存のボタンを見つけます。

3. [Ctrl]キーを押したまま次のボタンをクリックして、両方とも選択します。

- GET_PREVIOUS_ROWID

- GET_NEXT_ROWID

4. Property Editorで、次のように操作します。

a. レイアウト: リージョン - 「ブレッドクラム」を選択します

b. レイアウト: ボタン位置 - 「作成」を選択します

「前」および「次」ボタンは、「ブレッドクラム」リージョンのCREATEプレースホルダに移動します。

注意:

ページを保存して実行する場合、ランタイムのリストの最初のプロジェクトを表示すると、「次」ボタンのみが表示されます。技術的に、リストに前のエントリがないためです。

「名前」フィールドを必須にするには、次のステップを実行します。

5. 「コンテンツ本体」リージョンで、P5_NAMEアイテムを選択します。

6. Property Editorで、次のように操作します。

a. 指定: タイプ - 「テキスト・フィールド」を選択します

Project Leadフィールドに値リストを追加するには、次のステップを実行します。

7. P5_PROJECT_LEADアイテムを選択します。

8. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. LOV: タイプ - 「共有コンポーネント」を選択します

c. LOV: LOV - TEAM MEMBERSを選択します

d. LOV: 追加値の表示 - 「いいえ」を選択します

e. LOV: NULL表示値 - 「- Select Project Lead -」と入力します

注意:
P5_PROJECT_LEADアイテムは、Team Membersレッスンの「共有コンポーネント」で定義した値リストを使用します。

7.7 静的なステータスの値リストの作成

現在、プロジェクトを更新するためには、「ステータス」フィールドにユーザーが手動で単語「割当て済」 「進行中」または「完了」のいずれかを入力する必要があります。このプロセスは低速で、ヒューマン・エラーが起こりやすいものです。このフィールドを、選択可能なオプションのリストに変換しましょう。

以前に、2つの表を問い合せて、「Project Lead」フィールドの数値IDを名前に置換する動的リスト(TEAM MEMBERS)を作成しました。ステータス情報は1つの表に収められるため、Projectステータス・リストにはより単純な静的リスト要素を使用できます。

可能なオプションのリストを作成して「Maintain Project」フォームの「ステータス」フィールドに適用します。

静的値のリストを定義するには、次のステップを実行します。

1. 「レイアウト」または「レンダリング」ツリーで、P5_STATUSアイテムを選択します。

2. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. LOV: タイプ - 「静的値」を選択します

c. LOV: 静的値 - 現在のコンテンツを削除して、「STATIC2:割当て済,進行中,完了」と入力します

注意:
STATIC2を指定すると、レコードはアルファベット順でなく入力順で表示されます。

d. LOV: 追加値の表示 - 「いいえ」を選択します

e. LOV: NULL値の表示 - 「いいえ」を選択します

プロジェクトが「完了」に更新される日付をユーザーに入力させるのが、適切な業務プラクティスです。

プロジェクトのステータスが「完了」に変更された場合に「完了日」を必須にするには、次のステップを実行します。

3. P5_COMPLETED_DATEアイテムを選択します。

4. Property Editorで、次のように操作します。

a. 外観: テンプレート - 「必須」を選択します

アイテムが必須の場合はしばしば、プロパティ・エディタで「外観: テンプレート」を「必須」に、「検証: 必須の値」を「はい」に更新します。ただし、「必須の値」属性は変更しないでください。アイテムが必須であるのはステータスが「完了」のときのみで、他のステータスの場合は必須でないからです。

次に、後でカスタム検証を追加してこのビジネス・ルールに対応します。

7.8 動的アクションの作成

Oracle Application Expressでの動的アクションは、JavaScriptやAJAXを使用しないで宣言的にクライアント側動作を定義するために使用されます。そのかわり、Application Expressエンジンは、宣言に基づいて必要なコードを実装します。

P5_STATUSアイテムに動的アクションを追加して、「完了」に設定されたら「完了日」フィールドが表示されるようにします。

動的アクションを作成するには、次のステップを実行します。

1. 「レンダリング」ツリーで、P5_STATUSアイテムを右クリックして「動的アクションの作成」を選択します。
「動的アクション」フォルダが子としてP5_STATUSにデータを移入します。

2. Property Editorで、次のように操作します。

a. 指定: 名前 - 「Show Completed Date」と入力します

b. クライアント側の条件: タイプ - 「アイテム = 値」を選択します

c. クライアント側の条件: 値 - 「完了」と入力します

重要:
動的アクションが起動するためには、「時期: 値」属性の大文字使用とスペルが、データ入力値と正確に一致する必要があります。

3. 「レンダリング」ツリーの「Show Completed Date」動的アクションの下で、「True」フォルダを展開して「表示」を選択します。

4. Property Editorで、次のように操作します。

a. 影響を受ける要素: アイテム - P5_COMPLETED_DATEを選択します

「表示」、「有効化」および「ツリーを開く」などの動的アクション・タイプの場合、対応する反対のアクションも含めることが重要です。それにより、WHEN条件がTrueと評価された場合に影響を受ける要素が一定の方向に設定され、WHEN条件がFalseと評価された場合に反対に設定されます。ここでは、P5_STATUSが「完了」と等しい場合にP5_COMPLETED_DATEアイテムが表示され、他のいずれかのステータスが選択された場合は非表示にされます。反対のアクションを追加するには、次のステップを実行します。

5. 「レンダリング」ツリーで、「表示」を右クリックします。

6. 「反対のアクションの作成」を選択します。

7.9 完了日の検証の追加

完了日の検証を追加して、ユーザーがステータスを「完了」に変更したら完了日の追加も必須になるようにします。

完了日の検証を追加するには、次のステップを実行します。

1. ページ・デザイナの「Maintain Project」ページで、「レンダリング」ツリーの上にある「プロセス」タブ(循環している2つの矢印)を選択します。

2. 「検証中」フォルダを右クリックして「検証の作成」を選択します。

3. Property Editorで、次のように操作します。

a. 指定: 名前 - 「Completed Date is Not Null」と入力します

b. 検証: タイプ - 「アイテムはNULLではない」を選択します

c. 検証: アイテム - P5_COMPLETED_DATEを選択します

d. エラー: エラー・メッセージ - 「#LABEL# must have some value」と入力します

e. エラー: 関連付けられたアイテム - P5_COMPLETED_DATEを選択します

f. サーバー側の条件: タイプ - 「アイテム = 値」を選択します

g. サーバー側の条件: アイテム - P5_STATUSを選択します

h. サーバー側の条件: 値 - 「完了」と入力します

注意:
エラー・メッセージの#LABEL#テキストは、関連付けられたアイテムのラベルで代用されます。アイテム・ラベルが更新されると、エラー・メッセージも更新された値を反映します。これにより整合性が改善され、メッセージが確実に最新のラベル参照を持つようになります。

ヒント:
「エラー・メッセージ」フィールドをクリックした後、中央ペインの「ヘルプ」タブをクリックすると、エラー・メッセージの例を表示できます。他の属性のサンプル・エントリに対しても「ヘルプ」タブを表示することができます。

注意:
この条件は、「ステータス」アイテムが「完了」のときのみ検証が起動することを保証します。

完了日が先の日付でないことの検証を追加するには、次のステップを実行します。

4. 「検証中」フォルダを右クリックして「検証の作成」を選択します。

5. Property Editorで、次のように操作します。

a. 指定: 名前 - 「Completed Date is not Forward Dated」と入力します

b. 検証: PL/SQL式 - 「:P5_COMPLETED_DATE <= sysdate」と入力します

c. エラー: エラー・メッセージ - 「#LABEL# cannot be forward dated」と入力します

d. エラー: 関連付けられたアイテム - P5_COMPLETED_DATEを選択します

e. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します

f. サーバー側の条件: アイテム - P5_COMPLETED_DATEを選択します

6. 「保存」をクリックします。

7.10 異なるページへのサブ・リージョンのコピー

これまでのトピックで、「Maintain Team Member」フォームに対して「Audit Details」というサブ・リージョンを作成しました。そのリージョンに含まれる4つのアイテムは「Maintain Project」ページのものと同じで、まったく同じデータベース列に関連付けられているため、「Maintain Project」フォームにコピーすることで時間を多少節約できます。リージョンをコピーすると、以前に定義したテンプレートとテンプレート・オプションもコピーされます。

まず、「Maintain Project」フォームの4つの既存の監査詳細列を削除し、「Maintain Team Member」フォームから「Maintain Project」フォームに「Audit Details」サブ・リージョンをコピーして、コピー先に完全に合うように変更します。

注意:
監査列を削除しない場合、コピーされた「Audit Details」リージョンのアイテム名は一意の名前に変更され、すべてのページ・アイテムが確実に一意の名前を持つようにされます(たとえば、P5_CREATEDがその宛先にコピーされると、P5_CREATED_1に名前を変更されます)。この自動的な名称変更はページ処理を中断しませんが、この手法はお薦めしません。

「Maintain Project」フォームの4つの既存の監査アイテムを削除するには、次のステップを実行します。

1. 「レイアウト」タブで、[Ctrl]キーを押したまま、次のアイテムをクリックして選択します。

- P5_CREATED

- P5_CREATED_BY

- P5_UPDATED

- P5_UPDATED_BY

2. 次のいずれかを行います:

- アイテムのいずれかを右クリックし、「削除」を選択します。

- [Del]キーを押します。

3. 「保存」をクリックします

ページ3からページ5に「Audit Details」サブ・リージョンをコピーするには、次のステップを実行します。

4. ページ・デザイナで、ページ3に移動します。

5. 「レンダリング」タブをクリックします。

6. 「レンダリング」ツリーで、「Audit Details」サブ・リージョンを右クリックし、「他のページにコピー」を選択します。

7. 「リージョンのコピー」ダイアログで、次のように操作します。

a. コピー先ページ - 「5」と入力します

b. リージョン・アイテムのコピー - 「はい」を選択します

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

9. 「コピー」をクリックします。

10. ページ5に戻って、「Audit Details」サブ・リージョンが、(サブ・リージョンでなく)リージョンとしてページ5のコンテンツ本体にコピーされたことを確認します。

「Maintain Project」フォームの「Audit Details」サブ・リージョンを更新するには、次のステップを実行します。

11. ページ5の「レンダリング」ツリーまたは「レイアウト」で、「Audit Details」リージョンを選択します。

12. Property Editorで、次のように操作します。

a. レイアウト: 親リージョン - 1つ目の「Maintain Project」を選択します

13. 「ページの保存と実行」をクリックします。

14. それらの機能を試用してページの反応を確認します。

- ステータスを変更して、選択したステータスに応じて完了日がどのように表示または非表示にされるかを確認します。

- ステータスを「完了」にして、完了日なしでレコードを保存します。エラー・メッセージが表示されます。

- 完了日を先の日付にしてレコードを保存します。エラー・メッセージが表示されます。

15. 完了したら、開発者ツールバーの「アプリケーション####」をクリックしてアプリケーションのホームページに戻ります。

「Projects」レポートと「Maintain Project」フォームに実質的な変更を加えました。次のレッスンでは、フォームにさらにリージョンを追加して、ユーザーがプロジェクトの詳細をさらに表示して、プロジェクト管理を高度に制御できるようにします。

次のレッスンに進みます。

8 「Maintain Project」フォーム・リージョンの開発

「マイルストン」リージョンを更新して「Maintain Project」フォームに「タスク」リージョンを作成します。

このレッスンについて

前のレッスンでは、「Maintain Project」フォームを開発して、必須フィールドや、DEMO_PROJECTS表の変更の検証を含め、プロジェクトの進捗を更新しました。

このレッスンでは、「Maintain Project」フォーム・ページでの2つのリージョン(「マイルストン」と「タスク」)の開発を学習します。どちらのリージョンも、ディテール・リージョンとして機能します。

「マイルストン」ディテール・リージョンでは、ページ・デザイナでのリージョンの名前変更、監査詳細の分離、ランタイムでのライブ・テンプレート・オプションの更新など、以前のレッスンで学習したいくつかの基本的な更新で、ページ上の既存の対話グリッドを更新します。この対話グリッドは、DEMO_MILESTONES表を問い合せます。

「タスク」ディテール・リージョンについては、対話グリッド・リージョンを作成してそれを編集可能に変換することにより、ページ・デザイナで編集可能対話グリッドを追加する方法を学習します。続いて、「マイルストン」と「割当て先」列を選択リストに、「名前」列をテキスト・フィールドに、および「Is_Complete?」列をスイッチに、それぞれ変換することにより、編集可能な対話グリッドの列の使用を改善する方法を学習します。

また、リージョン表示セレクタを追加して、ランタイムにどのリージョンが表示されるかをトグルする方法も学習します。

最後に、ランタイムで「マイルストン」と「タスク」リージョンのライブ・テンプレート・オプションを両方とも更新します。

ここから開始:
Basic Projects App Export - Topic 6.sql
前のレッスンを完了していない場合、付録「作業領域へのアプリケーションのインストール」を使用して上述のSQLスクリプトを作業領域にインポートし、このレッスンから先に学習を続けられます。このスクリプトは、このチュートリアル付属の.zipファイルを解凍した場所の/filesサブディレクトリにあります。

8.1 「マイルストン」対話グリッドの更新

アプリケーションには、DEMO_PROJECTS表のほかに、DEMO_MILESTONESとDEMO_TASKS表もあります。これらの2つの表には増分マイルストンおよびタスクのデータがあり、プロジェクト全体の進捗をより正確に追跡するのを助けます。

この時点では、アプリケーションはプロジェクト全体のステータスに対する変更のみをサポートします。2番目のMaintain Project対話グリッドを変更して、ユーザーがこれらのタスクとマイルストンのステータスを表示および変更できるようにします。

まずDEMO_MILESTONES表を問い合せるページ5の2番目の対話グリッドを更新します。

「Maintain Project」フォームに移動するには、次のステップを実行します。

1. アプリケーションのホームページから、「5 - Maintain Project」をクリックします。

2番目の「Maintain Project」リージョンの名前(名前は以前のレッスンのコピー手順から継承されました)を変更するには、次のステップを実行します。

2. 「レンダリング」ツリーまたは「レイアウト」タブの最下部にスクロールし、「Maintain Project」サブ・リージョンをクリックします(名前が斜体になっていることに注意)。

3. Property Editorで、次のように操作します。

a. 指定: タイトル - 「マイルストン」と入力します

「マイルストン」リージョンには、ユーザーが本当に必要としていない列がいくつかあります。完全にエンド・ユーザーから非表示にできるものが1つあり(ID)、残りは有益そうな監査詳細ですが、エンド・ユーザーが変更してはいけません。

注意:
後で必要になる場合に備えて、列は削除しないで非表示にすることをお薦めします。
列の表示方法を変更するには、次のステップを実行します。

4. 「レンダリング」ツリーの「マイルストン」リージョンの下で、「列」フォルダを展開します。

5. ID列を選択します。

6. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

7. 「レンダリング」ツリーで「作成」列をクリックして選択し、ID列を選択解除します。[Ctrl]キーを押したまま、次の列を選択します。

- 作成日

- 作成者

- 更新日

- 更新者

8. Property Editorで、次のように操作します。

a. 指定: タイプ - 「表示のみ」を選択します

8.2 「タスク」ディテール・リージョンの作成

「Projects」ページには、DEMO_MILESTONES表を問い合せる、小さなディテール・リージョンがすでにあります。次に、DEMO_TASKS表に別のディテール・リージョンを追加する必要があります。

「ギャラリ」から新しい対話グリッドを追加してDEMO_TASKS表を問い合せ、小さなディテール・リージョンを表示するように構成します。

「ギャラリ」から対話グリッド・リージョンを追加するには、次のステップを実行します。

1. 「レイアウト」ペインの下にある「ギャラリ」ペインで、「リージョン」タブをクリックします。

2. 「対話グリッド」を右クリックし、「追加先」を選択し、「コンテンツ本体」を選択し、「マイルストン」を選択し、「AFTER」を選択します。
新しいリージョンが、「レイアウト」ペインの「マイルストン」リージョンの下に表示されます。

3. Property Editorで、次のように操作します。

a. 指定: タイトル - 「タスク」と入力します

b. ソース: SQL問合せ - 「select * from demo_tasks where project_id = :P5_ID」と入力します

注意:
SQL select * from [Table_Name]は、指定された表からすべての列を戻します。where条件は、現在のプロジェクトで、それらに戻されるレコードを制限します。

c. ソース: Page Items to Submit - P5_IDを選択します

d. レイアウト: 新規行の開始 - 「はい」を選択します

e. 外観: テンプレート - 「標準」を選択します

f. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します

g. サーバー側の条件: アイテム - P5_ROWIDを選択します

対話グリッドはデフォルトで読取り専用なので、対話グリッドを編集可能に構成する必要があります。

対話グリッドを編集可能にするには、次のステップを実行します。

4. 「レンダリング」ツリーの「タスク」の下で、「属性」フォルダを選択します。

5. Property Editorで、次のように操作します。

a. 編集: 有効 - 「はい」を選択します

b. ツールバー: 「ボタン」 - 「保存」を選択解除します

注意:
「保存」ボタンはすでに「Maintain Project」リージョンにあり、複数あるとユーザーが混乱するため、「保存」ボタンを選択解除します。

有用性がないIDとPROJECT_ID列をビューから非表示にする必要がありますが、各々について追加の構成を実行して後のステップに備える必要があります。

「タスク」リージョンをクリーンアップするには、次のステップを実行します。

6. 「レンダリング」ツリーの「タスク」の下で、「列」フォルダを展開して「ID」列を選択します。

7. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

b. ソース: 主キー - 「はい」を選択します

注意:

表の主キーの定義は、このトピックの後の方で、「タスク」レコードに関連がある子表が追加されるときに必要になります。

表の主キーは各行を一意に識別し、行の重複も回避できます(通常はこの目的のみ)。

8. 「レンダリング」ツリーで、PROJECT_ID列を選択します。

9. Property Editorで、次のように操作します。

a. デフォルト: タイプ - 「アイテム」を選択します

b. デフォルト: アイテム - P5_IDを選択します

8.3 「タスク」リージョンでの列の更新

次に、一部の列の表示方法を変更して、「タスク」リージョンの操作性を改善します。

MILESTONE_ID列を選択リストに変換するには、次のステップを実行します。

1. 「レンダリング」ツリーの「タスク」リージョンの下で、「列」フォルダを展開します。

2. MILESTONE_ID列を選択します。

3. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. ヘッダー: ヘッダー - 「Milestone」と入力します

c. ヘッダー: 位置合せ - 「開始」を選択します

d. レイアウト: 列の位置合せ - 「開始」を選択します

e. List of Values: タイプ - 「SQL問合せ」を選択します

f. LOV: SQL問合せ - 「select name d、id r from demo_milestones order by 1」と入力します

g. LOV: 追加値の表示 - 「いいえ」を選択します

h. LOV: NULL表示値 - 「- Select Milestone -」と入力します

ASSIGNEE列を選択リストに変換するには、次のステップを実行します。

4. 「レンダリング」ツリーの「タスク」リージョンの下で、ASSIGNEE列を選択します。

5. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. ヘッダー: 位置合せ - 「開始」を選択します

c. レイアウト: 列の位置合せ - 「開始」を選択します

d. LOV: タイプ - 「共有コンポーネント」を選択します

e. LOV: LOV - TEAM MEMBERSを選択します

f. LOV: 追加値の表示 - 「いいえ」を選択します

g. LOV: NULL表示値 - 「- Select Assignee -」と入力します

NAME列をテキスト・フィールドに変更するには、次のステップを実行します。

6. 「レンダリング」ツリーの「タスク」リージョンの下で、NAME列を選択します。

7. Property Editorで、次のように操作します。

a. 指定: タイプ - 「テキスト・フィールド」を選択します

IS_COMPLETE_YN列をスイッチに変更するには、次のステップを実行します。

8. 「レンダリング」ツリーの「タスク」リージョンの下で、IS_COMPLETE_YN列を選択します。

9. Property Editorで、次のように操作します。

a. 指定: タイプ - 「切替え」を選択します

b. ヘッダー: ヘッダー - 「「完了?」」と入力します

「監査」列を表示専用に変更するには、次のステップを実行します。

10. 「レンダリング」ツリーの「タスク」リージョンの下でCREATED列を選択し、[Ctrl]キーを押したまま、次の列をすべて選択します。

- CREATED

- CREATED_BY

- UPDATED

- UPDATED_BY

11. Property Editorで、次のように操作します。

a. 指定: タイプ - 「表示のみ」を選択します

8.4 リージョン表示セレクタの追加

「Maintain Project」フォームに「マイルストン」ディテールと「タスク」ディテールを追加しましたが、ページの表示が混乱しています。リージョン表示セレクタを追加して、ユーザーが「マイルストン」と「タスク」の両リージョンが表示されるか、片方のみが表示されるようにページを整理できます。

まず、もともと別のリージョンからコピーした「マイルストン」リージョンを構成して、リージョン表示セレクタと互換性を持つようにする必要があります。最初から作成した「タスク」リージョンは、デフォルトで互換性を持ちます。

リージョン表示セレクタに合せて「マイルストン」リージョンを構成するには、次のステップを実行します。

1. 「レンダリング」ツリーまたは「レイアウト」で、「マイルストン」リージョンを選択します。

2. Property Editorで、次のように操作します。

a. 詳細: リージョン表示セレクタ - 「はい」を選択します

リージョン表示セレクタを追加するには、次のステップを実行します。

3. 「リージョン」タブの「ギャラリ」ペインで、リージョン表示セレクタを見つけます。

4. リージョン表示セレクタを右クリックし、「追加先」を選択し、「コンテンツ本体」を選択し、「Maintain Project」を選択し、「AFTER」を選択します。

ヒント:
マウスを使用して「ギャラリ」からリージョン表示セレクタをドラッグし、「マイルストン」リージョンより上にドロップすることもできます。

5. Property Editorで、次のように操作します。

a. 指定: タイトル - 「RDS」と入力します

b. 外観: テンプレート - ボタン・コンテナを選択します

c. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します

d. サーバー側の条件: アイテム - P5_ROWIDを選択します

6. 「ページの保存と実行」をクリックします。

7. 試しにリージョン表示セレクタで「すべて表示」、「マイルストン」および「タスク」をクリックしてみて、機能を確認します。

8.5 ランタイムでのデフォルトの「マイルストン」レポートの改善

ビューから監査列を削除し、期日でレポートをソートし、ランタイムでデフォルトの「マイルストン」レポート(対話グリッド)の「説明」列を広げます。

ランタイムで「マイルストン」レポートを変更するには、次のステップを実行します。

1. ランタイムの「マイルストン」リージョンで、「アクション」ボタンをクリックし、「列」を選択します。
「列」ダイアログが表示されます。

2. 次の列の「表示」チェック・ボックスの選択を解除します。

- 作成日

- 作成者

- 更新日

- 更新者

3. 「保存」をクリックします。

期日を基準に「マイルストン」レポートを並べるには、次のステップを実行します。

4. 「マイルストン」リージョンで、「アクション」ボタンをクリックし、「データ」を選択して、「ソート」を選択します。

5. 「ソート」ダイアログで、次のように操作します。

a. 列 - 「期日」を選択します

6. 「保存」をクリックします。

(オプション) 「説明」列を広げるには、次のステップを実行します。

7. (オプション)区切りをクリックして、コンテンツに合うところまでドラッグします。

デフォルトの主レポートに変更を保存するには、次のステップを実行します。

8. 「アクション」ボタンをクリックし、「レポート」、「レポートの保存」の順に選択します。
システム・メッセージ「すべてのユーザーに対するデフォルトのレポートが保存されました」が表示されます。

8.6 ランタイムでのデフォルトの「タスク」レポートの改善

最後に、列を再構成してデフォルトの「タスク」レポート(対話グリッドでもあります)を更新します。

列の順序を変更してビューから列を非表示にするには、次のステップを実行します。

1. 「タスク」リージョンで、「アクション」ボタンをクリックして「列」を選択します。
「列」ダイアログが表示されます。

2. 列ペインで「名前」を選択します。

3. 「名前」列が「行アクション」列の下に表示されるまで、上移動アイコン(^)をクリックします。

4. 「完了?」列を選択します。

5. 「完了?」列が「割当て先」列の下で表示されるまで、上移動アイコン(^)をクリックします。

6. 次の列の選択を解除します。

- Project id

- 作成日

- 作成者

- 更新日

- 更新者

7. 「保存」をクリックします。

列を位置に固定するには、次のステップを実行します。

8. 「タスク」リージョンで、「名前」列ヘッダーをクリックします。

9. 「凍結」アイコン(雪片)をクリックします。

開始日と終了日を基準に「タスク」レポートを並べるには、次のステップを実行します。

10. 「タスク」リージョンで、「アクション」ボタンをクリックし、「データ」を選択して「ソート」を選択します。
「ソート」ダイアログが表示されます。

11. 「ソート」ダイアログで、次のように操作します。

a. 列 - 「開始日」を選択します

b. 「追加」アイコン( + )をクリックして新しい列を追加します。

c. 新しい列を選択します。

d. 列 - 「終了日」を選択します

e. 「保存」をクリックします。

12. 最後に、列のサイズを変更して合せます。完了したら、「アクション」ボタンをクリックして、「レポート」を選択し、「保存」を選択します。
システム・メッセージ「すべてのユーザーに対するデフォルトのレポートが保存されました」が表示されます。

13. 開発者ツールバーで、アプリケーション ####をクリックしてアプリケーションのホームページに戻ります。

「Maintain Project」フォームの「マイルストン」および「タスク」の各ディテール・リージョンが完成しました。

次のレッスンに進みます。

9 「タスク」マスター・ディテール/ディテール・リージョンの開発

「Maintain Project」マスター・ディテール・フォーム上の「タスク」ディテール・リージョンに、マスター・ディテール/ディテール・リージョンを追加します。

このレッスンについて

これまでに「マイルストン」および「タスク」ディテール・リージョンを「Maintain Project」フォームに追加して、マスター・ディテール・ページを作成しました。

このレッスンでは、ディテール・リージョンにマスター・ディテール/ディテール・サブ・リージョンを追加する方法を学習します。マスター・ディテール/ディテールは、基本的にディテール・リージョン内のディテール・リージョンです。

「タスク」リージョンに「To-Do」および「Links」サブ・リージョンを追加して、DEMO_TO_DOSとDEMO_LINKS表を問い合せます。これらのサブ・リージョンには、ユーザーが選択したタスクに応じて追加情報が表示されます。完了すると、ユーザーはアプリケーションのこの単一のフォームで、5つもの異なる表を更新できます。

マスター・ディテール/ディテール・リージョンの作成は、マスター・ディテール・リージョンの作成に非常に類似しているため、このレッスンのステップの多くはよくご存知のはずです。

ここから開始:
Basic Projects App Export - Topic 7.sql
前のレッスンを完了していない場合、付録「作業領域へのアプリケーションのインストール」を使用して上述のSQLスクリプトを作業領域にインポートし、このレッスンから先に学習を続けられます。このスクリプトは、このチュートリアル付属の.zipファイルを解凍した場所の/filesサブディレクトリにあります。

9.1 「To Do」サブ・リージョンの作成

ユーザーがタスクのTo Doを簡単に更新できるように、「タスク」リージョンに「To Do」編集可能対話グリッド・サブ・リージョンを追加します。

「タスク」リージョンにサブ・リージョンとして対話グリッドを追加するには、次のステップを実行します。

1. アプリケーションのホームページで、ページ・デザイナで「5 - Maintain Project」をクリックして「Maintain Project」フォームに移動します。

2. 「レンダリング」ツリーで、「タスク」を右クリックして「サブ・リージョンの作成」を選択します。
新しいサブ・リージョンが表示されます。

3. Property Editorで、次のように操作します。

a. 指定: タイトル - 「To-Dos」と入力します

b. 指定: タイプ - 「対話グリッド」を選択します

c. ソース: SQL問合せ - 「select * from demo_to_dos」と入力します

d. 外観: テンプレート - 「標準」を選択します

e. マスター・ディテール: マスター・リージョン - 「タスク」を選択します

f. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します

g. サーバー側の条件: アイテム - P5_ROWIDを選択します

対話グリッドを編集可能にするには、次のステップを実行します。

4. 「レンダリング」ツリーの「To-Dos」の下で、「属性」フォルダを選択します。

5. Property Editorで、次のように操作します。

a. 編集: 有効 「はい」を選択します

b. ツールバー: 「ボタン」 - 「保存」を選択解除します

9.2 「To-Dos」サブ・リージョンのリンク

表示から列を非表示にしますが、より上位レベルの表にリンクして、このリージョンがマスター・ディテール関係のディテールとして機能するようにします。続いて、操作性向上のために、「割当て先」列を選択リストに変更します。

「To-Dos」サブ・リージョンの「ID」、「PROJECT_ID」および「TASK_ID」列を非表示にして「タスク」リージョンにリンクするには、次のステップを実行します。

1. 「レンダリング」ツリーの「To-Dos」の下で、「列」フォルダを展開して「ID」列を選択します。

2. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

3. 「レンダリング」ツリーの「To-Dos」の下で、PROJECT_ID列を選択します。

4. Property Editorで、次のように操作します。

a. 指定: タイプ 「非表示」を選択します

b. マスター・ディテール: マスター列 - 「PROJECT_ID」を選択します

注意:
表示される列は、「タスク」(マスター)リージョンで定義される列です。

5. 「レンダリング」ツリーの「To-Dos」の下で、TASK_ID列を選択します

6. Property Editorで、次のように操作します。

a. 指定: タイプ 「非表示」を選択します

b. マスター・ディテール: マスター列 - 「ID」を選択します

ASSIGNEE列を選択リストに変更するには、次のステップを実行します。

7. 「レンダリング」ツリーの「To-Dos」の下で、ASSIGNEE列を選択します。

8. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. ヘッダー: 位置合せ - 「開始」を選択します

c. レイアウト: 列の位置合せ - 「開始」を選択します

d. LOV: タイプ - 「共有コンポーネント」を選択します

e. LOV: LOV - TEAM MEMBERSを選択します

f. LOV: 追加値の表示 - 「いいえ」を選択します

g. LOV: NULL表示値 - 「- Select Assignee -」と入力します

9.3 「To-Dos」列の改善

ランタイムでより簡単に編集できるように、「名前」列をテキスト・フィールドに、「完了?」列をスイッチに変更します。

次に、監査詳細を表示専用にします。

NAME列をテキスト・フィールドに変更するには、次のステップを実行します。

1. 「レンダリング」ツリーの「To-Dos」列で、NAME列を選択します。

2. Property Editorで、次のように操作します。

a. 指定: タイプ - 「テキスト・フィールド」を選択します

IS_COMPLETE_YN列をスイッチに変更するには、次のステップを実行します。

3. 「レンダリング」ツリーの「To-Dos」列で、IS_COMPLETE_YN列を選択します。

4. Property Editorで、次のように操作します。

a. 指定: タイプ - 「切替え」を選択します

b. ヘッダー: ヘッダー - 「「完了?」」と入力します

監査詳細を表示専用にするには、次のステップを実行します。

5. 「レンダリング」ツリーの「To-Dos」列で、CREATED列のみを選択します。続いて[Ctrl]キーを押したまま、次のアイテムをすべて選択します。

- CREATED

- CREATED_BY

- UPDATED

- UPDATED_BY

6. Property Editorで、次のように操作します。

a. 指定: タイプ - 「表示のみ」を選択します

これで「To-Dos」サブ・リージョンが完成しました。

9.4 「Links」サブ・リージョンの作成

「タスク」リージョンに「リンク」サブ・リージョンを作成して構成します。

「タスク」リージョンに「リンク」サブ・リージョンを追加するには、次のステップを実行します。

1. 「レンダリング」ツリーで、「タスク」を右クリックして「サブ・リージョンの作成」を選択します。

2. Property Editorで、次のように操作します。

a. 指定: タイトル - 「リンク」と入力します

b. 指定: タイプ - 「対話グリッド」を選択します

c. ソース: SQL問合せ - 「select * from demo_links」と入力します

d. 外観: テンプレート - 「標準」を選択します

e. マスター・ディテール: マスター・リージョン - 「タスク」を選択します

f. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します

g. サーバー側の条件: アイテム - P5_ROWIDを選択します

リージョンを編集可能な対話グリッドに変更するには、次のステップを実行します。

3. 「レンダリング」ツリーの「リンク」の下で、「属性」フォルダを選択します。

4. Property Editorで、次のように操作します。

a. 編集: 有効 - 「はい」を選択します

b. ツールバー: 「ボタン」 - 「保存」を選択解除します

9.5 「リンク」サブ・リージョンのリンク

表示から列を非表示にしますが、より上位レベルの表にリンクして、このリージョンがマスター・ディテール関係のディテールとして機能するようにします。

ID列を非表示にするには、次のステップを実行します。

1. 「レンダリング」ツリーの「リンク」の下で、「列」フォルダを展開して「ID」列を選択します。

2. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

「PROJECT_ID」列を非表示にして、それを「Tasks Project Id」列にリンクします。

3. 「レンダリング」ツリーで、PROJECT_ID列を選択します。

4. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

b. マスター・ディテール: マスター列 - 「PROJECT_ID」を選択します

注意:
表示される列は、「タスク」(マスター)リージョンで定義される列です。

「TASK_ID」列を非表示にして「Tasks Id」列にそれをリンクします。

5. 「レンダリング」ツリーで、TASK_ID列を選択します。

6. Property Editorで、次のように操作します。

a. 指定: タイプ - 「非表示」を選択します

b. マスター・ディテール: マスター列 - 「ID」を選択します

9.6 「リンク」列の改善

「Link Type」列を選択リストに変更し、よりユーザー・フレンドリなラベルを付けていくつかの列を更新して、監査詳細を表示専用に変更します。

「LINK_TYPE」列を選択リストに変更するには、次のステップを実行します。

1. 「レンダリング」ツリーの「リンク」列で、LINK_TYPE列を選択します。

2. Property Editorで、次のように操作します。

a. 指定: タイプ - 「選択リスト」を選択します

b. LOV: タイプ - 「静的値」を選択します

c. LOV: LOV - 「STATIC2:URL,Application」と入力します

d. LOV: 追加値の表示 - 「いいえ」を選択します

e. LOV: NULL値の表示 - 「いいえ」を選択します

「URL」、「APPLICATION_ID」および「APPLICATION_PAGE」列のラベルを更新します。

3. 「レンダリング」ツリーで、「URL」列を選択します。

4. Property Editorで、次のように操作します。

a. ヘッダー: ヘッダー - 「URL」と入力します

5. 「レンダリング」ツリーで、APPLICATION_ID列を選択します。

6. Property Editorで、次のように操作します。

a. ヘッダー: ヘッダー - 「Application ID」と入力します

7. 「レンダリング」ツリーで、APPLICATION_PAGE列を選択します。

8. Property Editorで、次のように操作します。

a. ヘッダー: ヘッダー - 「Page」と入力します

監査詳細を表示専用にするには、次のステップを実行します。

9. 「レンダリング」ツリーでCREATED列のみを選択し、[Ctrl]キーを押したまま、次のアイテムをすべて選択します。

- CREATED

- CREATED_BY

- UPDATED

- UPDATED_BY

10. Property Editorで、次のように操作します。

a. 指定: タイプ - 「表示のみ」を選択します

9.7 動的アクションの追加によるリンク・タイプの列の有効化

ユーザーは、「リンク」サブ・リージョンに2種類のリンクを追加できます。

- 関連WebサイトのURL

- アプリケーション内のページ

現時点では、ユーザーが「リンク」サブ・リージョンに新しいエントリを追加すると、適用できない列に情報を入力でき、混乱の元となっています。

「LINK_TYPE」列に動的アクションを追加して、リンク・タイプを選択したときに対話グリッドが関連した列のみを表示するようにします。2つの異なる「True」動的アクションを作成、定義して、URLに対して関連する列を有効化する必要があります。続いて、各動的アクションに対して反対のアクションを作成して「アプリケーション・ページ」列を有効化します。

URLに対して「LINK_TYPE」列に動的アクションを追加するには、次のステップを実行します。

1. 「レンダリング」ツリーの「リンク」の下で、「列」フォルダを展開してLINK_TYPE列を見つけます。

2. LINK_TYPE列を右クリックして「動的アクションの作成」を選択します。
新しい動的アクションが「レンダリング」ツリーにデータを移入します。

3. Property Editorで、次のように操作します。

a. 指定: 名前 - 「Enable Columns Based on Link Type」と入力します

b. クライアント側の条件: タイプ - 「アイテム/列 = 値」を選択します

c. クライアント側の条件: 値 - 「URL」と入力します

4. 「レンダリング」ツリーの「LINK_TYPE」列の下で、「True」フォルダを展開して「有効化」アクションを選択します。

5. Property Editorで、次のように操作します。

a. 影響を受ける要素: 列 - 「URL」を選択します

URLに対して「LINK_TYPE」列に2番目の動的アクションを追加するには、次のステップを実行します。

6. 「レンダリング」ツリーで、「リンク・タイプに基づいて列を有効化する」を右クリックして、「TRUEアクションの作成」を選択します。

7. Property Editorで、次のように操作します。

a. 指定: アクション - 「無効化」を選択します

b. 影響を受ける要素: 列 - 「APPLICATION_ID,APPLICATION_PAGE」と入力します

重要:

「影響を受ける要素: 列」フィールドにはスペースを入力しないでください。

ヒント:
「選択リスト」ボタンを使用して1列目を選択し、続いて再びそれを使用して2列目を選択することも可能です。

9.8 動的アクションへの反対のアクションの追加

動的アクション・タイプ(たとえば「表示」、「有効化」および「ツリーを開く」)には、対応する反対のアクションを含めます。反対のアクションを使用すると、クライアント側の条件がTrueと評価された場合に影響を受ける要素が一定の方向に設定され、クライアント側の条件がFalseと評価された場合に反対に設定されます。この事例では、LINK_TYPEがURLに等しいときに「URL」列が有効化され、他のいずれかのリンク・タイプが選択されると無効化されます。反対に、LINK_TYPEがURLに等しい場合、APPLICATION_IDとAPPLICATION_PAGEは無効にされます。

各Trueアクションに対して反対のアクションを作成するには、次のステップを実行します。

1. 「レンダリング」ツリーのLINK_TYPE Dynamic Actions Trueフォルダの下で、「有効化」 Trueアクションを右クリックして反対のアクションの作成を選択します。

2. 「レンダリング」ツリーのLINK_TYPE Dynamic Actions Trueフォルダの下で、「無効化」 Trueアクションを右クリックして反対のアクションの作成を選択します。
2つのアイテム(「有効化」と「無効化」)が「レンダリング」ツリーのFalseという名のフォルダの下に表示されます。

9.9 ランタイムでのTo-Dos対話グリッドの改善

監査詳細を削除して列を並べ替えることによりTo-Dosレポートの列をクリーンアップし、変更を主レポートに保存します。

1. ページ・デザイナで「ページの保存と実行」をクリックしてランタイムを表示します。

監査の詳細列を削除して残りの列を並べ替えるには、次のステップを実行します。

2. 「To-Dos」サブ・リージョンで、「アクション」メニューをクリックして「列」を選択します。
「列」ダイアログが表示されます。

3. 「表示」列で、次のアイテムを選択解除します。

- 作成日

- 作成者

- 更新日

- 更新者

4. 「名前」を選択して上移動アイコン(^)をクリックし、「割当て先」より上に列を移動します。

5. 「完了?」を選択して上移動アイコン(^)をクリックし、「説明」より上に列を移動します。

6. 「保存」をクリックします。

7. 「To-Dos」リージョンで、「アクション」メニューをクリックして「データ」を選択し、「ソート」を選択します。
「ソート」ダイアログが表示されます。

8. 「列」で「完了?」を選択します
「完了?」列が左のペインに表示されます。

9. 新しい範囲を追加するには、「追加」アイコン( + )をクリックします。

10. 新しいエントリ内でクリックして選択し、「列」で「作成」を選択します。

11. 「保存」をクリックします。

列のサイズを変更するには次のステップを実行します。

12. 「名前」列ヘッダーをクリックして「凍結」アイコン(雪片)をクリックし、「名前」列を位置にロックします。

13. (オプション)「To-Dos」サブ・リージョンの残りの列で、たとえば「完了?」の狭い列や「説明」の広い列の、列の間の区切りをクリックして適切な幅までドラッグします。

レポートを保存するには次のステップを実行します。

14. 「アクション」メニューをクリックし、「レポート」、「レポートの保存」の順に選択します。

これで「To-Dos」ティテール・サブ・リージョンが完成しました。

9.10 ランタイムでの「リンク」対話グリッドの改善

同様のタスクを実行して「リンク」サブ・リージョンをTo-Dosと整合的にし、主レポートに変更を保存します。

監査詳細列を削除するには次のステップを実行します。

1. 「リンク」サブ・リージョンで、「アクション」メニューをクリックして「列」を選択します。
「列」ダイアログが表示されます。

2. 「表示」列で、次のアイテムを選択解除します。

- 作成日

- 作成者

- 更新日

- 更新者

3. 「保存」をクリックします。

「作成」列を基準にレポートを並べるには次のステップを実行します。

4. 「アクション」メニューをクリックして「データ」を選択し、「ソート」を選択します。
「ソート」ダイアログが表示されます。

5. 「列」で「作成」を選択します。

6. 「保存」をクリックします。

(オプション)列のサイズを変更するには次のステップを実行します。

7. (オプション)「リンク」サブ・リージョンの残りの列で、たとえば「完了?」の狭い列や「説明」の広い列の、列の間の区切りをクリックして適切な幅までドラッグします。

レポートを保存するには次のステップを実行します。

8. 「アクション」メニューをクリックし、「レポート」、「レポートの保存」の順に選択します。

9. 完了したら、開発者ツールバーの「アプリケーション####」をクリックしてアプリケーション・ビルダーのアプリケーション概要に戻ります。

これで「リンク」ディテール・サブ・リージョンを完成し、マスター・ディテール/ディテール・ページを完全に構成しました。

次のレッスンに進みます。

10 「カレンダ」ページの開発

「カレンダ」ページの機能を展開すると、ユーザーがプロジェクトを表示、管理できます。

このレッスンについて

アプリケーションの作成ウィザードを使用してカレンダ・ページを作成した場合、DEMO_TASKS表にカレンダが作成されます。現時点では「カレンダ」ページは基本的に表示専用です。タスクとスケジュールの名前の表示のみ可能です。

このレッスンでは、ドラッグ・アンド・ドロップ機能を構成し、タスク名を「Maintain Project」フォーム内の対応するエントリにリンクすることで、カレンダに表示されたプロジェクトを対話モードにする方法を学習します。

ここから開始:
Basic Projects App Export - Topic 8.sql
前のレッスンを完了していない場合、付録「作業領域へのアプリケーションのインストール」を使用して上述のSQLスクリプトを作業領域にインポートし、このレッスンから先に学習を続けられます。このスクリプトは、このチュートリアル付属の.zipファイルを解凍した場所の/filesサブディレクトリにあります。

10.1 ランタイムでのカレンダのヘッダーと境界線の非表示

まずビューからカレンダのヘッダーと境界線部分を非表示にして表示を最適化します。

1. アプリケーションのホームページで、「6 - カレンダ」をクリックして、ページをページ・デザイナで開きます。

2. 次のいずれかを行います:

- ランタイムの「カレンダ」ページに移動します。

- ページ・デザイナで、「ページの保存と実行」ボタンをクリックして、ページをランタイムで表示します。

ライブ・テンプレート・オプションでカレンダのヘッダーと境界線を非表示にするには、次のステップを実行します。

3. 開発者ツールバーで、「クイック編集」をクリックします。

4. 「カレンダ」リージョンにマウス・カーソルを合せ、右上隅にあるレンチのアイコンをクリックします。
「ライブ・テンプレート・オプション」ダイアログが表示されます。

5. 「ライブ・テンプレート・オプション」で次のように操作します。

a. ヘッダー - 「非表示だがアクセス可能」を選択します

b. スタイル - 「境界線の削除」を選択します

6. 「保存」をクリックします。

10.2 個別プロジェクトのドラッグ・アンド・ドロップの有効化

DEMO_TASKS表のキー列でドラッグ・アンド・ドロップを有効化すると、ユーザーがカレンダ内でプロジェクトを再配置できます。

カレンダでプロジェクトのドラッグ・アンド・ドロップを有効化するには、次のステップを実行します。

1. 開発者ツールバーで「ページ6の編集」をクリックしてページ・デザイナに戻ります。

2. 「レンダリング」ツリーで、「コンテンツ本体」フォルダの下にある「カレンダ」リージョンを見つけます。

3. 「レンダリング」ツリーで、「カレンダ」の下にある「属性」を選択します。

4. Property Editorで、次のように操作します。

a. 設定: 主キー列 - 「ID」を選択します

b. 設定: ドラッグ・アンド・ドロップ: 「はい」を選択します

c. 設定: PL/SQLコードのドラッグ・アンド・ドロップ - 現在のコンテンツを削除し、次のコードをコピーして貼り付けます。

begin   update demo_tasks
set start_date = to_date(:APEX$NEW_START_DATE, 'YYYYMMDDHH24MISS')
, end_date = to_date(:APEX$NEW_END_DATE, 'YYYYMMDDHH24MISS')
where id = :APEX$PK_VALUE;
end;

ヒント:
このPL/SQLコードは「ヘルプ」タブのコード例からコピーされ、適切な表名を使用して更新されました。

10.3 カレンダ・ページへのリンクの追加

ドラッグ・アンド・ドロップに加えて、ユーザーがプロジェクトをクリックすると、クイック編集のためにアプリケーションがそのアイテムの「Maintain Project」ページに移動するリンクに、すべてのプロジェクトを変換できます。

カレンダのすべてのアイテムに「Maintain Project」へのリンクを追加するには、次のステップを実行します。

1. 「レンダリング」ツリーで、「カレンダ」の下にある「属性」を選択します。

2. Property Editorで「設定」グループを展開し、「リンクの表示/編集」ボタンをクリックします(「リンクが定義されていません」)。
「リンク・ビルダー」ダイアログが表示されます。

3. Link Builderの「リンクの表示/編集」ダイアログで、次のように操作します。

a. ページ - 5を選択または入力します

b. 名前 - 「P5_ID」を選択します

c. 値- 「PROJECT_ID」を選択するか、「&PROJECT_ID」と入力します。

d. 「キャッシュのクリア」に、5と入力します

4. 「OK」をクリックします。

5. 「ページの保存と実行」をクリックします。

「カレンダ」の変更と新しい機能を確認します。

それらの機能を試用してページの反応を確認します。

- カレンダ・エントリに合せると、ツールチップにタスク名、開始日、終了日が表示されます。

- 既存のカレンダ・エントリをクリックして、カレンダ・エントリの詳細にデータが移入された「Maintain Task」ページの表示を確認します。

- カレンダ・エントリをクリックしたままカレンダ上の新しい日付に動かし、選択したタスクの開始日と終了日がどのように更新されるか確認してください。

- カレンダ・エントリの端をクリックしたまま左右に移動して、選択したタスクの終了日が更新されるのを確認してください。

- 現在の月のイベントのリストを参照するには、「リスト」ボタンをクリックします。

- ドラッグ・アンド・ドロップ操作の実行後、カレンダ・エントリをクリックして、そのタスクの日付が変更されたことを確認します。

お疲れ様でした。アプリケーションはこれで完成です。

A 作業領域へのアプリケーションのインポート

このチュートリアルのいずれかの章を最初から開始するには、Oracle Application Express作業領域にSQLスクリプトをアップロードします。

このチュートリアルを、SQLスクリプトにある一連のスクリプトをアップロードして実行することで開始しました。これらのスクリプトが、このチュートリアルの演習のベースとなる表とデータを作成しました。また、スクリプトをアップロードして章の先頭からチュートリアルを開始することもできます。各スクリプトは、章の先頭に適合するようにアプリケーションを更新します。

アップロードするファイルは、チュートリアルの.zipファイルの/filesサブディレクトリにあります。各ファイルには、それ以前の章で行うように指示されたすべての変更が組み込まれており、新しいアプリケーションIDを持つ「Demo Projects」という名前の新しいアプリケーションを作成します。

ヒント:
作業領域にDemo Projectsアプリケーションがすでにある場合、「アプリケーション定義の編集」ページの「名前」属性を編集して既存のDemo Projectsアプリケーションの名前を変更することができます。『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のアプリケーション属性の編集に関する項を参照してください。

前提条件

アプリケーションをインポートするには、次のものが必要です。

- Oracle Application Express作業領域へのアクセス権

- 「作業領域への移入」でインポートしたベース・アプリケーションの表とデータ

- 作業領域に十分な容量が割り当てられていること

- 容量の増大をリクエストするには、『Oracle Application Express管理ガイド』の格納領域の追加リクエストに関する項を参照してください

アプリケーション・エクスポート・ファイル(*.sql)をインポートするには、次のステップを実行します。

1. 作業領域のホームページで「アプリケーション・ビルダー」をクリックしてアプリケーション・ビルダーのホームページに移動します。

2. 「インポート」をクリックします。
「インポート」ダイアログが表示されます。

3. 「インポート」で、次のステップを実行します。

a. ファイルのインポート - 適切なボタン(たとえば、Chromeでファイルを選択するボタン)をクリックしてシステム内でファイルを探します。

b. 解凍された.zipアーカイブを見つけて/filesサブディレクトリを開きます。

c. 目的のスクリプトを選択し、「開く」をクリックします。

ヒント:
適切なスクリプト・ファイル名を判断するには、章の先頭にある「ここから開始」を参照してください。

d. 「ファイル・タイプ」は、「データベース・アプリケーション」、「ページ」または「コンポーネントのエクスポート」を選択します。

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

4. 「ファイルのインポートの確認」ページで、「次へ」をクリックします。

5. 「データベース・アプリケーションのインストール」ページで、「アプリケーションのインストール」をクリックします。
新しいアプリケーションが構築されます。この処理には数分かかる場合があります。

6. 「アプリケーションの編集」をクリックして、アプリケーション・ビルダーで、インポートされたアプリケーションの概要に移動します。

作業領域に新しいアプリケーションをインポートしました。

索引

A  B  C  D  F  G  I  L  M  N  O  P  Q  R  S  T  V

A

- 「アクション」メニュー・ボタン 1

- 外観テンプレート 1

- アプリケーション・ランタイム 1 , 2

- 属性 1

- 属性プロパティ 1

- audit column 1

- 軸, チャートの 1

B

- ボタン・プレースホルダ 1

C

- カレンダ 1

- チャート 1

- チャート・リージョン 1

- 列

- スイッチ 1

- テキスト・フィールド 1

- アプリケーションの作成ウィザード

- 「ページの追加」機能 1

- 「CREATE」ボタン 1 , 2

- ページの作成ウィザード 1

D

- データ系列 1

- 開発者ツールバー

- クイック編集 1

- 表示のみ 1

- 動的アクション 1 , 2

F

- フィールド

- 非表示 1

- ラベル 1

G

- ギャラリ 1

I

- アイコン、ナビゲーション・メニュー 1

- アプリケーションのインポート 1

- 対話グリッド

- 列の順序の変更 1

- 列の固定 1

- 列の非表示 1

- グリッドのソート 1

- SQL 1

- 対話モード・レポート 1 , 2

L

- 「レイアウト」タブ 1

- アプリケーションの様々なページへのリンク 1

- リンク 1

- 値リスト

- 静的 1

- ライブ・テンプレート・オプション 1

- LOV 1 , 2

M

- マスター・ディテール 1

- マスター・ディテール・ページ 1

- モーダル・ダイアログ 1

- モーダル・ダイアログ, ブラウザでの変更表示 1

N

- ナビゲーション・メニュー 1

O

- 反対のアクション 1 , 2

P

- ページ・デザイナ 1

- ページ・アイテム, 異なるページへのコピー 1

- 写真BLOB 1

- 「プロセス」タブ 1

- プロジェクト・フォーム 1

- プロジェクト・ページ 1

- プロパティ・エディタ 1

Q

- クイック編集 1

R

- リージョン 1 , 2

- リージョン属性 1

- レポート 1

- レポート・リージョン 1

- ランタイム 1 , 2 , 3

S

- ページの保存と実行 1

- 共有コンポーネント

- 値リスト 1

- SQL問合せ 1

- ストレッチ・フォーム・フィールド 1

- サブ・リージョン 1 , 2

T

- テンプレート・オプション 1

- テンプレート・オプション 1

- テンプレート・オプション・ボタン 1

- textarea 1

V

- 検証 1

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。