8.6.6 スマート・フィルタ・ページの編集

属性によるスマート・フィルタ・ページの動作の変更方法について学習します。

ヒント:

この項の多数の例は、サンプル・データセットのプロジェクト・データで使用可能なEBA_PROJECT_TASKS表またはサンプル・データセットのEMP/DEPTで使用可能なEMP表に基づいて作成されています。サンプル・データセットをインストールするには、Oracle APEX SQLワークショップ・ガイドサンプル・データセットの使用を参照してください。

8.6.6.1 スマート・フィルタ・ページ・コンポーネントの確認

スマート・フィルタ・ページを構成するコンポーネントを確認するには、ページ・デザイナで属性を表示します。

スマート・フィルタ・ページには、ページ上部にフィルタがある1つの検索フィールドがあります。検索結果は、クラシック・レポート、カード、マップまたはカレンダとして表示できます。

ヒント:

アプリケーションの作成およびページの作成ウィザードは、クラシック・レポートおよびカード・レポートを使用したスマート・フィルタ・ページの作成のみをサポートするため、マップおよびカレンダを手動で作成する必要があります。

スマート・フィルタ・ページのコンポーネントを確認するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
    ページ・デザイナが表示されます。
  2. 「検索」リージョンを確認します。「レンダリング」タブで、「検索」リージョンを見つけて選択します。

    「検索」リージョンのタイプが「スマート・フィルタ」であることに注意してください。この例では、「検索」リージョンに6つのフィルタが含まれています。フィルタは、サジェスチョン・チップとして実行時に、特定の値が発生する頻度を示す件数とともに表示されます。サジェスチョン・チップに表示される値は、「サジェスチョン」グループの属性で構成されます。フィルタはアイテムに似ていますが、次のような固有の特性があります。

    • ネーミング規則: フィルタではアイテムと同じネーミング規則が使用されます。デフォルトでは、ウィザードはフィルタ名にP<page no>_<item name>を使用して接頭辞を付けます(たとえば、P2_SEARCH))。

    • 列に関連付け: フィルタは、「検索結果」(またはレポート)リージョンの列に関連付けられます。

    • チェック・ボックス・グループ・フィルタ: タイプが「チェック・ボックス・グループ」のフィルタにより、フィルタ値を選択または入力するためのUIが作成されます。これらは、タイプ名が同じであっても、ページ・アイテムと同様には実装されません。このため、ほとんどの動的アクションはフィルタに適用されません。

  3. フィルタを選択し、構成可能なオプションを確認します。
    ヘルプを表示するには、属性を選択して「ヘルプ」タブをクリックします。
  4. レポート・リージョンを確認します。「レンダリング」タブで、「検索結果」(またはレポート)を見つけて選択します。

    前述の例では、レポート・タイプがローカル・データベースのEBA_PROJECT_TASKS表に基づいて作成された「クラシック・レポート」であることが属性に示されています。

8.6.6.2 スマート・フィルタ・ページの理解

スマート・フィルタ・ページを構成するリージョンについて学習します。

検索リージョンについて

スマート・フィルタ・ページには、ユーザーが検索結果と、クラシック・レポートやカード・レポートなどのレポート・リージョンを絞り込むことができる「検索」リージョンがあります。

ページ・デザイナでは、左ペインまたは「レンダリング」タブに「検索」リージョンが表示されます。「検索」リージョンを選択すると、プロパティ・エディタに属性が表示されます。次の図では、「レンダリング」リージョンの「タイプ」「スマート・フィルタ」として定義されています。「フィルタ済リージョン」属性は、「検索結果」リージョンを識別します。この例では、「フィルタ済リージョン」は、「検索結果」という名前のクラシック・レポートです。

ヒント:

プロパティ・エディタの各属性には、関連付けられたヘルプがあることに注意してください。ヘルプを表示するには、プロパティ・エディタで属性を選択し、中央ペインで「ヘルプ」タブをクリックします。属性についてのヘルプが中央ペインに表示されます。

フィルタについて

検索フィルタは、「レンダリング」タブの「フィルタ」の下に表示されます。フィルタを選択すると、関連する属性がプロパティ・エディタに表示されます。フィルタではアイテムと同じネーミング規則が使用されます。デフォルトでは、ウィザードは、フィルタ名にP<page no>_<item name>の規則を使用して接頭辞を付けます。たとえば、前の例では、最初のフィルタの名前はP2_SEARCH)です。

フィルタはアイテムに似ていますが、次のような固有の特性があります。

  • 列に関連付け: フィルタはレポート・リージョンの列に関連付けられます。

  • チェック・ボックス・グループ・フィルタ: タイプが「チェック・ボックス・グループ」のフィルタにより、フィルタ値を選択または入力するためのUIが作成されます。これらは、タイプ名が同じであっても、ページ・アイテムと同様には実装されません。このため、ほとんどの動的アクションはフィルタに適用されません。

検索結果について

スマート・フィルタ・ページには、「検索結果」リージョンがあります。アプリケーションの作成ウィザードまたはページの作成ウィザードを使用してスマート・フィルタ・ページを作成する場合、「検索結果」リージョンはクラシック・レポートまたはカード・レポートです。スマート・フィルタ・ページを手動で作成する場合、「検索結果」リージョンは手動で作成したマップまたはカレンダにすることもできます。次の例では、「検索結果」はEBA_PROJECT_TASKS表に作成されたクラシック・レポートです。

カード・ページ検索結果について

スマート・フィルタ検索ページの検索結果は、カード・レポートとして表示できます。カード・ページは、情報のサブセットを表示するための色彩豊かな方法として機能し、ユーザーが詳細にリンクできるようにします。カード全体、タイトル、サブタイトル、メディアまたはボタンからリンクするアクションを作成できます。例を確認するには、「アクションを使用したカード・ページからのリンク」を参照してください。

8.6.6.3 新しいフィルタの追加

フィルタを右クリックしてコンテキスト・メニューから「フィルタの作成」を選択して、ページ・デザイナに新しいフィルタを追加します。

フィルタは特定のデータベース列にマップされます。新しいフィルタを作成する場合、「チェック・ボックス・グループ」、「入力フィールド」、「ラジオ・グループ」および「範囲」のタイプを作成できます。

「レンダリング」タブでフィルタの順序を変更することで、UIでのフィルタの順序を制御できます。検索タイプ・フィルタは常に1つである必要があることに注意してください。

次の例は、従業員給与をフィルタするための「範囲」フィルタの作成方法を示しています。この例では、フィルタがサンプル・データセット(EMP/DEPT)で使用可能なEMP表のSAL列にマップされています。

「範囲」フィルタを作成するには:

  1. ページ・デザイナでスマート・フィルタ・ページを表示します。
  2. 「レンダリング」タブで、「フィルタ」を右クリックして「フィルタの作成」を選択します。
  3. 新しいフィルタを選択し、プロパティ・エディタで次のフィルタ属性を編集します。
    1. 識別、名前: PX_SALと入力します。Xはページ番号を表します。
    2. 識別、タイプ: 「範囲」を選択します。
    3. ラベル、ラベル: Salaryと入力します
    4. ソース、データベース列: 列がSALであることを確認します。
    5. ソース、データ型: 「NUMBER」を選択します。
    6. 設定、複数の選択: 「複数の選択」を有効にします。
  4. フィルタを静的値リストとして定義します。
    1. LOV、タイプ: 「静的値」を選択します。
    2. LOV、静的値: 表示1、表示2をクリックします。

      「静的値」ダイアログで、次の項目を定義します。

      • 行1:

        表示値: <900と入力します

        戻り値: |900と入力します

      • 行2:

        表示値: 900 - 1#G#300と入力します

        戻り値: 900|1300と入力します

      • 行3:

        表示値: 1#G#300 - 2#G#000を入力します

        戻り値: 1300|2000と入力します

      • 行4:

        表示値: 2#G#000 - 2#G#500と入力します

        戻り値: 2000|2500と入力します

      • 行4:

        表示値: 2#G#000 - 2#G#500と入力します

        戻り値: 2500|と入力します

      • 「OK」をクリックして変更を保存します。

  5. PX_SALフィルタの「サジェスチョン」属性を構成します。
    1. PX_SALフィルタを選択します(まだ選択されていない場合)。
    2. サジェスチョン、静的値: このフィルタのサジェスチョンを決定する方法を選択します。オプションは次のとおりです。
      • 動的: LOVから最初に表示されるエントリを選択します。

      • 静的値: カンマ区切りのLOVを入力します。

      • SQL問合せ: 入力したSQL問合せから値が返されます。

      この例では、「静的値」を選択します。

    3. サジェスチョン、静的値 - 2000|2500と入力します

      これにより、実行時にサジェスチョン・チップに2,000 - 2,500が表示されます。

    4. 変更を保存します。「保存」をクリックします。
  6. ページを表示します。
    1. 右上隅の「ページの保存と実行」をクリックします。
    2. プロンプトが表示されたら、ワークスペースのユーザー名とパスワードを入力し、「サインイン」をクリックします。

      更新されたページが表示されます。次のようなSalaryサジェスチョン・チップが表示されます。

      Salary 2,000 - 2,500 (1)

    3. Salaryサジェスチョン・チップの「Salary」を選択します。

      更新されたページが表示されます。Salaryサジェスチョン・チップが適用されたフィルタ・チップになり、「適用済フィルタ」領域に移動されていることに注意してください。

    4. 新しいフィルタをテストします。フィルタを削除するには、フィルタ名の後に「X」をクリックします。

8.6.6.4 フィルタ属性の編集

属性を編集してフィルタの動作を変更します。

次の例では、「クライアント側のフィルタ」および「依存先」属性を確認して編集し、フィルタの動作を変更する方法を示します。「クライアント側のフィルタ」を有効にすると、ユーザーがリストをフィルタできる検索フィールドが追加されます。「依存先」の場合、1つのフィルタの表示は別のフィルタに依存します。次の例も、サンプル・データセットであるプロジェクト・データ内で使用可能なEBA_PROJECT_TASKS表に基づいて作成されています。

ヒント:

属性のヘルプを表示するには、プロパティ・エディタで属性を選択し、中央ペインで「ヘルプ」タブをクリックします。

フィルタ属性を表示および編集するには:

  1. ページ・デザイナでスマート・フィルタ・ページを表示します。
  2. フィルタ属性P2_PROJECT_IDを表示します。
    1. 「レンダリング」タブ(または左ペイン)で、「検索」リージョンを見つけてフィルタP2_PROJECT_IDを選択します。
    2. プロパティ・エディタ(または右ペイン)で、「リスト・エントリ」グループを検索します。

      ヒント:

      LOVまたは個別値によって返されるアイテムの最大数は5,000です。LOVが5,000を超えるアイテムを返した場合、検索によりLOVが値5,000で切り取られます。開発者としてログインした場合、2,000を超えるLOVアイテムが返されると、APEXでランタイム・エラーが発生します。これらのエラーは、LOVが返す値が多すぎて、検索UIが役に立たないことを示しています。
    3. プロパティ・エディタで、「ソース」グループを見つけます。

      「ソース」グループは、P2_PROJECT_IDフィルタがNumberのデータ型を持つPROJECT_ID列に基づくことを示します。

  3. P2_PROJECT_IDを更新し、クライアント側のフィルタリング属性を有効にします。
    1. 「レンダリング」タブでP2_PROJECT_IDフィルタを選択します(まだ選択していない場合)。
    2. プロパティ・エディタで、「リスト・エントリ」を検索して「クライアント側のフィルタ」を有効にします。このオプションを有効にすると、リスト・エントリの上に検索フィールドがレンダリングされます。
    3. 変更内容を確認します。「ページの保存と実行」をクリックします。

      「プロジェクト」サジェスチョン・チップで「プロジェクト」という名前をクリックします。リストの上部にプロジェクトのフィルタ検索フィールドが表示されます。

    4. 新しいフィルタ・プロジェクト・フィールドをテストします。たとえば、キーワード「develop」を入力すると、「プロジェクト」リストが更新され、そのフレーズを含むフィルタのみが表示されます。
    5. 実行時開発者ツールバーの「ページXX」をクリックして、ページ・デザイナに戻ります。XXはページ番号です。
  4. 「依存先」属性を有効にして、選択したプロジェクトのマイルストンのみを表示します。
    1. 「レンダリング」タブで、「検索」リージョンを見つけてフィルタP2_MILESTONE_IDを選択します。
    2. プロパティ・エディタで、「依存先」を見つけて、「フィルタ」P2_PROJECT_IDを選択します。
    3. 変更内容を確認します。「ページの保存と実行」をクリックします。

      「スマート・フィルタ」ページが表示されます。「マイルストン」サジェスチョン・チップが表示されなくなったことに注意してください。

    4. 「プロジェクト」サジェスチョン・チップの「プロジェクト」をクリックし、Develop Production Partner Portalなどのプロジェクトを選択します

      「マイルストン」サジェスチョン・チップが再び表示されることに注意してください。