ヘッダーをスキップ
Oracle® Application Expressアドバンスト・チュートリアル
リリース3.2
B53796-03
  目次へ移動
目次

前
 
次
 

6 チェック・ボックスの使用方法

Oracle Application Expressでは、チェック・ボックスをアイテムとして作成するか、またはレポート内に作成できます。フォームのチェック・ボックスは、LOVと同様に動作します。アイテムをチェック・ボックスとして定義する場合は、「アイテム属性」ページの「LOV」セクションにチェック・ボックス値を指定する必要があります。既存のファンクションAPEX_ITEM.CHECKBOXを使用して、レポートにチェック・ボックスを定義します。

このチュートリアルでは、チェック・ボックスを作成する様々な方法を説明し、チェック・ボックスの値を参照して処理する方法について説明します。チュートリアルを始める前に、必要なサンプル・データベース・オブジェクトにアクセスできるように、OEHR Sample Objectsアプリケーションをインポートしてインストールする必要があります。詳細は、「サンプル・オブジェクトのロード方法の概要」を参照してください。

この項には、次の項目が含まれます。

このトピックおよび関連トピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。

アプリケーションの作成

最初に、「アプリケーションの作成」ウィザードを使用してアプリケーションを作成する必要があります。

「アプリケーションの作成」ウィザードでアプリケーションを作成するには、次のステップを実行します。

  1. 「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    「アプリケーション・ビルダー」ホームページが表示されます。

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

  3. アプリケーションの作成」を選択して「次へ」をクリックします。

  4. 「名前」で、次のステップを実行します。

    1. 「名前」に、Check Boxesと入力します。

    2. 「アプリケーション」で、デフォルトを受け入れます。

    3. 「アプリケーションの作成」で、「最初から」を選択します。

    4. 「スキーマ」で、OEHR Sample Objectsをインストールしたスキーマを選択します。

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

      次に、ページを追加する必要があります。この演習では、レポートとフォームを追加します。

  5. 新しいレポートとフォームを追加するには、次のステップを実行します。

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

    2. 「表名」で、「OEHR_PRODUCT_INFORMATION」を選択します。

    3. ページの追加」をクリックします。

      ページ上部のリストに、新しい2つのページが表示されます。各ページに同じページ名が付いていることに注意してください。次に、ページ名をわかりやすい名前に編集します。

  6. ページ1の名前を編集するには、次のステップを実行します。

    1. 図6-1に示すように、ページ上部にあるページ1の横の「OEHR_PRODUCT_INFORMATION」をクリックします。

      図6-1 「アプリケーションの作成」ウィザードの「ページ名」

      図6-1の説明が続きます。
      「図6-1 「アプリケーションの作成」ウィザードの「ページ名」」の説明

    2. 「ページ名」で、既存のテキストをProduct Reportに置き換えます。

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

  7. ページ2の名前を編集するには、次のステップを実行します。

    1. 図6-1に示すページの上部にあるページ2の横の「OEHR_PRODUCT_INFORMATION」をクリックします。

    2. 「ページ名」で、既存のテキストを更新フォームに置き換えます。

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

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

  9. 「タブ」で、デフォルトの「1レベルのタブ」を受け入れて「次へ」をクリックします。

  10. 「別のアプリケーションから共有コンポーネントのコピー」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。

  11. 「属性」で、「認証スキーム」、「言語」、「ユーザー言語プリファレンスの派生元」にデフォルトを受け入れて、「次へ」をクリックします。

  12. 「ユーザー・インタフェース」で、「テーマ2」を選択して「次へ」をクリックします。

  13. 選択内容を確認して、「作成」をクリックします。

    「アプリケーション」ホームページが表示されます。

アプリケーションの実行

次に、アプリケーションを実行して確認を行います。

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

  1. 図6-2に示す「アプリケーションの実行」アイコンをクリックします。

    図6-2 「アプリケーションの実行」アイコン

    図6-2の説明が続きます。
    「図6-2「アプリケーションの実行」アイコン」の説明

  2. ユーザー名およびパスワードを入力するように要求されたら、ワークスペースのユーザー名およびパスワードを入力して、「ログイン」をクリックします。詳細は、「アプリケーション認証の概要」を参照してください。

    アプリケーションが表示されます。レポートには、製品情報を表示する11の列が含まれています。左端の列にある「編集」アイコンをクリックすると、更新フォームにリンクできます。

  3. 特定の製品の横にある「編集」アイコンをクリックします。図6-3に示すとおり、更新フォームが表示されます。

    図6-3 更新フォーム

    図6-3の説明が続きます。
    「図6-3 更新フォーム」の説明

更新フォームの編集

作成中のアプリケーションのページ2は、更新フォームです。この演習では、フォームを変更して「Warranty Period」フィールドを非表示にし、新しくチェック・ボックスを作成します。

この項の内容は次のとおりです。

「Warranty Period」フィールドの非表示化

最初に、「表示形式」属性を変更し、「Warranty Period」フィールドを非表示にします。

「Warranty Period」フィールドを非表示にするには、次のステップを実行します。

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

    ページ2のページ定義が表示されます。

  2. 「アイテム」セクションまでスクロールします。

  3. 「アイテム」で、「P2_WARRANTY_PERIOD」を選択します。

  4. 「名前」セクションの「表示形式」から、「非表示」を選択します。

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

新しいチェック・ボックスの追加

この演習では、製品の最低価格を定価の75%に自動設定するチェック・ボックスを作成します。

この項の内容は次のとおりです。


ヒント:

簡単にするため、このチュートリアルではアイテム属性を編集してチェック・ボックスを作成します。ただし、名前付きLOVを作成して参照させることをお薦めします。


関連項目:

『Oracle Database Application Expressユーザーズ・ガイド』の「LOVの作成」

新しいアイテムの追加

はじめに、新しいアイテムを追加します。最初はこのアイテムをラジオ・グループとして表示されるように作成し、後からチェック・ボックスに変更します。

ラジオ・グループとして表示されるアイテムを追加するには、次のステップを実行します。

  1. ページ2のページ定義の「アイテム」までスクロールします。

  2. 「アイテム」で、図6-4に示す「作成」アイコンをクリックします。

    図6-4 「作成」アイコン

    図6-4の説明が続きます。
    「図6-4 「作成」アイコン」の説明

  3. 「アイテム・タイプ」で、「ラジオ」を選択して「次へ」をクリックします。

  4. 「ラジオ・グループ制御タイプ」で、「ラジオ・グループ」を選択して「次へ」をクリックします。

  5. 「表示位置および名前」で、次のステップを実行します。

    1. 「アイテム名」に、P2_SET_MIN_PRICEと入力します。

    2. 「順序」に、9.5と入力します。

      この順序により、アイテムの位置がP2_MIN_PRICEアイテム(「Minimum Price」フィールド)の下に指定されます。

    3. 「リージョン」で、「更新フォーム」を選択します。

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

  6. 「LOV」で、次のステップを実行します。

    1. 「名前付きLOV」で、「名前付きLOVの選択」を選択します。

    2. 「NULLオプションの表示」で、「いいえ」を選択します。

    3. 「LOV問合せ」に、次のように入力します。

      STATIC:Yes;Y,No;N
      
    4. 次へ」をクリックします。

  7. 「アイテム属性」で、次のステップを実行します。

    1. 「ラベル」で、既存のテキストをSet Minimum Priceに置き換えます。

    2. 残りのデフォルトを受け入れます。

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

  8. 「ソース」で、次のステップを実行します。

    1. 「アイテム・ソース」で、「SQL問合せ」を選択します。

    2. 「アイテム・ソース値」に、次のように入力します。

      SELECT 'Y' FROM DUAL WHERE :P2_LIST_PRICE*0.75=:P2_MIN_PRICE
      
    3. 残りのデフォルトを受け入れて「アイテムの作成」をクリックします。

プロセスの作成

次に、最低価格を定価の25%引きに設定するページ・プロセスを作成します。

ページ・プロセスを作成するには、次のステップを実行します。

  1. ページ2のページ定義で、「ページ・プロセス」領域に移動します。

  2. 「プロセス」で、「作成」アイコンをクリックします。

  3. 「プロセス・タイプ」で、「PL/SQL」を選択して「次へ」をクリックします。

  4. 「プロセス属性」で、次のステップを実行します。

    1. 「名前」に、Update Min Priceと入力します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「ポイント」で、「送信時 - 計算および検証の後」を選択します。

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

  5. 「プロセス」で、次のステップを実行します。

    1. 次の内容を入力します。

      UPDATE oehr_product_information 
      SET MIN_PRICE=(:P2_LIST_PRICE*0.75) 
      WHERE PRODUCT_ID=:P2_PRODUCT_ID;
      
    2. 次へ」をクリックします。

  6. 「メッセージ」で、次のステップを実行します。

    1. 「成功メッセージ」に、次のように入力します。

      Product successfully updated.
      
    2. 「失敗メッセージ」に、次のように入力します。

      Unable to update this product. Contact your system administrator.
      
    3. 次へ」をクリックします。

  7. 「プロセス条件」で、次のステップを実行します。

    1. 「条件タイプ」で、「式1のアイテムの値=式2」を選択します。

    2. 「式1」に、次のように入力します。

      P2_SET_MIN_PRICE
      
    3. 「式2」に、Yと入力します。

    4. プロセスの作成」をクリックします。

ページの実行

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

  1. 右上にある「ページの実行」アイコンをクリックします。

  2. ユーザー名およびパスワードを入力するように要求されたら、ワークスペースのユーザー名およびパスワードを入力して、「ログイン」をクリックします。詳細は、「アプリケーション認証の概要」を参照してください。

    図6-5に示すとおり、更新されたフォームが表示されます。「Warranty Period」フィールドは表示されなくなり、新しく「Set Minimum Price」ラジオ・グループが表示されています。

    図6-5 「Set Minimum Price」ラジオ・グループ付きの更新フォーム

    図6-5の説明が続きます。
    「図6-5 「Set Minimum Price」ラジオ・グループ付きの更新フォーム」の説明

チェック・ボックスとして表示するためのアイテムの編集

次に、「Set Minimum Price」ラジオ・グループ(P2_SET_MIN_PRICE)をチェック・ボックスとして表示するように変更します。

P2_SET_MIN_PRICEを編集するには、次のステップを実行します。

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

    ページ2のページ定義が表示されます。

  2. 「アイテム」で、「P2_SET_MIN_PRICE」をクリックします。

  3. 「表示形式」から、「チェックボックス」を選択します。

  4. 「ラベル」までスクロールします。「ラベル」で、既存のテキスト(Set Minimum Price)を削除します。

  5. 「デフォルト」までスクロールします。「デフォルト値」に、Nと入力します。

  6. 「LOV」で、次のステップを実行します。

    1. 「列の数」に、1と入力します。

    2. 「LOV定義」に、次のように入力します。

      STATIC: <b> Set Minimum Price</b><br/> (25% Discount on List Price);Y
      
  7. ページの上部の「変更の適用」をクリックします。

ページの実行

ページを実行するには、右上にある「ページの実行」アイコンをクリックします。図6-6に示すとおり、更新されたフォームが表示されます。新しく追加された「Set Minimum Price」チェック・ボックスを確認してください。

図6-6 「Set Minimum Price」チェック・ボックス付きの更新フォーム

図6-6の説明が続きます。
「図6-6 「Set Minimum Price」チェック・ボックス付きの更新フォーム」の説明

レポートの表示の変更

レポート属性を編集して、レポートの表示方法を変更できます。この演習では、ページ1に表示される列の数を変更してから、2つの列の書式を通貨記号が含まれるように変更します。

ページ1のレポート属性を編集するには、次のステップを実行します。

  1. 「開発者」ツールバーで「アプリケーション」をクリックします。

    「アプリケーション」ホームページが表示されます。

  2. 1 - Product Report」をクリックします。

    ページ1のページ定義が表示されます。

  3. 図6-7に示すように、「リージョン」で、「レポート」リンクをクリックします。

    図6-7 「レポート」リンク

    図6-7の説明が続きます。
    「図6-7 「レポート」リンク」の説明

    「レポート属性」ページが表示されます。このページを使用して、レポート・レイアウトを詳細に制御することができます。最初に、表示する列の数を変更します。

  4. 次の列の「表示」チェック・ボックスの選択を解除します。

    • Weight Class

    • Warranty Period

    • Supplier ID

    次に、List Price列およびMin Price列を編集して、通貨記号が含まれるようにします。

  5. List Price列を編集するには、次のステップを実行します。

    1. List Priceの横にある「編集」アイコンをクリックします。

    2. 「数値/日付書式」から、「$5,234.10」を選択します。

    3. ページ上部にある「次へ」(>)アイコンをクリックします。

      「次へ」アイコンをクリックすると変更が送信され、次の列「Min Price」の属性が表示されます。

  6. 「Min Price」列を編集するには、次のステップを実行します。

    1. 「数値/日付書式」から、「$5,234.10」を選択します。

      例を選択すると書式が選択されるようになっています。ただし、実際にフィールドに表示される値はOracle数値書式です。

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

  7. 右上にある「ページの実行」アイコンをクリックします。

    更新されたレポートが表示されます。「Weight Class」、「Warranty Period」および「Supplier ID」列は表示されなくなり、「List Price」と「Min Price」列には通貨記号が含まれています。

コンテンツをフィルタ処理するための複数値チェック・ボックスの作成

次の演習では、「Product Report」ページの検索フィールド(P1_REPORT_SEARCH)を、複数値チェック・ボックスに変更します。このチェック・ボックスに変更することで、ユーザーは製品カテゴリ(obsolete、orderable、planned、under development)を使用してレポートをフィルタ処理できるようになります。

この項の内容は次のとおりです。

検索フィールドの複数値チェック・ボックスへの変更

検索フィールドをチェック・ボックスに変更するには、次のステップを実行します。

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

    ページ1のページ定義が表示されます。

  2. 「アイテム」で、「P1_REPORT_SEARCH」をクリックします。

  3. 「表示形式」から、「チェックボックス」を選択します。

  4. 「ラベル」までスクロールします。「ラベル」で、既存のテキストを削除してProduct Statusに置き換えます。

  5. 「ソース」までスクロールします。「ソース値または式」に、次のように入力します。

    obsolete:orderable:planned:under development
    
  6. 「LOV」までスクロールします。次のように指定します。

    1. 「名前付きLOV」で、デフォルトを受け入れます。

    2. 「列の数」に、4と入力します。

    3. 「LOV定義」に、次のように入力します。

      SELECT DISTINCT product_status display_value, product_status return_value
      FROM oehr_product_information
      ORDER BY 1
      

      注意:

      複数値チェック・ボックスを作成するには、LOB問合せで複数の行が戻される必要があることに注意してください。

  7. ページの上部の「変更の適用」をクリックします。

    ページ1のページ定義が表示されます。

レポートのリージョン定義の編集

レポートのリージョン定義を編集するには、次のステップを実行します。

  1. 「リージョン」で、「Product Report」をクリックします。

    リージョン定義が表示されます。

  2. 「ソース」までスクロールします。

  3. 「ソース」で、WHERE句を次のように変更します。

    ...
    WHERE  instr(':'||:P1_REPORT_SEARCH||':',product_status)> 0
    
  4. ページの上部の「変更の適用」をクリックします。

    ページ1のページ定義が表示されます。

  5. ページの上部の「変更の適用」をクリックします。

    ページ1のページ定義が表示されます。

デフォルトのチェック・ボックスの動作の変更

ページ1のコンテンツは、「Product Status」チェック・ボックスによって正しくフィルタ処理されますが、すべてのチェック・ボックスを選択解除すると、すべての製品がレポートに表示されることに注意してください。チェック・ボックスをNULL値にする(選択解除する)と、デフォルト値Yが設定されるため、この動作が発生します。デフォルト値Yによって、チェック・ボックスが有効になります。この動作は、チェック・ボックスの状態を追跡する計算を追加して変更できます。チェック・ボックスの状態を追跡する計算を追加するには、次のステップを実行します。

  1. 「ページ・プロセス」の「計算」で、「作成」アイコンをクリックします。

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

  2. 「アイテムの位置」で、「このページのアイテム」を選択して「次へ」をクリックします。

  3. 「アイテム」で、次の各項目を指定します。

    1. 「計算アイテム」で、「P1_REPORT_SEARCH」を選択します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「計算ポイント」で、「送信後」を選択します。

    4. 「計算タイプ」で、「静的割当て」を選択します。

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

  4. 「計算」に、次のように入力します。

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

      none(bogus_value)
      
    2. 次へ」をクリックします。

  5. 「条件」で、次のステップを実行します。

    1. 「条件タイプ」で、「式1のアイテムの値がNULL」を選択します。

    2. 「式1」に、次のように入力します。

      P1_REPORT_SEARCH
      
  6. 作成」をクリックします。

    ページ1のページ定義が表示されます。

  7. 右上にある「ページの実行」アイコンをクリックします。「Product Status」チェック・ボックスはページ上部に表示されています。

チェック・ボックスの太字表示への変更

次に、チェック・ボックスの表示値(ラベル)が太字で表示されるように編集します。

チェック・ボックスの表示値(ラベル)が太字で表示されるように編集するには、次のステップを実行します。

  1. ページ1のページ定義に移動します。

  2. 「アイテム」で、「P1_REPORT_SEARCH」をクリックします。

  3. 「要素」までスクロールします。

  4. 「フォーム要素オプション属性」に、次のように入力します。

    class="fielddatabold"
    

    「フォーム要素オプション属性」は、チェック・ボックスおよびラジオ・ボタン専用で、Application Engineエンジンによる個のオプションのレンダリング方法を制御します。

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

    ページ1のページ定義が表示されます。

レポートの各行へのチェック・ボックスの追加

次の演習では、「Product Report」の各行に削除チェック・ボックスを追加します。これを行うには、レポート問合せを編集してAPEX_ITEMパッケージをコールする必要があります。

APEX_ITEMは、特定のアイテムを動的に生成するために提供されているパッケージです。ここでは、APEX_ITEM.CHECKBOXを使用して「Product Report」にチェック・ボックスを生成します。ページを送信すると、チェック・ボックスの値がグローバル・パッケージ配列に格納されます。これらの値は、渡されたp_idxパラメータ値に基づいてPL/SQL変数APEX_APPLICATION.G_F01からAPEX_APPLICATION.G_F50を使用して参照できます。

この項の内容は次のとおりです。


関連項目:

『Oracle Database Application Expressユーザーズ・ガイド』の「APEX_ITEM」

APEX_ITEM.CHECKBOXのコール

APEX_ITEM.CHECKBOXをコールするように問合せを編集するには、次のステップを実行します。

  1. ページ1のページ定義に移動します。

  2. 「リージョン」で、「Product Report」をクリックします。

  3. 「ソース」までスクロールします。

  4. 「リージョン・ソース」で、太字で示されている新しい行を問合せに追加します。

    SELECT 
    "product_id",
    apex_item.checkbox(1,product_id) del,
    "product_name", 
    "product_description",
    "category_id",
    "weight_class",
    "warranty_period",
    "supplier_id",
    "product_status",
    "list_price",
    "min_price",
    "catalog_url"
    FROM   "oehr_product_information" 
    WHERE  instr(':'||:p1_report_search||':',product_status)> 0  
    

    APEX_ITEMは、特定のアイテムを動的に生成する場合に使用可能なOracle Application Expressで提供されるパッケージです。前述の例で、p_idxに渡される値は1であることに注意してください。後で、チェック・ボックスの値を参照するには、グローバル変数APEX_APPLICATION.G_F01を使用します。

    Oracle Application Expressによって、列リストの最後に自動的に新しい行が追加されます。次に、DEL列を移動する必要があります。

  5. ページ上部までスクロールして「レポート属性」タブを選択します。

  6. 「列属性」で、DEL列を検索します。

  7. DEL列がPRODUCT_IDのすぐ下になるまで、右側の矢印をクリックします。(図6-8を参照。)

    図6-8 「レポート列属性」ページ

    図6-8の説明が続きます。
    「図6-8 「レポート列属性」ページ」の説明

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

    ページ1のページ定義が表示されます。

チェック・ボックス配列値を送信するボタンの追加

チェック・ボックス配列値を送信するボタンを追加するには、次のステップを実行します。

  1. ページ1のページ定義に移動します。

  2. 「ボタン」で、「作成」アイコンをクリックします。

  3. 「ボタン・リージョン」で、「Product Report (1)」を選択して「次へ」をクリックします。

  4. 「位置」で、「リージョン位置にボタンの作成」を選択して「次へ」をクリックします。

  5. 「ボタン属性」で、次のステップを実行します。

    1. 「ボタン名」に、DELETE_PRODUCTSと入力します。

    2. 「ラベル」に、Delete Productsと入力します。

    3. 残りのデフォルトを受け入れて「次へ」をクリックします。

  6. 「ボタン・テンプレート」で、デフォルトの選択内容を受け入れて「次へ」をクリックします。

  7. 「表示プロパティ」で、次のステップを実行します。

    1. 「位置」で、「リージョンの上部」を選択します。

    2. 残りのデフォルトを受け入れて「次へ」をクリックします。

  8. 「ブランチ」で、「1 Product Report」を選択して「ボタンの作成」をクリックします。

プロセスの追加

「Delete Products」ボタンをクリックすると実行されるプロセスを追加するには、次のステップを実行します。

  1. 「ページ・プロセス」の「プロセス」で、「作成」アイコンをクリックします。

  2. 「プロセス・タイプ」で、「PL/SQL」を選択して「次へ」をクリックします。

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

    1. 「名前」に、Delete Productsと入力します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「ポイント」で、「送信時 - 計算および検証の後」を選択します。

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

  4. 次のPL/SQLプロセスを入力して「次へ」をクリックします。

    FOR i in 1..APEX_APPLICATION.G_F01.count
    LOOP
       DELETE FROM oehr_product_information
       WHERE product_id = APEX_APPLICATION.G_F01(i);
    END LOOP;
    

    APEX_ITEMは、特定のアイテムを動的に生成する場合に使用可能なOracle Application Expressで提供されるパッケージです。ページを送信すると、各列の値がグローバル・パッケージ配列に格納され、これらの値はPL/SQL変数APEX_APPLICATION.G_F01からAPEX_APPLICATION.G_F50を使用して参照できます。この演習では、product_idに渡される値は1であるため、グローバル変数APEX_APPLICATION.G_F01を使用してこの列の値を参照することになります。

  5. 「メッセージ」で、次のステップを実行します。

    1. 「成功メッセージ」に、次のように入力します。

      Product(s) deleted.
      
    2. 「失敗メッセージ」に、次のように入力します。

      Unable to delete product(s).
      
  6. プロセスの作成」をクリックします。

  7. ページを実行します。

    図6-9に示されるように、「Delete Products」ボタンはレポートの上部に表示されることに注意してください。レポートから製品を削除するには、「Del」チェック・ボックスを選択して「Delete Products」をクリックします。

    図6-9 「Delete Products」チェック・ボックス付きの「Product Report」

    図6-9の説明が続きます。
    「図6-9 「Delete Products」チェック・ボックス付きの「Product Report」」の説明