プライマリ・コンテンツに移動
Oracle® Application Expressチュートリアル: アプリケーションの構築
リリース5.1
E89953-01
目次へ移動
目次
索引へ移動
索引

前
次

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で、次のように操作します。
    1. 指定: タイトル - 「To-Dos」と入力します
    2. 指定: タイプ - 「対話グリッド」を選択します
    3. ソース: SQL問合せ - 「select * from demo_to_dos」と入力します
    4. 外観: テンプレート - 「標準」を選択します
    5. マスター・ディテール: マスター・リージョン - 「タスク」を選択します
    6. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します
    7. サーバー側の条件: アイテム - P5_ROWIDを選択します

対話グリッドを編集可能にするには、次のステップを実行します。

  1. 「レンダリング」ツリーの「To-Dos」の下で、「属性」フォルダを選択します。
  2. Property Editorで、次のように操作します。
    1. 編集: 有効 「はい」を選択します
    2. ツールバー: 「ボタン」 - 「保存」を選択解除します

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

表示から列を非表示にしますが、より上位レベルの表にリンクして、このリージョンがマスター・ディテール関係のディテールとして機能するようにします。続いて、操作性向上のために、「割当て先」列を選択リストに変更します。

「To-Dos」サブ・リージョンの「ID」、「PROJECT_ID」および「TASK_ID」列を非表示にして「タスク」リージョンにリンクするには、次のステップを実行します。

  1. 「レンダリング」ツリーの「To-Dos」の下で、「列」フォルダを展開して「ID」列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「非表示」を選択します
  3. 「レンダリング」ツリーの「To-Dos」の下で、PROJECT_ID列を選択します。
  4. Property Editorで、次のように操作します。
    1. 指定: タイプ 「非表示」を選択します
    2. マスター・ディテール: マスター列 - 「PROJECT_ID」を選択します

      注意:

      表示される列は、「タスク」(マスター)リージョンで定義される列です。
  5. 「レンダリング」ツリーの「To-Dos」の下で、TASK_ID列を選択します
  6. Property Editorで、次のように操作します。
    1. 指定: タイプ 「非表示」を選択します
    2. マスター・ディテール: マスター列 - 「ID」を選択します

ASSIGNEE列を選択リストに変更するには、次のステップを実行します。

  1. 「レンダリング」ツリーの「To-Dos」の下で、ASSIGNEE列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「選択リスト」を選択します
    2. ヘッダー: 位置合せ - 「開始」を選択します
    3. レイアウト: 列の位置合せ - 「開始」を選択します
    4. LOV: タイプ - 「共有コンポーネント」を選択します
    5. LOV: LOV - TEAM MEMBERSを選択します
    6. LOV: 追加値の表示 - 「いいえ」を選択します
    7. LOV: NULL表示値 - 「- Select Assignee -」と入力します

9.3 「To-Dos」列の改善

ランタイムでより簡単に編集できるように、「名前」列をテキスト・フィールドに、「完了?」列をスイッチに変更します。

次に、監査詳細を表示専用にします。

NAME列をテキスト・フィールドに変更するには、次のステップを実行します。

  1. 「レンダリング」ツリーの「To-Dos」列で、NAME列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「テキスト・フィールド」を選択します

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

  1. 「レンダリング」ツリーの「To-Dos」列で、IS_COMPLETE_YN列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「切替え」を選択します
    2. ヘッダー: ヘッダー - 「「完了?」」と入力します

監査詳細を表示専用にするには、次のステップを実行します。

  1. 「レンダリング」ツリーの「To-Dos」列で、CREATED列のみを選択します。続いて[Ctrl]キーを押したまま、次のアイテムをすべて選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「表示のみ」を選択します
これで「To-Dos」サブ・リージョンが完成しました。

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

「タスク」リージョンに「リンク」サブ・リージョンを作成して構成します。

「タスク」リージョンに「リンク」サブ・リージョンを追加するには、次のステップを実行します。

  1. 「レンダリング」ツリーで、「タスク」を右クリックして「サブ・リージョンの作成」を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイトル - 「リンク」と入力します
    2. 指定: タイプ - 「対話グリッド」を選択します
    3. ソース: SQL問合せ - 「select * from demo_links」と入力します
    4. 外観: テンプレート - 「標準」を選択します
    5. マスター・ディテール: マスター・リージョン - 「タスク」を選択します
    6. サーバー側の条件: タイプ - 「アイテムはNULLではない」を選択します
    7. サーバー側の条件: アイテム - P5_ROWIDを選択します

リージョンを編集可能な対話グリッドに変更するには、次のステップを実行します。

  1. 「レンダリング」ツリーの「リンク」の下で、「属性」フォルダを選択します。
  2. Property Editorで、次のように操作します。
    1. 編集: 有効 - 「はい」を選択します
    2. ツールバー: 「ボタン」 - 「保存」を選択解除します

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

表示から列を非表示にしますが、より上位レベルの表にリンクして、このリージョンがマスター・ディテール関係のディテールとして機能するようにします。

ID列を非表示にするには、次のステップを実行します。

  1. 「レンダリング」ツリーの「リンク」の下で、「列」フォルダを展開して「ID」列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「非表示」を選択します

「PROJECT_ID」列を非表示にして、それを「Tasks Project Id」列にリンクします。

  1. 「レンダリング」ツリーで、PROJECT_ID列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「非表示」を選択します
    2. マスター・ディテール: マスター列 - 「PROJECT_ID」を選択します

      注意:

      表示される列は、「タスク」(マスター)リージョンで定義される列です。

「TASK_ID」列を非表示にして「Tasks Id」列にそれをリンクします。

  1. 「レンダリング」ツリーで、TASK_ID列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「非表示」を選択します
    2. マスター・ディテール: マスター列 - 「ID」を選択します

9.6 「リンク」列の改善

「Link Type」列を選択リストに変更し、よりユーザー・フレンドリなラベルを付けていくつかの列を更新して、監査詳細を表示専用に変更します。

「LINK_TYPE」列を選択リストに変更するには、次のステップを実行します。

  1. 「レンダリング」ツリーの「リンク」列で、LINK_TYPE列を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「選択リスト」を選択します
    2. LOV: タイプ - 「静的値」を選択します
    3. LOV: LOV - 「STATIC2:URL,Application」と入力します
    4. LOV: 追加値の表示 - 「いいえ」を選択します
    5. LOV: NULL値の表示 - 「いいえ」を選択します

「URL」、「APPLICATION_ID」および「APPLICATION_PAGE」列のラベルを更新します。

  1. 「レンダリング」ツリーで、「URL」列を選択します。
  2. Property Editorで、次のように操作します。
    1. ヘッダー: ヘッダー - 「URL」と入力します
  3. 「レンダリング」ツリーで、APPLICATION_ID列を選択します。
  4. Property Editorで、次のように操作します。
    1. ヘッダー: ヘッダー - 「Application ID」と入力します
  5. 「レンダリング」ツリーで、APPLICATION_PAGE列を選択します。
  6. Property Editorで、次のように操作します。
    1. ヘッダー: ヘッダー - 「Page」と入力します

監査詳細を表示専用にするには、次のステップを実行します。

  1. 「レンダリング」ツリーでCREATED列のみを選択し、[Ctrl]キーを押したまま、次のアイテムをすべて選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: タイプ - 「表示のみ」を選択します

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

ユーザーは、「リンク」サブ・リージョンに2種類のリンクを追加できます。
  • 関連WebサイトのURL

  • アプリケーション内のページ

現時点では、ユーザーが「リンク」サブ・リージョンに新しいエントリを追加すると、適用できない列に情報を入力でき、混乱の元となっています。

「LINK_TYPE」列に動的アクションを追加して、リンク・タイプを選択したときに対話グリッドが関連した列のみを表示するようにします。2つの異なる「True」動的アクションを作成、定義して、URLに対して関連する列を有効化する必要があります。続いて、各動的アクションに対して反対のアクションを作成して「アプリケーション・ページ」列を有効化します。

URLに対して「LINK_TYPE」列に動的アクションを追加するには、次のステップを実行します。

  1. 「レンダリング」ツリーの「リンク」の下で、「列」フォルダを展開してLINK_TYPE列を見つけます。
  2. LINK_TYPE列を右クリックして「動的アクションの作成」を選択します。
    新しい動的アクションが「レンダリング」ツリーにデータを移入します。
  3. Property Editorで、次のように操作します。
    1. 指定: 名前 - 「Enable Columns Based on Link Type」と入力します
    2. クライアント側の条件: タイプ - 「アイテム/列 = 値」を選択します
    3. クライアント側の条件: 値 - 「URL」と入力します
  4. 「レンダリング」ツリーの「LINK_TYPE」列の下で、「True」フォルダを展開して「有効化」アクションを選択します。
  5. Property Editorで、次のように操作します。
    1. 影響を受ける要素: 列 - 「URL」を選択します

URLに対して「LINK_TYPE」列に2番目の動的アクションを追加するには、次のステップを実行します。

  1. 「レンダリング」ツリーで、「リンク・タイプに基づいて列を有効化する」を右クリックして、「TRUEアクションの作成」を選択します。
  2. Property Editorで、次のように操作します。
    1. 指定: アクション - 「無効化」を選択します
    2. 影響を受ける要素: 列 - 「APPLICATION_ID,APPLICATION_PAGE」と入力します

      GUID-4758BA83-B29A-4081-927F-CE2206E1EB7C-default.pngの説明が続きます
      図GUID-4758BA83-B29A-4081-927F-CE2206E1EB7C-default.pngの説明

      重要:

      「影響を受ける要素: 列」フィールドにはスペースを入力しないでください。

      ヒント:

      「選択リスト」ボタンを使用して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という名のフォルダの下に表示されます。
    GUID-418DE504-573B-4C9B-A099-E63552D622FF-default.pngの説明が続きます
    図GUID-418DE504-573B-4C9B-A099-E63552D622FF-default.pngの説明

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

監査詳細を削除して列を並べ替えることによりTo-Dosレポートの列をクリーンアップし、変更を主レポートに保存します。

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

監査の詳細列を削除して残りの列を並べ替えるには、次のステップを実行します。

  1. 「To-Dos」サブ・リージョンで、「アクション」メニューをクリックして「列」を選択します。
    「列」ダイアログが表示されます。
  2. 「表示」列で、次のアイテムを選択解除します。
    • 作成日

    • 作成者

    • 更新日

    • 更新者

  3. 「名前」を選択して上移動アイコン(^)をクリックし、「割当て先」より上に列を移動します。
  4. 「完了?」を選択して上移動アイコン(^)をクリックし、「説明」より上に列を移動します。
  5. 「保存」をクリックします。
  6. 「To-Dos」リージョンで、「アクション」メニューをクリックして「データ」を選択し、「ソート」を選択します。
    「ソート」ダイアログが表示されます。
  7. 「列」で「完了?」を選択します
    「完了?」列が左のペインに表示されます。
  8. 新しい範囲を追加するには、「追加」アイコン( + )をクリックします。
  9. 新しいエントリ内でクリックして選択し、「列」で「作成」を選択します。
  10. 「保存」をクリックします。

列のサイズを変更するには次のステップを実行します。

  1. 「名前」列ヘッダーをクリックして「凍結」アイコン(雪片)をクリックし、「名前」列を位置にロックします。
  2. (オプション)「To-Dos」サブ・リージョンの残りの列で、たとえば「完了?」の狭い列や「説明」の広い列の、列の間の区切りをクリックして適切な幅までドラッグします。

レポートを保存するには次のステップを実行します。

  1. 「アクション」メニューをクリックし、「レポート」「レポートの保存」の順に選択します。
これで「To-Dos」ティテール・サブ・リージョンが完成しました。

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

同様のタスクを実行して「リンク」サブ・リージョンをTo-Dosと整合的にし、主レポートに変更を保存します。

監査詳細列を削除するには次のステップを実行します。

  1. 「リンク」サブ・リージョンで、「アクション」メニューをクリックして「列」を選択します。
    「列」ダイアログが表示されます。
  2. 「表示」列で、次のアイテムを選択解除します。
    • 作成日

    • 作成者

    • 更新日

    • 更新者

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

「作成」列を基準にレポートを並べるには次のステップを実行します。

  1. 「アクション」メニューをクリックして「データ」を選択し、「ソート」を選択します。
    「ソート」ダイアログが表示されます。
  2. 「列」で「作成」を選択します。
  3. 「保存」をクリックします。

(オプション)列のサイズを変更するには次のステップを実行します。

  1. (オプション)「リンク」サブ・リージョンの残りの列で、たとえば「完了?」の狭い列や「説明」の広い列の、列の間の区切りをクリックして適切な幅までドラッグします。

レポートを保存するには次のステップを実行します。

  1. 「アクション」メニューをクリックし、「レポート」「レポートの保存」の順に選択します。
  2. 完了したら、開発者ツールバーの「アプリケーション####」をクリックしてアプリケーション・ビルダーのアプリケーション概要に戻ります。

これで「リンク」ディテール・サブ・リージョンを完成し、マスター・ディテール/ディテール・ページを完全に構成しました。

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