このチュートリアルでは、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から開始することがわかります。
「アプリケーションの作成」ウィザードで、「データベース」を選択し、「次へ」をクリックします。
「作成ウィザード」に、ユーザーが「名前」ステップを実行中であることが示されています。
「名前」で、次のステップを実行します。
アプリケーション: デフォルトIDを受け入れます。このワークスペースで作成する各アプリケーションに対しシステムから一意のIDが提供されます。
名前: AnyCo Corp
「スキーマ」で、このチュートリアルのオブジェクトを含むスキーマを選択します(「TWODAYPLUS」など)。
「作成」オプションで、「ホームページを含める」を選択します。
ユーザー・インタフェースでデフォルトの「デスクトップ」を受け入れます。
ヒント: ヘルプを参照できるアイテムにカーソルを移動すると、マウスが疑問符の形に変わります。そのアイテムをクリックすると、「ヘルプ」が別ウィンドウで表示されます。 |
「次へ」をクリックします。
「作成ウィザード」に、ユーザーが「ページ」ステップを実行中であることが示されています。
「ホーム」ページが一番上の領域にリスト表示されます。「ページの追加」領域が表示されて初期アプリケーションへのページの追加を続行できます。
次に、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」を選択します。
「次へ」をクリックします。
「作成ウィザード」に、ユーザーが「ユーザー・インタフェースのテーマ」のステップを実行中であることが示されています。
「表示」で、「すべてのテーマ」を選択します。
「テーマを選択」で「Blue Builder (Theme 2)」を選択し、「次へ」をクリックします。
「作成ウィザード」に、ユーザーが「確認」ステップを実行中であることが示されています。
情報を確認して、「アプリケーションの作成」をクリックします。
「アプリケーションは正常に作成されました。」というメッセージが表示されます。
ページの下部のレポートに、作成した2つのページ(「ホーム」ページおよび「部門」ページ)と、Oracle Application Expressにより自動的にアプリケーションに追加された「ログイン」ページが表示されます。
注意: アイコン・ビューでページを表示するには、「アイコンの表示」アイコンをクリックします。ビュー設定はセッション間で保持されます。これらのステップではデフォルトの設定を使用しているため、続行する前に「レポート」ビューに戻します。 |
これで、Oracle Application Expressを使用した最初のアプリケーションが作成されました。次に、エンド・ユーザーへの見え方を確認するために、アプリケーションのプレビューを行います。
アプリケーションを実行してプレビューを行います。アプリケーションを実行すると、エンド・ユーザーが確認できる状態と同じレンダリングされたバージョンのアプリケーションが表示されます。
ページを作成する場合は、ページを個別に実行するか、またはアプリケーション全体を実行することで、作成したページを表示できます。ページまたはアプリケーションは実行時に、Application Expressエンジンによって、データベースに格納されたデータに応じて表示可能なHTMLに動的にレンダリングされます。
アプリケーションは次の方法で実行できます。
アプリケーションを実行するには、「アプリケーションの実行」アイコンをクリックします。
特定のページを実行するには、「ページの実行」アイコンをクリックします。
アプリケーションのプレビューを行うには、次のステップを実行します。
「アプリケーション」ホームページで、「アプリケーションの実行」をクリックします。
アプリケーションを初めて実行するときは、ユーザー名とパスワードの入力が求められます。続行するには、ワークスペース・ユーザー名とパスワードを入力して、「ログイン」をクリックします。
アプリケーションの作成時にApplication Express認証を選択しているため、Application Expressのログイン資格証明を使用してアプリケーションを実行できます。詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』の「認証によるユーザー・アイデンティティの証明」を参照してください。
階層を設定したので、「ホーム」ページに「部門」ページへのリンクが表示されます。
開発環境でアプリケーションを実行したため、「ホーム」ページの下部には「開発者」ツールバーがあります。「開発者」ツールバーを使用すると、カレント・ページの編集、ページ、リージョンまたはページ・コントロールの作成、セッション・ステートの表示、デバッグ・モードの有効/無効の切替えを簡単に実行できます。
「部門」リンクをクリックします。
「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問合せによって追加された列は「表示しない」ボックスにあります。
これらの3つの列を「レポートに表示」ボックスに追加するには、「すべて移動」アイコン(2つの右向き矢印のようなアイコン)をクリックします。
bldap_moveall.gifの説明
列が次の順番になっていることを確認します。そうなっていない場合は、「レポートに表示」リストの右側にある上下矢印をクリックして、順番を変更します。
Department Id
Department Name
Number Of Employees
Manager Name
Location
「適用」をクリックします。
「部門」ページが表示され、新しい列が含まれます。
この演習では、対話モード・レポートの実行時に使用可能な、一般的に使用されるレポート・オプションについて説明します。これらのオプションを使用すると、特定のタスクを簡単に実行できます。
トピック:
「アクション」メニューから「列の選択」オプションを使用して、レポート表示に列を追加しました。このセクションでは、アプリケーションを実行し、検索、ソート、ハイライトおよびリセット機能を使用して、「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つのページ(レポートとフォーム)が作成されます。
「次へ」をクリックします。
「レポート・ページ」で、次の変更を行います。
「データ・ソース」ページで、次のステップを実行します。
「表/ビューの所有者」で、デフォルトの「TWODAYPLUS」を受け入れます。
「表/ビューの名前」で、「OEHR_EMPLOYEES (table)」を選択します。
「次へ」をクリックします。
「タブ・ページ」で、デフォルトのタブを使用しない」を受け入れて「次へ」をクリックします。
「レポート列」ページで、次のステップを実行します。
選択した列を調整して次の列が右側のボックスに表示されるようにします。
EMPLOYEE_ID
FIRST_NAME
LAST_NAME
HIRE_DATE
SALARY
COMMISSION_PCT
「次へ」をクリックします。
まだ「レポート列」ステップを実行中です。
リンク・イメージのデフォルト値をそのまま使用し、「次へ」をクリックします。
次に、フォームのページとリージョンの情報を定義します。
「フォーム・ページ」で、次の変更を行います。
ページ名: Create/Edit Employee
と入力します。
リージョン・タイトル: Create/Edit Employee
と入力します。
「次へ」をクリックします。
「主キーのタイプ」で、デフォルトの「データベースで管理(ROWID)」を受け入れ、「次へ」をクリックします。
「列の選択」ですべての列を左のボックスから右のボックスに移動し、「次へ」をクリックします。
これらの列は、ページが実行されたときに、「Create/Edit Employee」フォームに表示されます。
「プロセス・オプションを指定」で、デフォルトを受け入れて「次へ」をクリックします。
これらを選択することで、従業員レコードの追加、更新および作成を行うことができます。
「確認」で、情報を確認して「作成」をクリックします。
「フォームおよびレポートが正常に作成されました。」というメッセージが表示されます。
作成した2つのページのプレビューを行うには、カレント・ページを実行します。「Employees」レポートからフォームのプレビューを行うことができます。
ページのプレビューを行うには、次のステップを実行します。
「ページの実行」をクリックします。
「Employees」レポートが表示されます。
「Employees」レポートについては、次のことに注意してください。
「検索バー」と「アクション」メニューが上部に表示されます。詳細は、「対話モード・レポートの使用」を参照してください。
列ヘッダーは、様々なソート、フィルタおよび再フォーマット操作を簡単に実行できるリンクです。詳細は、「対話モード・レポートの使用」を参照してください。
選択した「編集」アイコンが各行に表示されます。「編集」アイコンをクリックすると、従業員レコードを編集できます。レポートを含む表に基づいてフォームを作成したため、ウィザードによって自動的にレポートがフォームにリンクされます。「初期アプリケーションの作成」セクションでの説明のとおり、レポートだけを作成する場合、ウィザードによって自動的にレポートが単一行ビューにリンクされます。
「作成」ボタンが右上に表示されます。「作成」ボタンをクリックすると、基礎となる表に従業員を追加できます。
「Employees」レポートには、指定した列が含まれています。列を選択して変更を適用すると、Oracle Application Expressによりバックグラウンドで適切なSQLコードが作成され、この結果が生成されます。
データが別の順序で表示されている場合もあります。その場合、この違いは無視してください。
また、作成したフォームを確認するには、「Employee」行の「編集」アイコンをクリックします。
「Create/Edit Employee」フォームが表示されます。たとえば、従業員Steven King
の編集アイコンをクリックすると、次のように表示されます。
「Create/Edit Employee」フォームについては、次のことに注意してください。
「Hire Date」フィールドにカレンダが表示されている。これは、基礎となる列のデータ型がDATE
であるためです。
赤のアスタリスクが付いているフィールドは必須で、空のままにしたりnullにすることはできません。
この演習では、「Employees」レポートに従業員の給料を表示するRemunerationというタイトルの新しい列を作成します。
トピック:
最初に、従業員の給与を計算するファンクションを作成します。
ファンクションを作成するには、次のステップを実行します。
「開発者」ツールバーで「ホーム」をクリックします。
「SQLワークショップ」をクリックして、「SQLコマンド」をクリックします。
「SQLコマンド」を選択すると、SQLコマンド(PL/SQLサブプログラムを作成できる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.
次に、従業員の給与計算の結果を表示する列を追加します。
列を追加するには、次のステップを実行します。
従業員のページ定義ページにナビゲートします。
「アプリケーション・ビルダー」タブをクリックします。
アプリケーション「AnyCo Corp」を選択します。
「従業員」ページをクリックします。
従業員のページ定義ページが表示されます。
「リージョン」で、「Employees」を検索します。
「Employees」を右クリックして、「編集」を選択します。
「ソース」までスクロールし、既存のコードを次の内容に置き換えます。
SELECT "ROWID", "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
に対して、前述のステップを繰り返します。
ページのプレビューを行うには、右上にある「ページの実行」アイコンをクリックします。
Salary列およびRemuneration列の数値は、ドル記号、カンマ、小数点が付いて表示されています。
この演習では、「ホーム」ページに、「Employees」レポートへナビゲートするリンクを追加します。このリンクは、「ホーム」ページの左側の「ナビゲーション」リージョンに表示されます。
「ホーム」ページに「Employees」レポートへのリンクを追加するには、次のステップを実行します。
ホームのページ定義ページにナビゲートします。
「開発者」ツールバー(ページ下部にあります)の「アプリケーション ID」をクリックします。
「アプリケーション」ホームページで、「ホーム」をクリックします。
「リージョン」で、「Navigation」を右クリックして「リストの編集」を選択します。
「リスト詳細」ページで、「リスト・エントリの作成」をクリックします。
作成または変更ページで次の変更を行います。
リスト・エントリ・ラベル: Employees
と入力します。
ページ-コンテキスト・メニューから「従業員」を選択します。
「リスト・エントリの作成」をクリックします。
「アクションが処理されました」というメッセージが表示されます。
ページを実行します。
「ホーム」ページに「Employees」へのリンクが追加されました。
リンクをテストするには、「従業員」をクリックします。
「Employees」レポートが表示されます。
この演習では、「Employees」レポートと「Departments」レポートをリンクさせます。このセクションを完了すると、「Employees」レポートには、各従業員が所属する部門を表示するDepartments列が表示されます。
このタスクを実行するには、ユーザーが部門を選択できるように、「Employees」ページに列を作成します。その後、「Employees」レポートを実行し、レポートにDepartments列を追加します。レポート設定はデフォルトで保存されます。
トピック:
部門で「Employees」レポートをフィルタするには、Department列をレポートに追加します。
列を追加するには、次のステップを実行します。
「開発者」ツールバーの「ページ3の編集」をクリックします。
「リージョン」で、「Employees」を右クリックして「編集」を選択します。
リージョン定義が表示されます。
「ソース」までスクロールします。
リージョン・ソースを次のSQLで置き換えます。
SELECT e.ROWID, 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列を追加するには、次のステップを実行します。
「ページの実行」アイコンをクリックします。
「アクション」メニューをクリックし、「列の選択」を選択します。
「Department Name」 を「表示しない」ボックスから「レポートに表示」ボックスの最後のエントリに移動します。
「適用」をクリックします。
「Employees」レポートが表示され、Department Name列が含まれます。
次に、これらのレポート設定をデフォルトにします。
このセクションでは、現在のレポート設定を「プライマリ・デフォルト」レポートとして保存する方法を説明します。開発者とエンド・ユーザーの両方が対話モード・レポートを保存できます。ただし、最初に表示されているレポート(「プライマリ・デフォルト」レポート)を保存できるのは開発者のみです。
現在のレポート設定をデフォルトで保存するには、次のステップを実行します。
レポート・ページ「Employees」を実行します。
「アクション」メニューをクリックし、「レポートの保存」を選択します。
「保存」で、「デフォルトのレポート設定として保存」を選択します。
デフォルトのレポート・タイプ設定である「主」を受け入れ、「適用」をクリックします。
注意: このページでリセットが実行された場合、これらのデフォルトのレポート設定が使用されます。Department Name列はデフォルトで表示されます。 |
この演習では、Number of Employees列へのリンクを、ユーザーを「Employees」レポートにナビゲートする「Departments」レポートに追加します。また、選択した部門にフォーカスを設定します。列リンクには、対話モード・レポートのクリア・コマンドのCIR
が含まれます。これは、フィルタ、コントロール・ブレーク、ハイライト、集計、計算済列、チャート設定およびフラッシュバック設定の「Employees」レポートが表示されたときにクリアするためのコマンドです。
トピック:
この変更を行うには、「Departments」レポートのレポート属性を編集して、リンクへのNumber of Employees列の値を変更します。
列値をリンクに変更するには、次のステップを実行します。
「開発者」ツールバーの「アプリケーション ID」をクリックします。
「Departments」をクリックします。
「リージョン」で、「Departments」を右クリックして「レポート属性の編集」を選択します。
「レポート属性」ページが表示されます。
「列属性」セクションを検索します。
「列属性」セクションで、「Number of Employees」の横の「編集」アイコンをクリックします。
セクション「列リンク」までスクロールします。
「列リンク」で、次の変更を行います。
ページ-コンテキスト・メニューから「従業員」を選択します。
「ページ」フィールドに「従業員」ページの番号である「3」が表示されます。
「ページ区切りのリセット」を選択します。
キャッシュのクリア: 次のように入力します。
3,CIR
3
は3ページのキャッシュをクリアすることを、文字列CIR
は「Employees」対話モード・レポートが表示されたときに、フィルタ、コントロール・ブレーク、ハイライト、集計、計算済列、チャート設定またはフラッシュバック設定のレポートをクリアすることを意味します。
「アイテム1」の「名前」: IR_DEPARTMENT_ID
と入力します。
接頭辞IR_は、URLアイテムをページのアイテムではなく対話モード・レポート列に関連付けます。
アイテム1, 値 - コンテキスト・メニューから「#DEPARTMENT_ ID#」を選択します。
選択したオプションが「列リンク」セクションに表示されます。
要約すると、これらのオプションによって、エンド・ユーザーがリンクをクリックした場合に次の動作が行われます。
エンド・ユーザーが「Employees」レポートのページ3にナビゲートされます。
「Employees」レポートで、選択した部門がフォーカスされます。
「Employees」レポートがクリアされ、すべてのフィルタ、コントロール・ブレーク、ハイライト、集計、計算済列、チャート設定またはフラッシュバック設定が削除されます。
ユーザーが別の部門を選択すると、従業員レコードの最初のセットに戻ります。
「変更の適用」をクリックします。
「アクションが処理されました」というメッセージが表示されます。
「列属性」セクションで、「Number of Employees」行の「リンク」列にチェックマークが付いて、変更されたことを示しています。
ここで、レポートを実行し、「Departments」レポートからNumber of Employees列のリンクをテストします。「Employees」レポートが表示され、選択した部門に所属するすべての従業員を表示します。
「ページの実行」アイコンをクリックします。
「Departments」レポートが表示されます。これでエンドユーザーはNumber of Employees列の数字をクリックすることにより、その列のデータをドリルダウンできるようになりました。
「Executive」行の「Number of Employees」列で「3」をクリックします。
このレポートは「Departments」レポートからこのレポートに渡された90
というExecutive部門のDepartment Idの値でフィルタされているため、Department Idフィルタが表示されます。次の例に示すように、対話モード・レポートのクリア・コマンドはブラウザのURLの最後に含まれます。
f?p=100625:3:13870074215647::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」行で「従業員数」をクリックします。
列のリンクで指定されたCIR
コマンドによって、ハイライトがクリアされた「Employees」レポートが表示されます。
「DepartmentID = 90」の右にある「フィルタの削除」アイコンをクリックします。
「開発者」ツールバーの「アプリケーション ID」をクリックします。
この演習では、「Employees」ページにLOVを追加して、従業員を部門別に表示します。また、「Employees」レポート問合せを変更し、「Department」レポートの列リンクを編集した後、ページ区切りをオフにします。
トピック:
このセクションでは、どの部門の詳細を表示するか選択するためにLOVを作成します。これは、OEHR_DEPARTMENTS
表に部門名のリストを問い合せる動的リストです。
LOVを作成するには、次のステップを実行します。
「共有コンポーネント」をクリックします。
「ユーザー・インタフェース」で、「LOV」を選択します。
「作成」をクリックします。
デフォルトの「最初から」を受け入れて、「次へ」をクリックします。
「名前およびタイプ」で、次のステップを実行します。
「名前」に、DEPARTMENT
と入力します。
「タイプ」で、「動的」を選択します。
「次へ」をクリックします。
「問合せ」で次のように入力します。
SELECT department_name d, department_id v FROM oehr_departments ORDER BY d
「LOVの作成」をクリックします。
「動的LOVが作成されました。」というメッセージが表示されます。
「Department Details」リージョンにアイテムを作成して、部門のリストを表示します。
アイテムを追加するには、次のステップを実行します。
従業員のページ定義ページにナビゲートします。
「リージョン」で、「Employees」を右クリックして「ページ・アイテムの作成」を選択します。
「選択リスト」を選択して「次へ」をクリックします。
「表示位置および名前」で、次のステップを実行します。
「アイテム名」で、P3_DEPARTMENT_ID
と入力します。
「順序」で、10
と入力します。
「リージョン」で、「Employee (10)」を選択します。
「次へ」をクリックします。
「アイテム属性」で、次のステップを実行します。
「ラベル」で、Department
と入力します。
残りのデフォルトを受け入れて「次へ」をクリックします。
「設定」で、次のステップを実行します。
「必須の値」で、「いいえ」を選択します。
「値の変更時のページ・アクション」で、「値のリダイレクトと設定」を選択します。
「次へ」をクリックします。
「LOV」で、次の変更を行います。
「名前付きLOV」で、「DEPARTMENTS」を選択します。
「NULL値の表示」で、「はい」を選択します。
「NULL表示値」で、次のように入力します。
- No Department Assigned -
「NULL戻り値」で、次のように入力します。
-1
「次へ」をクリックします。
「アイテムの作成」をクリックします。
アイテムP3_DEPARTMENT_IDが作成されました。というメッセージが表示されます。
選択した部門に属する従業員を表示するように「Employees」レポートの問合せを変更します。
問合せを変更するには、次のステップを実行します。
「リージョン」で、「Employees」を右クリックして「編集」をクリックします。
「リージョン・ソース」で次のように入力します。
SELECT e.ROWID, 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」の問合せが変更されたため、「従業員数」列リンクはP3_DEPARTMENT_IDアイテムをDEPARTMENT_IDの値に初期化する必要があります。
「Number of Employees」の列リンクを変更するには、次のステップを実行します。
ブレッドクラム「アプリケーション ID」をクリックします。
「Departments」をクリックします。
「リージョン」で、「Departments」を右クリックして「レポート属性の編集」を選択します。
「従業員数」で「編集」アイコンをクリックします。
「列リンク」までスクロールします。
アイテム1名前で「P3_DEPARTMENT_ID」を選択します。
「変更の適用」をクリックします。
「アクションが処理されました」というメッセージが表示されます。
次に、一度に表示されるのが1つのレコード(部門の詳細レポート)のみであるため、部門の詳細レポートのページ区切りの無効化を行います。ページ区切りが有効である場合、部門の詳細が表示されるリージョンにはrow 1 - 1の情報が含まれます。
ページ区切りをオフにするには、次のステップを実行します。
ブレッドクラム「アプリケーション ID」をクリックします。
「従業員」をクリックします。
「リージョン」で、「Employees」を右クリックして「レポート属性の編集」を選択します。
「ページ区切り」までスクロールします。
「ページ区切りタイプ」で、「- ページ区切りが選択されていない -」を選択します。
「変更の適用」をクリックします。
「アクションが処理されました」というメッセージが表示されます。
「ページの実行」アイコンをクリックします。
「Department」リストから、「No Department Assigned」を選択します。
従業員Kimberely Grantの行が表示されます。この従業員は、現在部門に割り当てられていません。
ヒント: 最初にレコードが表示されない場合は、ページをリロードし、再試行してください。 |
グラフィカルなロゴやテキストは、各ぺージに表示されるようにアプリケーションへ追加できます。表示位置はページ・テンプレートにより決まります。
この演習では、アプリケーションに会社名を追加します。
アプリケーションに会社名を追加するには、次のステップを実行します。
アプリケーションのホームページにナビゲートし、「開発者」ツールバー(ページ下部にあります)の「アプリケーション ID」をクリックします。
右上にある「アプリケーション・プロパティの編集」をクリックします。
「アプリケーション定義の編集」ページが表示されます。
「ユーザー・インタフェース」をクリックします。
「ロゴ」で、次のステップを実行します。
「ロゴ・タイプ」で、「テキスト」を選択します。
「ロゴ」で、AnyCo Corp
と入力します。
ロゴ属性: 「黒色のテキスト」を選択します。
アプリケーションid_numberが処理されました。というメッセージが表示されます。
「変更の適用」をクリックします。
「ホーム」をクリックします。
「ページの実行」アイコンをクリックします。
会社名がアプリケーション内の各ページに表示されます。
この演習では、アプリケーションの現行のテーマを別のテーマに切り替えます。テーマとは、アプリケーションのユーザー・インタフェースを定義するテンプレートのコレクションです。各テーマには、すべてのタイプのアプリケーション・コンポーネントおよびページ・コントロール(個々のページ、リージョン、レポート、リスト、ラベル、メニュー、ボタン、およびLOV)のテンプレートが含まれています。
Oracle Application Expressでは、アプリケーション・ロジックから表示機能(またはユーザー・インタフェースのテーマ)が切り離されています。1つのテーマでのアプリケーションの設計、指定した別のテーマへの変更、独自のカスタム・テーマの作成および使用が可能です。HTMLレンダリングからアプリケーション・ロジック(問合せ、処理、ブランチなど)を切り離すことによって、アプリケーションを書き直さなくても最新の設計およびその他の高度な技術を使用できます。テーマは、多数のテンプレートを集め、アプリケーションに必要となる可能性のあるすべてのユーザー・インタフェース・パターンを収録します。
テーマを切り替えるには、次のステップを実行します。
「開発者」ツールバー(ページ下部にあります)の「アプリケーション ID」をクリックします。
「アプリケーション」ホームページで、「共有コンポーネント」をクリックします。
「ユーザー・インタフェース」で、「テーマ」をクリックします。
「テーマ」ページで、「作成」をクリックします。
「ウィザードの作成」が表示されます。
「方法」で、デフォルトの「リポジトリから」を受け入れて「次へ」をクリックします。
「ユーザー・インタフェース」で、デフォルトの「デスクトップ」を受け入れて「次へ」をクリックします。
「テーマの指定」で、「Cloudy (Theme 24)」を選択して「次へ」をクリックします。
「作成」をクリックします。
「テーマが作成されました。」というメッセージが表示されます。
「テーマの切替え」をクリックします。
「テーマの指定」で、次のステップを実行します。
「現在アクティブなテーマ」で、「2.Builder Blue」を選択します。
「次のテーマに切替え」で、「24.Cloudy」を選択します。
「次へ」をクリックします。
「互換性の確認」で、情報を確認し、デフォルトを受け入れて「次へ」をクリックします。
ウィザードでは、選択済のテーマに、現行のアプリケーションで使用されている全テンプレートに対応するテンプレートが存在していることが確認されます。テンプレートが欠落している場合は、「ステータス」列に警告メッセージが表示されます。このチュートリアルでは、Oracle Application Expressによって欠落しているリージョン・テンプレートが既存のテンプレートにマップされるため、このメッセージを無視することができます。
「切替えの確認」で、「テーマの切替え」をクリックします。
「ページの実行」アイコンをクリックします。
すべてのページのデザインとレイアウトが変更されます。