Oracle Database 2日でApplication Express開発者ガイド リリース3.0 E05691-01 |
|
このチュートリアルでは、AnyCo Corpという架空の会社の人事管理(HR)アプリケーションを作成します。この章では、アプリケーションを構築する方法、アプリケーションを変更する方法、および開発プロセスの様々な段階でアプリケーションをプレビューする方法について説明します。
この章での操作を始める前に、次のことを行います。
この章の内容は次のとおりです。
このチュートリアルでは、AnyCo Corpという架空の会社の人事(HR)アプリケーションの開発について説明します。このアプリケーションを作成すると、ユーザーはOEHR_DEPARTMENTS
表およびOEHR_EMPLOYEES
表に格納された従業員情報の表示と変更を行うことができます。
アプリケーションを構築するときは、次のステップを実行します。
OEHR_EMPLOYEES
表に基づいて「Employees」フォームおよびレポートを構築します。「「Employees」レポートおよびフォームの追加」を参照してください。
この最初の演習では、初期アプリケーションの作成について説明します。「アプリケーションの作成」ウィザードを使用して、2つのページを作成し、基本的なアプリケーション機能を指定します。
初期アプリケーションを作成するには、次のステップを実行します。
詳細は、「ホスティングされたデモ環境へのログイン」または「ローカル・インスタンスへのログイン」を参照してください。
「アプリケーションの作成」ウィザードが表示されます。
ウィザード内の各ページには、ウィザードのタイトルが表示されます(「アプリケーションの作成」など)。また、各ウィザード・ページには、左側にステップの順序を示す一連のブロックが表示されます。ハイライト表示されているブロックは、現在実行中のステップです。
進行状況がわかるように、これらの演習の各ステップは通常、ブロック・レベルで開始されます。たとえば、「アプリケーションの作成」ウィザードの最初のステップは、「方法」という単語がハイライト表示されます。したがって、次のステップは「方法」から開始することになります。
AnyCo Corp
と入力します。
次に、アプリケーションにページを追加します。
Home
と入力します。
新しいページが一番上の領域に表示されます。また、引き続き初期アプリケーションにページを追加できるように、「ページの追加」領域が表示されます。
次に、OEHR_DEPARTMENTS
表のレポート・ページを追加します。
これにより、アプリケーションのページ間に階層が設定されます。
リストには、アプリケーションに関連付けられているスキーマのすべての表とビューが表示されます。
選択した場合は、このページに追加可能なサマリー・レポートとチャートに関する情報を入力するように求められます。
「アプリケーションの作成」セクションで表示されるページは、アプリケーションのページ階層が反映されています。
次に、デフォルトのページ名であるOEHR_DEPARTMENTSをDepartmentsに変更します。
Departments
に変更します。
最初のページを追加したら、アプリケーション・レベルの設定を定義します。
Application Expressは、認証スキーマのデフォルトです。認証スキーマ・オプションを使用すると、Application Express認証や別の種類の認証を使用して、ユーザーのアプリケーションへのアクセスを制御することができます。
作成した「ホーム」および部門の2つのページは、デフォルトではアイコンとして表示されます。
Application Expressによって、「ログイン」ページが自動的にアプリケーションに追加されます。
これでステップは完了しました。Application Expressを使用してアプリケーションが作成されました。次に、このアプリケーションをプレビューし、エンド・ユーザーに対してどのように表示されるかを確認します。
アプリケーションを実行してプレビューします。アプリケーションを実行すると、エンド・ユーザーに対して表示される状態と同様にレンダリングされたバージョンのアプリケーションが表示されます。
新しいページを作成する場合は、ページを個別に実行するか、またはアプリケーション全体を実行することで、作成したページを表示できます。ページまたはアプリケーションは実行時に、Application Expressエンジンによって、データベースに格納されたデータに応じて表示可能なHTMLに動的にレンダリングされます。
アプリケーションのプレビューを行うには、次のステップを実行します。
アプリケーションの作成時にApplication Express認証を選択しているため、Application Expressのログイン資格証明を使用してアプリケーションを実行できます。詳細は、『Oracle Database Application Expressユーザーズ・ガイド』の認証を介したユーザーの本人確認に関する項を参照してください。
アプリケーションの「ホーム」ページが表示されます。
設定したページ階層を反映して、「ホーム」ページに「Departments」ページへのリンクが表示されます。
また、ページの下部には「開発者」ツールバーが表示されます。これらのリンクは、開発環境内でアプリケーションを実行すると表示されます。「開発者」ツールバーを使用すると、カレント・ページの編集、新しいページ、リージョンまたはページ・コントロールの作成、セッション・ステートの表示、デバッグ・モードの有効/無効の切替えを簡単に実行できます。
「Departments」ページが表示されます。
Application Expressには、特定のタスクを簡単に実行できる次のいくつかの機能が含まれています。
「アプリケーションの作成」ウィザードを実行すると、選択した内容に従ってフォームおよびレポートが作成されます。バックグラウンドでは、Application Expressがユーザーにかわって、データベースから適切なデータを抽出する問合せを作成しています。
この演習では、「Departments」レポートの問合せを変更して、OEHR_EMPLOYEES
表の情報を含めます。
「Departments」レポートを変更するには、次のステップを実行します。
ページ2のページ定義が表示されます。ページは、アプリケーションの基本的なビルディング・ブロックです。ページには、タブ、リスト、ボタン、アイテム、リージョンなどのユーザー・インタフェース要素が含まれます。アプリケーションに属する各ページの定義を確認するには、「ページ定義」ページを使用します。詳細は、「アプリケーション・ビルダーの概要」を参照してください。
SELECT d.department_id "Department ID", d.department_name "Department Name", count(e2.employee_id) "Number of Employees", substr(e.first_name,1,1)||'. '|| e.last_name "Manager Name", c.country_name "Location" FROM oehr_departments d, oehr_employees e, oehr_locations l, oehr_countries c, oehr_employees e2 WHERE d.manager_id = e.employee_id AND d.location_id = l.location_id AND d.department_id = e2.department_id AND l.country_id = c.country_id AND instr(upper(d.department_name),upper(nvl(:P2_REPORT_SEARCH,d.department_ name))) > 0 GROUP BY d.department_id, d.department_name, substr(e.first_name,1,1)||'. '||e.last_name, c.country_name
ページを実行して、エンド・ユーザーにページがどのように表示されるのかを確認します。ページを実行すると、Application Expressエンジンによってページの動的なレンダリングおよび処理が行われ、表示可能なHTMLを確認できます。
ページを実行するには、次のステップを実行します。
更新された「Departments」レポートが表示されます。
更新されたレポートには新しく3つの列(Number of Employees、Manager NameおよびLocation)が追加されています。また、データが別の順序で表示されている場合もあります。この差異は無視してステップを続行します。
この演習では、従業員情報を表示するレポートと、従業員情報の作成、更新および削除を行うフォームを追加します。
従業員のレポートおよびフォームを追加するには、次のステップを実行します。
「アプリケーション」ホームページが表示されます。
ここで選択した列は、「レポート」ページに表示されます。
デフォルトの「リンクの編集」イメージは、小さい紙と鉛筆に似ています。
次に、フォームのページとリージョンの情報を定義します。
OEHR_EMPLOYEES
表には、すでに主キーを移入するトリガーが含まれています。
これらの列は、「Create/Edit Employee」フォームに表示されます。
これらを選択することで、従業員レコードの追加、更新および作成を行うことができます。
作成した2つのページのプレビューを行うには、カレント・ページを実行します。「Employees」レポートからフォームのプレビューを行うことができます。
ページのプレビューを行うには、次のステップを実行します。
「Employees」レポートが表示されます。
「Employees」レポートについては、次のことに注意してください。
データが別の順序で表示されている場合もあります。その場合、この違いは無視してステップを続行します。
「Create/Edit Employee」フォームが表示されます。
「Create/Edit Employee」フォームについては、次のことに注意してください。
この演習では、SQLスクリプトを実行して、従業員の給与を計算するファンクションを作成します。次に、Remuneration列を追加して、「Employees」レポートで給与の計算を表示します。
この項の内容は次のとおりです。
最初に、従業員の給与を計算するファンクションを作成します。
ファンクションを作成するには、次のステップを実行します。
「アプリケーション」ホームページが表示されます。
「SQLコマンド」をクリックすると、データベースに対してPL/SQLを実行できるウィンドウが開きます。
CREATE OR REPLACE FUNCTION calc_remuneration( salary IN number, commission_pct IN number) RETURN NUMBER IS BEGIN RETURN ((salary*12) + (salary * 12 * nvl(commission_pct,0))); END; /
「結果」セクションに次のメッセージが表示されます。
Function created.
次に、従業員の給与計算の結果を表示する新しい列を追加します。
新しい列を追加するには、次のステップを実行します。
リージョン定義が表示されます。
SELECT "EMPLOYEE_ID", "FIRST_NAME", "LAST_NAME", "HIRE_DATE", "SALARY", "COMMISSION_PCT", calc_remuneration(salary, commission_pct) REMUNERATION FROM "#OWNER#"."OEHR_EMPLOYEES"
ページのプレビューを行うには、ページの右上にある「ページの実行」アイコンをクリックします。新しい列「Remuneration」が追加されています。
次に、数値を含む列の書式を変更します。
列書式を変更するには、次のステップを実行します。
ページ定義が表示されます。
「レポート属性」ページが表示されます。
次に、該当する列に対して列およびヘッダーの位置合せを変更します。
SALARY
、COMMISSION_PCT
およびREMUNERATION
に対して「右」を選択します。
SALARY
、COMMISSION_PCT
およびREMUNERATION
に対して「中央」を選択します。次に、列の数値の書式を編集します。
SALARY
の書式を編集します。
REMUNERATION
に対して、前述のステップを繰り返します。
Salary列およびRemuneration列の数値は、ドル記号、カンマ、小数点が付いて表示され、正しい位置に配置されるようになりました。
この演習では、「Create/Edit Employee」ページの一部のフィールド(アイテム)を編集して、選択リストとして表示します。選択リストとは、アプリケーションのフィールドを移入するために選択可能な値を表示したドロップダウン・リストです。
アイテムを選択リストとして表示するには、通常、次の2つのステップを実行します。
この項の内容は次のとおりです。
次に、ジョブ、従業員および部門のLOVを作成します。
ジョブのLOVを作成するには、次のステップを実行します。
「LOVの作成」ウィザードが表示されます。
SELECT job_title d, job_id v FROM oehr_jobs ORDER BY d
最初に選択された列はユーザーに表示される列(d)であり、2番目に選択された列はデータベースに格納される値またはデータベースから取得される値(v)です。
「共有コンポーネント」は、このページに明示的に追加されると、ページ定義に表示されます。この操作は、チュートリアルの後半で行います。
従業員のLOVを作成するには、次のステップを実行します。
SELECT first_name ||' '|| last_name d, employee_id v FROM oehr_employees ORDER BY last_name
部門のLOVを作成するには、次のステップを実行します。
SELECT department_name d, department_id v FROM oehr_departments ORDER BY d
LOVの作成後、選択リストとして表示されるようにこれらのアイテムを編集する必要があります。デフォルトでは、アイテムはテキスト・フィールドとして表示されます。
また、P4_JOB_ID、P4_MANAGER_IDおよびP4_DEPARTMENT_IDのアイテム名を変更する必要があります。
ジョブ・アイテムを編集するには、次のステップを実行します。
「アイテム」セクションでは、このページのすべてのアイテムが表示されます。現在は、2つのアイテムを除き、すべてのアイテムがデフォルト・タイプのテキスト・フィールドを示しています。
「ページ・アイテムの編集」ページが表示されます。
Job
に変更します。
マネージャ・アイテムを編集するには、次のステップを実行します。
Manager
に変更します。
Job列は必須であるため、この情報をジョブに含めることはありません。cManagerやDepartmentなどのオプションの列については、選択リストにNULLレコードが表示されるように指定する必要があります。また、このような場合に、ユーザーに表示されるわかりやすいテキストも指定できます。
部門アイテムを編集するには、次のステップを実行します。
Department
に変更します。
フォームに、「Job」、「Manager」および「Department」の各フィールドが選択リストとして表示されるようになりました。
この演習では、「ホーム」ページに、「Employees」レポートへナビゲートするリンクを追加します。このリンクは、「ホーム」ページの左側の「ナビゲーション」リージョンに表示されます。
「ホーム」ページに「Employees」レポートへのリンクを追加するには、次のステップを実行します。
「ホーム」ページに「Employees」へのリンクが追加されました。
この演習では、「Employees」レポートと「Departments」レポートをリンクさせます。これを行うには、ユーザーが部門を選択できるように、「Employees」ページに新しいリージョンと新しいアイテムを作成します。次に、選択した部門に属する従業員のみを表示するように「Employees」レポートを変更します。
この項の内容は次のとおりです。
最初に、「Employees」ページにリージョンを作成し、「Department」選択リストを格納します。
リージョンを作成するには、次のステップを実行します。
「リージョン」セクションで、HTMLタイプの「Department」リージョンが表示されるようになりました。
次に、新しい「Department」リージョンでアイテムを作成します。アイテムは「Department」のLOVを使用した選択リストです。
アイテムを作成するには、次のステップを実行します。
「Departments」が選択リストに表示されます。これは、「Departments」を他のページでも使用できる共有コンポーネントとして作成したためです。
- No Department Assigned -
-1
NULL値を入力すると、エントリに対する問合せの記述および値のデフォルト設定が容易になります。この場合、「No Department Assigned」を選択すると、常にこのアイテムのセッション・ステートは-1に設定されるので、問合せでその値を使用できます。
Department
に変更し、「次へ」をクリックします。
この時点では、アイテムは作成されていますが、レポートにリンクされていません。アイテムをレポートにリンクするには、「リージョン・ソース」を編集して、WHERE
句を追加します。
アイテムをレポートにリンクするには、次のステップを実行します。
WHERE nvl(DEPARTMENT_ID,'-1') = nvl(:P3_DEPARTMENT_ID,'-1')
このWHERE
句は、選択した部門に属する従業員のみを表示するように問合せを変更します。
ページを送信すると、ページに定義されているブランチによって、次に表示されるページが決まります。ページを送信する際にこのページを再表示する場合は、同じページへのブランチを作成します。
ブランチを作成するには、次のステップを実行します。
リストには、その部門に所属する従業員のみが表示されます。
この演習では、ユーザーを「Employees」レポートにナビゲートするリンクを「Departments」レポートに追加します。また、選択した部門にフォーカスを設定します。
この変更を行うには、「Departments」レポートのレポート属性を編集します。
列値をリンクに変更するには、次のステップを実行します。
「リージョン属性」ページが表示されます。
alt="View Employees" title="View Employees"
3
と入力します。
「列リンク」セクションでは、選択したオプションがすべて表示されます。
要約すると、これらのオプションによって、エンド・ユーザーがリンクをクリックした場合に次の動作が行われるように設定されます。
「列属性」セクションは、「Number of Employees」行の「リンク」列にチェックマークが付いて、変更されたことを示しています。
これで、エンド・ユーザーが「Number of Employees」列のデータをドリルダウンできるようになりました。
選択した部門に所属する従業員のみが「Employees」レポートに表示されます。
この演習では、部門の詳細を表示するリージョンとしてレポートを追加します。また、部門を選択した場合、レポートに部門情報のみを表示するように条件を作成します。「No Department Assigned」を選択すると、「Department Details」レポートは表示されません。
この項の内容は次のとおりです。
最初にレポートを作成し、条件付きで表示するように設定します。
レポートと条件を作成するには、次のステップを実行します。
SELECT count(e2.employee_id) "Number of Employees:", substr(e.first_name,1,1)||'. '|| e.last_name "Manager Name:", c.country_name "Location:" FROM oehr_departments d, oehr_employees e, oehr_locations l, oehr_countries c, oehr_employees e2 WHERE d.manager_id = e.employee_id AND d.location_id = l.location_id AND d.department_id = e2.department_id AND l.country_id = c.country_id AND nvl(d.department_id,'-1') = nvl(:P3_DEPARTMENT_ID,'-1') GROUP BY substr(e.first_name,1,1)||'. '||e.last_name, c.country_name
この選択を行うと、リストが縦に表示されます。
次に、ユーザーが「No Department Assigned」オプションを選択した場合は部門の詳細を表示しないという条件を作成します。
次に、「Department Details」レポートのページ区切りをオフにします。これは、一度に1つのレコード(「Department Details」レポート)のみが表示されるためです。ページ区切りをオンのままにすると、部門の詳細を表示するリージョンに情報「 1 - 1」が含まれます。
ページ区切りをオフにするには、次のステップを実行します。
従業員キンバリー・グラントが表示されます。この従業員は現在部門に割り当てられていません。そのため、部門の詳細は表示されません。このフォームに表示される1 - 1は「Employees」レポートの一部であり、今回編集を行った「Department Details」リージョンの一部ではありません。
「Department」の下に詳細が表示されます。
グラフィカルなロゴやテキストは、各ぺージに表示されるようにアプリケーションへ追加できます。表示位置はページ・テンプレートにより決まります。
この演習では、アプリケーションに会社名を追加します。
アプリケーションに会社名を追加するには、次のステップを実行します。
「アプリケーション定義の編集」ページが表示されます。
会社名がアプリケーション内の各ページに表示されます。
この演習では、アプリケーションの現行のテーマを別のテーマに切り替えます。テーマとは、アプリケーションのユーザー・インタフェースを定義するテンプレートのコレクションです。各テーマには、すべてのタイプのアプリケーション・コンポーネントおよびページ・コントロール(個々のページ、リージョン、レポート、リスト、ラベル、メニュー、ボタン、およびLOV)のテンプレートが含まれています。
Application Expressは、アプリケーション・ロジックから表示(つまりユーザー・インタフェースのテーマ)を分離します。あるテーマでアプリケーションを設計してから別のテーマに変更したり、独自のカスタム・テーマを作成して使用することも可能です。(問合せ、プロセス、ブランチなどの)アプリケーション・ロジックをHTMLレンダリングから分離することで、アプリケーションをリライトせずに、新しい設計および他のテクノロジを使用できます。テーマには多数のテンプレートが集められ、アプリケーションに必要となる可能性があるすべてのユーザー・インタフェースのパターンが収録されています。
テーマを切り替えるには、次のステップを実行します。
「テーマの作成」ウィザードが表示されます。
ウィザードでは、新しいテーマに、現行のアプリケーションで使用されている全テンプレートに対応するテンプレートが存在していることが確認されます。テンプレートが欠落している場合は、「ステータス」列に警告メッセージが表示されます。このチュートリアルでは、Application Expressによって欠落しているリージョン・テンプレートが既存のテンプレートにマップされるため、このメッセージを無視することができます。
新しい色のスキームおよびページ全体の表示のレイアウトに注意してください。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|