このチュートリアルでは、AnyCo Corpという架空の会社の人事管理(HR)アプリケーションを作成します。このセクションでは、開発プロセス中の異なるポイントで実行されるアプリケーションの構築、変更およびプレビューの方法について説明します。
このセクションを開始する前に、次のことを行います。
「サンプル・オブジェクトのインストール」で説明するとおり、データベース・オブジェクトのインストールが完了していることを確認します。
トピック:
このチュートリアルでは、AnyCo Corpという架空の会社の人事管理(HR)アプリケーションの開発について説明します。 このアプリケーションを作成すると、OEHR_DEPARTMENTS
およびOEHR_EMPLOYEES
表に格納された従業員情報を表示および変更できます。
アプリケーションを構築するときは、次のタスクを実行します。
初期アプリケーションの作成: 「ホーム」ページと基本的な「Departments」レポートを含むアプリケーションを作成します。
「Departments」レポートの変更: レポートを展開して、他の表のデータを表示します。
対話モード・レポートの使用: 対話モード・レポートを実行および使用します。
「Employees」レポートおよびフォームの追加: OEHR_EMPLOYEES
表に基づいて「Employees」フォームおよびレポートを構築します。
「Employees」レポートの編集: 計算されたフィールドを「Employees」レポートに追加します。
「ホーム」ページから「Employees」レポートへのリンクの追加: 「ホーム」ページにリンクを追加します。
「Employees」レポートへの「Department」列の追加: ユーザーが部門を選択できるように「Employees」レポートを変更します。
別のページへの列値のリンク: 「Departments」レポートに、「Employees」レポートにナビゲートするリンクを追加します。
「Employees」レポートへのLOVの追加: 部門の詳細を表示するリージョンとしてレポートを追加します。
会社名の追加: アプリケーション内のすべてのページに表示されるように会社名を追加します。
テーマの切替えによるユーザー・インタフェースの変更: アプリケーションのテーマを切り替えます。
この最初の演習では、初期アプリケーションの作成について説明します。「アプリケーションの作成」ウィザードを使用して、2つのページを作成し、基本的なアプリケーション機能を指定します。
このセクションでは、次のページを作成します。
ホーム: このページはアプリケーションの実行時に表示される最初のページです。このページには「Departments」レポートへのリンクが含まれます。
Departments: このページはすべての部門の対話モード・レポートです。
対話モードとクラシックの2つのタイプのレポートがあります。アプリケーションの作成、フォームの変換およびレポート・リージョンの作成時のデフォルトは対話モードです。フィルタ、ソート、コンパイルなど、ユーザーによるカスタマイズを指定するときは、対話モード・レポートを選択する必要があります。この機能の使用が限定されている場合は、クラシック・レポートの使用をお薦めします。
初期アプリケーションを作成するには、次のステップを実行します。
Oracle Application Expressにログインします。
手順については、「ホスティングされたデモ環境へのログイン」または「ローカル・インスタンスへのログイン」を参照してください。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。
「作成」ボタンをクリックします。
ウィザード内の各ページにウィザードのタイトルが表示されることに注意してください(たとえば、「アプリケーションの作成」など)。また各ウィザードのページ左に手順を表す一連のブロックが表示されます。ハイライトされたブロックは実行中のステップを表します。
わかりやすいように、これらの演習の各ステップはブロック・ラベルで開始します。たとえば、アプリケーションの作成ウィザードの最初のステップではMethodがハイライトされています。次のステップはFor Methodから開始することがわかります。
「方法」で、「データベース」を選択し、「次へ」をクリックします。
デフォルトの「最初から」を受け入れて、「次へ」をクリックします。
「名前」で、次のステップを実行します。
名前: AnyCo Corp
アプリケーション: デフォルトIDを受け入れます。このワークスペースで作成する各アプリケーションに対しシステムから一意のIDが提供されます。
「アプリケーションの作成」で、デフォルトの「最初から」を受け入れます。
「スキーマ」で、このチュートリアルのオブジェクトを含むスキーマを選択します(「TWODAYPLUS」など)。
「次へ」をクリックします。
次に、アプリケーションにページを追加します。
「ページ」で、「ページの追加」セクションに次の項目を指定します。
「ページ・タイプの選択」で、デフォルトの「空白」を受け入れます。
ヒント: アイテム・ヘルプの各オプションの説明情報です。ヘルプが使用できる場合、アイテム・ラベルの上にカーソルを置くとアイテム・ラベルは赤に変わり、カーソルは矢印と疑問符マークに変わります。 |
「ページ名」に、Home
と入力します。
「ページの追加」をクリックします。
「ホーム」ページが一番上の領域にリスト表示されます。また、引き続き初期アプリケーションにページを追加できるように、「ページの追加」領域が表示されます。
次に、OEHR_DEPARTMENTS
表のレポート・ページを追加します。
「ページの追加」セクションで次を指定します。
「ページ・タイプの選択」で、「レポート」を選択します。
「ページに従属」で、「ホーム (1)」を選択します。
これにより、アプリケーションのページ間に階層が設定されます。
「ページ・ソース」で、デフォルトの「表」を受け入れます。
「表名」で、「OEHR_DEPARTMENTS」を選択します。
リストには、アプリケーションに関連付けられているスキーマのすべての表とビューが表示されます。
「ページの追加」をクリックします。
「アプリケーションの作成」セクションで表示されるページは、アプリケーションのページ階層が反映されています。
次に、デフォルトのページ名であるOEHR_DEPARTMENTSをDepartmentsに変更します。
「Oehr Departments」リンクをクリックします。
ページ定義で、「ページ名」をDepartments
に変更して、「変更の適用」をクリックします。
「アプリケーションの作成」セクションで、「次へ」をクリックします。
次に、アプリケーションレベルの設定をいくつか定義します。
「タブ」で、「タブなし」を選択して「次へ」をクリックします。
「共有コンポーネント」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。
「属性」で、次の変更を行います。
「認証スキーム」で、デフォルトの「Application Express」を受け入れます。
Application Expressは、認証スキームのデフォルトです。認証スキーム・オプションを使用すると、Application Express認証や別の種類の認証を使用して、ユーザーのアプリケーションへのアクセスを制御することができます。
言語: デフォルトの「英語(en)」を受け入れます。
ユーザー言語プリファレンスの派生元: デフォルトの「アプリケーションのプライマリ言語」を受け入れます。
日付書式: 上矢印をクリックして、「12-JAN-04」を選択します。
日時書式: 上矢印をクリックして、「12-JAN-2004 14:30」を選択します。
タイムスタンプ書式: 上矢印をクリックして、「12-JAN-2004 14:30」を選択します。
タイムスタンプ・タイムゾーン書式: 上矢印をクリックして、「12-JAN-2004 14:30」を選択します。
「次へ」をクリックします。
「ユーザー・インタフェース」で、「テーマ2」を選択して「次へ」をクリックします。
「確認」で、情報を確認して「作成」をクリックします。
作成した2つのページ(「Home」および「Departments」)は、デフォルトではアイコンで表示されます。
注意: アイコンではなくレポートでページを表示するには、「レポートの表示」アイコンをクリックします。ビュー設定はセッション間で保持されます。これらのステップではデフォルトの設定を使用しているため、続行する前に「アイコン」ビューに戻します。 |
Oracle Application Expressによって、「ログイン」ページが自動的にアプリケーションに追加されます。
これで、Oracle Application Expressを使用した最初のアプリケーションが作成されました。次に、エンド・ユーザーへの見え方を確認するために、アプリケーションのプレビューを行います。
アプリケーションを実行してプレビューを行います。アプリケーションを実行すると、エンド・ユーザーが確認できる状態と同じレンダリングされたバージョンのアプリケーションが表示されます。
ページを作成する場合は、ページを個別に実行するか、またはアプリケーション全体を実行することで、作成したページを表示できます。ページまたはアプリケーションは実行時に、Application Expressエンジンによって、データベースに格納されたデータに応じて表示可能なHTMLに動的にレンダリングされます。
アプリケーションは次の方法で実行できます。
アプリケーションを実行するには、「アプリケーションの実行」アイコンをクリックします。
特定のページを実行するには、「ページの実行」アイコンをクリックします。
アプリケーションのプレビューを行うには、次のステップを実行します。
「アプリケーション」ホームページで、「アプリケーションの実行」をクリックします。
アプリケーションを初めて実行するときは、ユーザー名とパスワードの入力が求められます。続行するには、ワークスペース・ユーザー名とパスワードを入力して、「ログイン」をクリックします。
アプリケーションを初めて実行するときは、ユーザー名とパスワードの入力が求められます。続行するには、ワークスペース・ユーザー名とパスワードを入力して、「ログイン」をクリックします。
アプリケーションの作成時にApplication Express認証を選択しているため、Application Expressのログイン資格証明を使用してアプリケーションを実行できます。詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「認証によるユーザー・アイデンティティの証明」を参照してください。
設定したページ階層を反映して、「ホーム」ページに「Departments」ページへのリンクが表示されます。
また、ページの下部には「開発者」ツールバーが表示されます。これらのリンクは、開発環境内でアプリケーションを実行すると表示されます。「開発者」ツールバーを使用すると、カレント・ページの編集、ページ、リージョンまたはページ・コントロールの作成、セッション・ステートの表示、デバッグ・モードの有効/無効の切替えを簡単に実行できます。
「Departments」リンクをクリックします。
「Departments」レポートが表示されます。
「アプリケーションの作成」ウィザードを実行すると、選択した内容に従ってフォームおよびレポートが作成されます。バックグラウンドでは、Application Expressがユーザーにかわって、データベースから適切なデータを抽出する問合せを作成しています。
この演習では、「Departments」レポートの問合せを変更して、OEHR_EMPLOYEES
表の情報を含めます。「Departments」レポートにはOEHR_EMPLOYEES
表からの3つの列(Number of Employees、Manager NameおよびLocation)が追加されます。Manager Name列はManager Id列を置き換え、Location列はLocation Id列を置き換えます。
「Departments」レポートを変更するには、次のステップを実行します。
「開発者」ツールバー(ページ下部)の「ページ2の編集」リンクをクリックします。
ページ2のページ定義が表示されます。
ページは、アプリケーションの基本的なビルディング・ブロックです。ページには、タブ、リスト、ボタン、アイテム、リージョンなどのユーザー・インタフェース要素が含まれます。アプリケーションに属する各ページの定義を確認するには、「ページ定義」ページを使用します。詳細は、「アプリケーション・ビルダーの概要」を参照してください。
「ページ・レンダリング」で、「リージョン」に移動します。
「リージョン」を展開し、「Departments」に移動します。
「Departments」を右クリックして、「編集」を選択します。
ヒント: 「Departments」をダブルクリックすることもできます。 |
リージョン定義が表示されます。
「ソース」までスクロールして、デフォルトの「リージョン・ソース」のスクリプトを次の内容に置き換えます。
SELECT d.DEPARTMENT_ID, d.DEPARTMENT_NAME, (select count(*)from oehr_employees where department_id = d.department_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 WHERE d.LOCATION_ID=l.LOCATION_ID AND l.COUNTRY_ID=c.COUNTRY_ID AND d.DEPARTMENT_ID=e.department_id AND d.manager_id=e.employee_id AND instr(upper(d.department_name),upper(nvl(:P2_REPORT_SEARCH,d.department_name)))>0
「変更の適用」をクリックします。
「変更の適用」をクリックして、確定します。
「Departments」を右クリックして、「レポート属性の編集」を選択します。
「従業員数」の横にある「編集」アイコンをクリックします。
「列の定義」で、「列の位置合せ」の「中央」を選択します。
「変更の適用」をクリックします。
ページを実行して、エンド・ユーザーにページがどのように表示されるのかを確認します。ページを実行すると、Application Expressエンジンによってページの動的なレンダリングおよび処理が行われ、表示可能なHTMLを確認できます。
ページを実行するには、次のステップを実行します。
更新された「Departments」レポートが表示されます。
Manager Id列およびLocation Id列は使用できません。また、更新されたレポートには、3つの新しい列(Number of Employees、Manager NameおよびLocation)が表示されていないことにも注意してください。次のステップでは、これらの列を表示に追加して、再順序付けを行う必要があります。
新しい列を追加するには、「アクション」メニューをクリックします。
「アクション」オプションのリストが表示されます。
「アクション」メニューから、「列の選択」を選択します。
新しいSQL問合せによって追加された列は「表示しない」ボックスにあります。
「すべて移動」アイコンをクリックして、これらの列を「レポートに表示」ボックスに追加します。「すべて移動」アイコンは、次のように表示されています。
bldap_moveall.gifの説明
列が次の順番になっているかどうかを確認します。そうなっていない場合は、「レポートに表示」の右側にある上下矢印をクリックして、順番を変更します。
Department ID
Department Name
Number of Employees
Manager Name
Location
「適用」をクリックします。
「Departments」ページが表示され、新しい列が含まれます。
この演習では、対話モード・レポートの実行時に使用可能な、一般的に使用されるレポート・オプションについて説明します。これらのオプションを使用すると、特定のタスクを簡単に実行できます。
トピック:
すでに「アクション」メニューから「列の選択」オプションを使用して、レポート表示に列を追加しました。このセクションでは、アプリケーションを実行し、様々な検索、ソート、ハイライトおよびリセット機能を使用して、「Departments」対話モード・レポートを操作します。
このチュートリアルでは、対話モード・レポートで使用可能な機能のうち、主なものについてのみ説明しています。詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の対話モード・レポートのカスタマイズについての説明を参照してください。
開発者とエンド・ユーザーの両方が対話モード・レポートを保存できます。ただし、最初に表示されているレポート(「プライマリ・デフォルト」レポート)を保存できるのは開発者のみです。
4つのタイプの対話モード・レポートを保存できます。
プライマリ・デフォルト(開発者のみ)。「プライマリ・デフォルト」は、最初に表示されるレポートです。「プライマリ・デフォルト」レポートの名前を変更したり削除することはできません。
代替レポート(開発者のみ)。開発者は、複数のレポート・レイアウトを作成できます。代替レポートの保存、名前変更、削除ができるのは開発者のみです。
パブリック・レポート(エンド・ユーザー)。作成者であるエンド・ユーザーによって保存、名前変更、削除できます。他のユーザーは、別のレポートとしてレイアウトを表示および保存できます。
プライベート・レポート(エンド・ユーザー)。レポートの作成者であるエンド・ユーザーのみが、レポートを保存、名前変更、削除できます。
現在のレポート設定をデフォルトで保存するには、次のステップを実行します。
「アクション」メニューをクリックします。
「レポートの保存」を選択します。
「レポートの保存」設定が表示されます。
「保存」から「デフォルトのレポート設定として保存」を選択します。
デフォルトのレポート・タイプ設定が表示されます。
「主」を選択し、「適用」をクリックします。
ユーザーが「アクション」メニューから「リセット」オプションを選択したとき、または対話モード・レポートのリセット・コマンド(RIR
)でページがリセットされると、レポートにはすべての列が表示されます。
参照: レポートを名前付きレポートとして保存する方法については、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の対話モード・レポートのカスタマイズについての説明を参照してください。 |
この演習では、「Departments」レポートへのフィルタの追加方法について説明します。この例では、IDが60
の部門を除く、すべての部門を表示するフィルタを作成します。
フィルタを作成には複数の方法があります。次の場所からフィルタを追加できます。
検索バー
「アクション」メニュー
列ヘッダー
「アクション」メニューには、他のメニューより多くのオプションがあります。等価演算子を使用する簡単なフィルタの場合は、検索バーまたは列ヘッダーが一番簡単な方法です。その他のフィルタの場合は、「アクション」メニューから「フィルタ」オプションを使用します。
60
以外のすべての部門のフィルタを作成するには、次のステップを実行します。
「アクション」メニューをクリックします。
「フィルタ」を選択します。
フィルタ設定が表示されます。「列ヘッダー」リンクをクリックすることでも、その列のフィルタを作成できることに注意してください。ただし、「列ヘッダー」メニューからのフィルタの作成で使用できるのは、等価演算子のみです。
「演算子」から、非等価演算子(!=
)を選択します。
「式」から60を選択します。
「適用」をクリックします。
Department_Id!=60フィルタが適用された「Departments」レポートが表示されます。Department IDが60のIT部門を除くすべての部門がレポートに含められます。
レポートの上部にフィルタが表示されています。このフィルタは、編集、無効化または削除できます。編集するには、フィルタ名をクリックします。無効化するには、チェック・ボックスのチェックを外します。削除するには、「フィルタ」アイコンにXがかかったように見える「削除」アイコンをクリックします。
Department Id!=60
フィルタの隣にあるチェック・ボックスのチェックを外して、無効化します。
レポートに、すべてのDepartment Idのデータが表示されます。
この演習では、各列のデータを並び替える方法を学習します。
ソート順序を変更するには、次のステップを実行します。
「アクション」メニューをクリックします。
「書式」を選択してから「ソート」を選択します。
ソート設定が表示されます。このオプションは、列ヘッダーをクリックすることでも各列で使用可能です。複数の列のソート順序を変更する場合は、「アクション」メニューを使用する方が簡単です。
最初の列エントリの「Department Name」を選択します。
「適用」をクリックします。
レポートに、Department Name列がアルファベット順(昇順)で表示されます。
「Department Name」の隣の上矢印のアイコンは、列が昇順でソートされていることを示します。この矢印をクリックすることで、列の再ソートが可能です。
レポートの書式を変更する別の方法として、コントロール・ブレークを作成する方法があります。コントロール・ブレークを使用すると、データをわかりやすいグループで表現することができます。
コントロール・ブレークを追加するには、次のステップを実行します。
「Location」列ヘッダーをクリックします。
列ヘッダー・メニューが表示されます。
次のように「コントロール・ブレーク」アイコンをクリックします。
「アクション」、「書式」メニューからでも、同様のオプションが使用可能です。
レポートは再フォーマットされ、同じLocationを共有する各グループの行の後にブレークが表示されます。
検索バーの下に、「位置」
コントロール・ブレーク・レポート設定が表示されます。
単一行アイコンを選択して行の詳細を表示することもできます。
単一行ビューを表示するには、次のステップを実行します。
最初の行の「単一行ビュー」アイコンを見つけます。
最初の行の「単一行ビュー」アイコンを選択します。
最初の行の詳細ページが表示されます。
レポート設定を、保存済のデフォルト設定に戻すことができます。対話モード・レポートがリセットされた場合、デフォルト設定がレポートに適用されます。対話モード・レポートは、次の状況下で、ユーザーおよび開発者がリセットできます。
「アクション」メニューから「リセット」オプションが使用可能な場合、ユーザーは対話モード・レポートをリセットできます。このオプションは、開発者が有効化または無効化します。詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の対話モード・レポートのカスタマイズについての説明を参照してください。
開発者は、対話モード・レポートが他のページから呼び出された場合にリセットされるように指定できます。対話モード・レポートのリセット・コマンドRIR
は、この目的に使用されます。詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の開発者による対話モード・レポートのカスタマイズについての説明を参照してください。
デフォルト設定に戻すには、次のステップを実行します。
「レポート・ビュー」ボタンをクリックします。
「アクション」メニューをクリックし、「リセット」を選択します。
デフォルト設定をリストアするように求められたら、「適用」をクリックします。
レポートは、前のセクションで保存したデフォルトのレポート設定に戻ります。
この演習では、従業員情報を表示するレポートと、従業員情報の作成、更新および削除を行うフォームを追加します。
従業員のレポートおよびフォームを追加するには、次のステップを実行します。
「開発者」ツールバー(ページ下部)の「アプリケーションID」リンクをクリックします。
「アプリケーション」ホームページが表示されます。
「ページの作成」をクリックします。
「ページ」で、次のステップを実行します。
「フォーム」を選択して「次へ」をクリックします。
「レポート付きの表のフォーム」を選択します。
このオプションを使用すると、単一の表またはビューに基づいて、2つのページ(レポートとフォーム)が作成されます。
「次へ」をクリックします。
「ページ」で、次のステップを実行します。
「表/ビューの所有者」で、デフォルトを受け入れます。これにより、スキーマの所有者が指定されます。
「表/ビューの名前」で、OEHR_EMPLOYEESを選択します。
「次へ」をクリックします。
「レポート・ページの定義」で、次の変更を行います。
「レポート・ページの定義」で、デフォルトの「タブを使用しない」を受け入れて「次へ」をクリックします。
「レポート・ページの定義」で、次のステップを実行します。
[CTRL]キーを押しながら、次の列のみを選択します。
EMPLOYEE_ID
FIRST_NAME
LAST_NAME
HIRE_DATE
SALARY
COMMISSION_PCT
「次へ」をクリックします。
選択した列は、ページが実行されたときに、「レポート」ページに表示されます。
「レポート・ページの定義」で、デフォルト値を受け入れて「次へ」をクリックします。
デフォルトの「リンクの編集」イメージは、小さい紙と鉛筆に似ています。
次に、フォームのページとリージョンの情報を定義します。
「フォーム・ページの定義」で、次の項目を編集します。
ページ名: Create/Edit Employee
と入力します。
リージョン・タイトル: Create/Edit Employee
と入力します。
エントリ名: Create/Edit Employee
と入力します。
「次へ」をクリックします。
「主キーのタイプ」で、デフォルト値を受け入れ、「次へ」をクリックします。
「主キー列のソースの定義」で、デフォルトの「既存のトリガー」を受け入れて「次へ」をクリックします。
OEHR_EMPLOYEES
表には、すでに主キーを移入するトリガーが含まれています。
「列を選択」で、すべての列を選択して「次へ」をクリックします。
これらの列は、ページが実行されたときに、「Create/Edit Employee」フォームに表示されます。
「プロセス・オプションを指定」で、デフォルトを受け入れて「次へ」をクリックします。
これらを選択することで、従業員レコードの追加、更新および作成を行うことができます。
「確認」で、情報を確認して「終了」をクリックします。
作成した2つのページのプレビューを行うには、カレント・ページを実行します。「Employees」レポートからフォームのプレビューを行うことができます。
ページのプレビューを行うには、次のステップを実行します。
「ページの実行」アイコンをクリックします。
「Employees」レポートが表示されます。
「Employees」レポートについては、次のことに注意してください。
「検索バー」と「アクション」メニューが上部に表示されます。詳細は、「対話モード・レポートの使用」を参照してください。
列ヘッダーは、様々なソート、フィルタおよび再フォーマット操作を簡単に実行できるリンクです。詳細は、「対話モード・レポートの使用」を参照してください。
選択した「編集」アイコンが各行に表示されます。「編集」アイコンをクリックすると、従業員レコードを編集できます。レポートを含む表に基づいてフォームを作成したため、ウィザードによって自動的にレポートがフォームにリンクされます。「初期アプリケーションの作成」セクションでの説明のとおり、レポートを作成するだけの場合、ウィザードによって自動的にレポートが単一行ビューにリンクされます。
「作成」ボタンが右上に表示されます。「作成」ボタンをクリックすると、基礎となる表に従業員を追加できます。
「Employees」レポートには、指定した6つの列が含まれています。列を選択して変更を適用すると、Oracle Application Expressによりバックグラウンドで適切なSQLコードが作成され、この結果が生成されます。
データが別の順序で表示されている場合もあります。その場合、この違いは無視してステップを続行します。
また、作成したフォームを確認するには、「Employee」行の「編集」アイコンをクリックします。
「Create/Edit Employee」フォームが表示されます。
「Create/Edit Employee」フォームについては、次のことに注意してください。
フォームに「取消」、「削除」および「変更の適用」の各ボタンが含まれている。
「Hire Date」フィールドにカレンダが表示されている。これは、基礎となる列のデータ型がDATE
であるためです。
赤い必須ラベルが付いているフィールドは必須で、空のままにしたりnullにすることはできません。
この演習では、「Employees」レポートに従業員の給料を表示するRemunerationというタイトルの新しい列を作成します。
トピック:
最初に、従業員の給与を計算するファンクションを作成します。
ファンクションを作成するには、次のステップを実行します。
「開発者」ツールバーの「ホーム」リンクをクリックします。
「SQLワークショップ」をクリックして、「SQLコマンド」をクリックします。
「SQLコマンド」をクリックすると、データベースに対してPL/SQLを実行できるウィンドウが開きます。
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;
このSQLをコピー・アンド・ペーストするときは、最初の文のCREATE OR REPLACE FUNCTIONの前に空白行がないことに注意してください。
「実行」をクリックします。
「結果」セクションに次のメッセージが表示されます。
Function created.
次に、従業員の給与計算の結果を表示する列を追加します。
列を追加するには、次のステップを実行します。
ページ3のページ定義にナビゲートします。
「アプリケーション・ビルダー」タブをクリックします。
AnyCo Corpアプリケーションを選択します。
「3 - Employees」をクリックします。
ページ3のページ定義が表示されます。
「リージョン」で、「Employees」を検索します。
「Employees」を右クリックして、「編集」を選択します。
「ソース」までスクロールし、既存のコードを次の内容に置き換えます。
SELECT "EMPLOYEE_ID", "FIRST_NAME", "LAST_NAME", "HIRE_DATE", "SALARY", "COMMISSION_PCT", calc_remuneration(salary, commission_pct) REMUNERATION FROM "#OWNER#"."OEHR_EMPLOYEES"
「変更の適用」をクリックします。
「変更の適用」をクリックして、確定します。
ページのプレビューを行うには、ページの右上にある「ページの実行」アイコンをクリックします。Remuneration列は表示されません。「列の選択」アクションを使用して、列を追加する必要があります。
Remuneration列を表示するには、次のステップを実行します。
「アクション」メニューをクリックします。
「列の選択」アクションを選択します。
「Remuneration」列を「表示しない」ボックスから「レポートに表示」ボックスに移動します。
「適用」をクリックします。
「Employees」レポートが表示され、Remuneration列が含まれます。
次に、数値を含む列の書式を変更します。
列書式を変更するには、次のステップを実行します。
「開発者」ツールバー(ページ下部)の「ページ3の編集」をクリックします。
ページ定義が表示されます。
「リージョン」で、「Employees」を右クリックして「レポート属性の編集」を選択します。
「レポート属性」ページが表示されます。
「列属性」セクションに移動します。
次に、「Salary and Remuneration」列の数値の書式を変更します。
Salaryの書式を編集するには、次のステップを実行します。
「SALARY
」の隣の「編集」アイコンをクリックします。
「数値/日付書式」で、リストから「$5,234.10」を選択します。
フィールドに適切な書式マスクが表示されます。
「変更の適用」をクリックします。
REMUNERATION
に対して、前述のステップを繰り返します。
ページのプレビューを行うには、右上にある「ページ3の実行」アイコンをクリックします。
Salary列およびRemuneration列の数値は、ドル記号、カンマ、小数点が付いて表示されています。
この演習では、「ホーム」ページに、「Employees」レポートへナビゲートするリンクを追加します。このリンクは、「ホーム」ページの左側の「ナビゲーション」リージョンに表示されます。
「ホーム」ページに「Employees」レポートへのリンクを追加するには、次のステップを実行します。
「ホーム」ページ(ページ1)のページ定義にナビゲートします。
「開発者」ツールバー(ページ下部)の「アプリケーションID」リンクをクリックします。
「アプリケーション」ホームページで、「1 - ホーム」をクリックします。
「リージョン」で、「Navigation」を右クリックして「リストの編集」を選択します。
「リスト別のエントリ」ページで、「リスト・エントリの作成 >」ボタンをクリックします。
リストの作成/編集ページで、次の項目を編集します。
順序: 20
に変更します。
リスト・エントリ・ラベル: Employees
と入力します。
ページ: 3
を選択します。
「作成」をクリックします。
ページを実行します。
「ホーム」ページに「Employees」へのリンクが追加されました。
「従業員」をクリックしてリンクをテストします。
「Employees」レポートが表示されます。
この演習では、「Employees」レポートと「Departments」レポートをリンクさせます。このセクションを完了すると、「Employees」レポートには、各従業員が所属する部門を表示するDepartments列が表示されます。
このタスクを実行するには、ユーザーが部門を選択できるように、「Employees」ページに列を作成します。その後、「Employees」レポートを実行し、レポートにDepartments列を追加します。レポート設定はデフォルトで保存されます。
トピック:
部門で「Employees」レポートをフィルタするには、Department列をレポートに追加します。
列を追加するには、次のステップを実行します。
「開発者」ツールバーの「ページ3の編集」をクリックします。
「リージョン」で、「Employees」を右クリックして「編集」を選択します。
リージョン定義が表示されます。
「ソース」までスクロールします。
リージョン・ソースを次のSQLで置き換えます。
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, e.LAST_NAME, e.HIRE_DATE, e.SALARY, e.COMMISSION_PCT, calc_remuneration(salary, commission_pct) REMUNERATION, e.DEPARTMENT_ID, d.DEPARTMENT_NAME FROM OEHR_EMPLOYEES e, OEHR_DEPARTMENTS d WHERE e.DEPARTMENT_ID=d.DEPARTMENT_ID
「変更の適用」をクリックします。
「変更の適用」をクリックして、確定します。
次のセクションでは、レポート表示に列を追加する方法、およびその列を使用して従業員レポートをフィルタする方法を説明します。
このレポートを最初に実行するときは、「列の選択」アクションを使用して、Department Name列を表示に追加します。この列がレポートで表示された後、このレポートをデフォルトにして、部門でフィルタします。
レポートにDepartment Name列を追加するには、次のステップを実行します。
「ページ3の実行」アイコンをクリックします。
「アクション」メニューをクリックし、「列の選択」を選択します。
「Department Name」列を「表示しない」ボックスから「レポートに表示」ボックスの最後のエントリに移動します。
「適用」をクリックします。
「Employees」レポートが表示され、Department Name列が含まれます。
次に、これらのレポート設定をデフォルトにします。
このセクションでは、現在のレポート設定を「プライマリ・デフォルト」レポートとして保存する方法を説明します。レポート設定とは、選択列、フィルタ、ソート、ページ当たりの行数、コントロール・ブレークのソート、ハイライトなどの書式設定、フラッシュバックを含む、「アクション」メニューから設定されるすべての設定です。
開発者とエンド・ユーザーの両方が対話モード・レポートを保存できます。ただし、最初に表示されているレポート(「プライマリ・デフォルト」レポート)を保存できるのは開発者のみです。
デフォルト設定を保存した後は、これらの列がこのレポートでのデフォルトの表示になります。
現在のレポート設定をデフォルトで保存するには、次のステップを実行します。
「Employees」レポート・ページを実行します。
現在のレポートのデフォルトでは、レポートが表示されたときにDepartment Name列は含まれません。
「アクション」メニューをクリックします。
「レポートの保存」を選択します。
「保存」で、リストから「デフォルトのレポート設定として保存」を選択します。
デフォルトのレポート・タイプ設定である「主」を受け入れ、「適用」をクリックします。
注意: このページでリセットが実行された場合、これらのデフォルトのレポート設定が使用されます。Department Name列はデフォルトで表示されます。 |
この演習では、Number of Employees列へのリンクを、ユーザーを「Employees」レポートにナビゲートする「Departments」レポートに追加します。また、選択した部門にフォーカスを設定します。列リンクには、「対話モード・レポートのクリア」コマンドのCIR
が含まれます。これは、フィルタ、コントロール・ブレーク、ハイライト、集計、計算済列、チャート設定およびフラッシュバック設定の「Employees」レポートが表示されたときにクリアするためのコマンドです。
トピック:
この変更を行うには、「Departments」レポートのレポート属性を編集して、リンクへのNumber of Employees列の値を変更します。
列値をリンクに変更するには、次のステップを実行します。
「開発者」ツールバーの「アプリケーションID」リンクをクリックします。
「2 - Departments」をクリックします。
「リージョン」で、「Departments」を右クリックして「レポート属性の編集」を選択します。
「レポート属性」ページが表示されます。
「列属性」セクションに移動します。
「列属性」セクションで、「Number of Employees」の横の「編集」アイコンをクリックします。
「列リンク」セクションまでスクロールします。
「列リンク」で、次の変更を行います。
「ページ」で、3
と入力します。
「ページ区切りのリセット」チェック・ボックスを選択します。
キャッシュのクリア: 次のように入力します。
3,CIR
3
は3ページのキャッシュをクリアすることを、文字列CIR
は「Employees」対話モード・レポートが表示されたときに、フィルタ、コントロール・ブレーク、ハイライト、集計、計算済列、チャート設定またはフラッシュバック設定のレポートをクリアすることを意味します。
注意: レポートをクリアするのではなく、対話モード・レポートをデフォルトのレポート設定にリセットする場合は、CIR をRIR に置き換えてください。最後に保存したデフォルトのレポート設定が対話モード・レポートに適用されます。 |
「アイテム1」の「名前」: IR_DEPARTMENT_ID
と入力します。
アイテムの名前にIR_という接頭辞を付けることで、URLアイテムはページのアイテムではなく対話モード・レポート列に関連付けられます。
「アイテム1」の「値」: 「#DEPARTMENT_ ID#」を選択します。
「列リンク」セクションでは、選択したオプションがすべて表示されます。
要約すると、これらのオプションによって、エンド・ユーザーがリンクをクリックした場合に次の動作が行われます。
エンド・ユーザーが「Employees」レポートのページ3にナビゲートされます。
「Employees」レポートで、選択した部門がフォーカスされます。
「Employees」レポートがクリアされます。これは、すべてのフィルタ、コントロール・ブレーク、ハイライト、集計、計算済列、チャート設定またはフラッシュバック設定が削除されることを意味します。
ユーザーが別の部門を選択すると、従業員レコードの最初のセットに戻ります。
「変更の適用」をクリックします。
「列属性」セクションは、「Number of Employees」行の「リンク」列にチェックマークが付いて、変更されたことを示しています。
ここで、レポートを実行し、「Departments」レポートからNumber of Employees列のリンクをテストします。「Employees」レポートは、選択した部門に所属するすべての従業員を表示します。
「ページ2の実行」アイコンをクリックします。
「Departments」レポートが表示されます。これで、エンド・ユーザーが「Number of Employees」列のデータをドリルダウンできるようになりました。
「Number of Employees」列で、Executive行の3
をクリックします。
Executive部門に所属するすべての従業員が「Employees」レポートに表示されます。
このレポートは「Departments」レポートからこのレポートに渡された90
というExecutive部門のDepartment Idの値でフィルタされているため、Department Idフィルタが表示されます。次の例で示すように、「対話モード・レポートのクリア」コマンドがブラウザのURLの最後に含まれていることに注意してください。
f?p=9257:3:3672543193352902::NO:RP,3,CIR:IR_DEPARTMENT_ID:90
この演習では、CIRコマンドを使用して、「Employees」レポートを表示する前にハイライトをクリアする方法を説明します。これを表示するには、「First Name」にNeenaを含むすべての行をハイライトした後、「Departments」レポートの「Number of Employees」行から「Employees」レポートを表示します。
「Employees」レポートの行をハイライトするには、次のステップを実行します。
「アクション」メニューをクリックし、「書式」、「ハイライト」を選択します。
「ハイライト」オプションが表示されます。
「ハイライト」オプションで、次の変更を行います。
「名前」に、Neena
と入力します。
「バックグラウンド・カラー」で、「イエロー」を選択します。
テキスト・カラー: 「[レッド]」を選択します。
「列」で、「名」を選択します。
「演算子」で、「=」を選択します。
「式」で、「Neena」を選択します。
「適用」をクリックします。
Neenaの行がハイライトされて「Employees」レポートが表示されます。
次に、レポートをリセットします。
「Home」ブレッドクラムをクリックします。
「Departments」リンクをクリックします。
「Executive」行の「Number of Employees」をクリックします。
列のリンクで指定されたCIR
コマンドによって、ハイライトがクリアされた「Employees」レポートが表示されます。
「DepartmentID = 90」の右にある「フィルタの削除」アイコンをクリックします。
「開発者」ツールバーの「アプリケーションID」をクリックします。
この演習では、「Employees」ページにLOVを追加して、従業員を部門別に表示します。また、「Employees」レポート問合せを変更し、「Department」レポートの列リンクを編集した後、ページ区切りをオフにします。
トピック:
このセクションでは、どの部門の詳細を表示するか選択するために使用するLOVを作成します。これは、OEHR_DEPARTMENTS
表にすべての部門名のリストを問い合せる動的リストです。
LOVを作成するには、次のステップを実行します。
「共有コンポーネント」アイコンをクリックします。
「ユーザー・インタフェース」で、「LOV」を選択します。
「作成」ボタンをクリックします。
デフォルトの「最初から」を受け入れて、「次へ」をクリックします。
「名前およびタイプ」で、次のステップを実行します。
「名前」に、DEPARTMENT
と入力します。
「タイプ」で、「動的」を選択します。
「次へ」をクリックします。
「問合せ」で、次のSQLを入力します。
SELECT department_name d, department_id v FROM oehr_departments ORDER BY d
「LOVの作成」をクリックします。
「Department Details」リージョンにアイテムを作成して、部門のリストを表示します。
アイテムを追加するには、次のステップを実行します。
ページ3の「Employees」のページ定義にナビゲートします。
「リージョン」で、「Employees」を右クリックして「ページ・アイテムの作成」を選択します。
「選択リスト」を選択して「次へ」をクリックします。
「アイテムの作成」で、次のステップを実行します。
「アイテム名」で、P3_DEPARTMENT_ID
と入力します。
「順序」で、10
と入力します。
リージョン: 「Employee (1) 10」を選択します。
「次へ」をクリックします。
「アイテム属性」で、次のステップを実行します。
ラベル: 「Department」
と入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「設定」で、次のステップを実行します。
必須の値: 「いいえ」を選択します。
値の変更時のページ・アクション: 「値のリダイレクトと設定」を選択します。
「次へ」をクリックします。
「LOVの指定」で、次の変更を行います。
「名前付きLOV」で、「DEPARTMENTS」を選択します。
「NULLオプションの表示」で、「はい」を選択します。
NULL表示値: 次のように入力します。
- No Department Assigned -
NULL戻り値: 次のように入力します。
-1
「次へ」をクリックします。
「アイテムの作成」をクリックします。
選択した部門に属する従業員を表示するように「Employees」レポートの問合せを変更します。
問合せを変更するには、次のステップを実行します。
「リージョン」で、「Employees」を右クリックして「編集」をクリックします。
「リージョン・ソース」に次のSQLを入力します。
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, e.LAST_NAME, e.HIRE_DATE, e.SALARY, e.COMMISSION_PCT, calc_remuneration(salary, commission_pct) REMUNERATION, e.DEPARTMENT_ID, d.DEPARTMENT_NAME FROM OEHR_EMPLOYEES e, OEHR_DEPARTMENTS d WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID(+) AND (e.DEPARTMENT_ID = :P3_DEPARTMENT_ID or (e.DEPARTMENT_ID is null and nvl(:P3_DEPARTMENT_ID,'-1') = '-1'))
「変更の適用」をクリックします。
「Employees」の問合せが変更されたため、「Number of Employees」列リンクはP3_DEPARTMENT_IDアイテムをDEPARTMENT_IDの値に初期化する必要があります。
「Number of Employees」の列リンクを変更するには、次のステップを実行します。
「Application ID」ブレッドクラムをクリックします。
「2 - Departments」をクリックします。
「リージョン」で、「Departments」を右クリックして「レポート属性の編集」を選択します。
「Number of Employees」の「編集」アイコンをクリックします。
「列リンク」までスクロールします。
「アイテム1」で、「P3_DEPARTMENT_ID」を選択します。
「変更の適用」をクリックします。
次に、一度に表示されるのが1つのレコード(部門の詳細レポート)のみであるため、部門の詳細レポートのページ区切りの無効化を行います。ページ区切りが有効である場合、部門の詳細が表示されるリージョンにはrow 1 - 1の情報が含まれます。
ページ区切りをオフにするには、次のステップを実行します。
「Application ID」ブレッドクラムをクリックします。
「3 - Employees」をクリックします。
「リージョン」で、「Employees」を右クリックして「レポート属性の編集」を選択します。
「ページ区切り」までスクロールします。
「ページ区切りタイプ」で、「- ページ区切りが選択されていない -」を選択します。
「変更の適用」をクリックします。
ページを実行します。
「Department」リストから、「No Department Assigned」を選択します。
従業員のKimberely Grantが表示されます。この従業員は、現在部門に割り当てられていません。
ヒント: 最初にレコードが表示されない場合は、ページをリロードし、再試行してください。 |
グラフィカルなロゴやテキストは、各ぺージに表示されるようにアプリケーションへ追加できます。表示位置はページ・テンプレートにより決まります。
この演習では、アプリケーションに会社名を追加します。
アプリケーションに会社名を追加するには、次のステップを実行します。
「アプリケーション」ホームページにナビゲートします。「開発者」ツールバー(ページ下部)の「アプリケーションID」をクリックします。
「アプリケーション・プロパティの編集」ボタンをクリックします。
「アプリケーション定義の編集」ページが表示されます。
「ロゴ」で、次のステップを実行します。
「ロゴ・タイプ」で、「テキスト」を選択します。
「ロゴ」で、AnyCo Corp
と入力します。
「ロゴ属性」で、ポップ・アップ・リストから「黒色のテキスト」を選択します。
「変更の適用」をクリックします。
「1 - ホーム」をクリックします。
右上にある「ページの実行」アイコンをクリックします。
会社名がアプリケーション内の各ページに表示されます。
この演習では、アプリケーションの現行のテーマを別のテーマに切り替えます。テーマとは、アプリケーションのユーザー・インタフェースを定義するテンプレートのコレクションです。各テーマには、すべてのタイプのアプリケーション・コンポーネントおよびページ・コントロール(個々のページ、リージョン、レポート、リスト、ラベル、メニュー、ボタン、およびLOV)のテンプレートが含まれています。
Oracle Application Expressでは、アプリケーション・ロジックから表示機能(またはユーザー・インタフェースのテーマ)が切り離されています。1つのテーマでのアプリケーションの設計、指定した別のテーマへの変更、独自のカスタム・テーマの作成および使用が可能です。HTMLレンダリングからアプリケーション・ロジック(問合せ、処理、ブランチなど)を切り離すことによって、アプリケーションを書き直さなくても最新の設計およびその他の高度な技術を使用できます。テーマは、多数のテンプレートを集め、アプリケーションに必要となる可能性のあるすべてのユーザー・インタフェース・パターンを収録します。
テーマを切り替えるには、次のステップを実行します。
「開発者」ツールバー(ページ下部)の「アプリケーション」リンクをクリックします。
「アプリケーション」ホームページで、「共有コンポーネント」をクリックします。
「ユーザー・インタフェース」で、「テーマ」をクリックします。
「テーマ」ページで、「作成」をクリックします。
「テーマの作成」ウィザードが表示されます。
「方法」で、デフォルトの「リポジトリから」を受け入れて「次へ」をクリックします。
「テーマの指定」で、「テーマ22」を選択して「次へ」をクリックします。
「確認」で、「作成」をクリックします。
「テーマの切替え」をクリックします。
「テーマの指定」で、デフォルトの「ブルージェイ」を選択して「次へ」をクリックします。
「互換性の確認」で、情報を確認し、デフォルトを受け入れて「次へ」をクリックします。
ウィザードでは、選択済のテーマに、現行のアプリケーションで使用されている全テンプレートに対応するテンプレートが存在していることが確認されます。テンプレートが欠落している場合は、「ステータス」列に警告メッセージが表示されます。このチュートリアルでは、Oracle Application Expressによって欠落しているリージョン・テンプレートが既存のテンプレートにマップされるため、このメッセージを無視することができます。
「切替えの確認」で、「テーマの切替え」をクリックします。
ページを実行します。
カラー・スキームと表示レイアウトがすべてのページで変更されます。