ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド
11g リリース2(11.1.2.4.0)
B66160-04
  目次へ移動
目次

前
 
次
 

8 データバインドされた検索フォームの作成

この章では、複数の属性に対する複雑な検索および単一属性への検索を行う検索フォームの作成方法について説明します。複雑な問合せ検索フォームについては、問合せ検索フォーム・モードの設定方法、結果表、保存済みの検索リスト、およびパーソナライズについて説明します。単一属性検索フォームについては、フォーム・レイアウトの構成方法を説明します。さらに、Query-by-Example (QBE)に基づいてフィルタ処理された表の検索についても触れます。

この章には、次の項が含まれます:

8.1 検索フォームの作成の概要

開発者は、オブジェクトの既知の属性に基づいてユーザーが検索基準を入力フィールドに入力することのできる検索フォームを作成できます。検索基準は入力テキスト・フィールドに入力するか、ポップアップ・リスト・ピッカーまたはドロップダウン・リスト・ボックスの値リストから選択できます。入力した基準は実行する問合せに組み込まれます。問合せの結果は、表、フォームまたは別のUIコンポーネントとして表示できます。

検索フォームは、再利用およびパーソナライズが可能なリージョン・ベースのコンポーネントです。また、問合せの実行に必要な多くのアクションおよびイテレータ管理操作をカプセル化および自動化します。イテレータの変更および新しいイテレータの作成を行わずに、同一ページに複数の検索フォームを作成できます。

検索フォームは、モデルドリブンのaf:queryおよびaf:quickQueryコンポーネントに基づいています。これらの基礎となるコンポーネントはモデルドリブンであるため、検索フォームはモデルの変更を反映するよう自動的に変更されます。ビュー・レイヤーは変更する必要がありません。

問合せ検索フォームは完全な機能を備えた検索フォームです。クイック問合せ検索フォームは、検索基準が1つしかない簡略化されたフォームです。どちらの検索フォームもフィルタ処理された表と組み合せて結果を表示できるため、検索機能をさらに追加することが可能です。スタンドアロンのフィルタ処理された表を作成し、問合せ検索パネルまたはクイック問合せ検索パネルを使用せずに検索を実行することもできます。

フィルタ処理された表は、それぞれの検索可能列の上に追加のQuery-by-Example(QBE)検索基準フィールドを持つ表です。表のフィルタ処理オプションが有効になっている場合、各列にQBE形式の検索基準を入力して、問合せ結果をフィルタ処理できます。

個々の問合せコンポーネントおよび表コンポーネントの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」および「表およびツリーの使用」を参照してください。

8.1.1 問合せ検索フォーム

問合せ検索フォームは、複雑なトランザクション検索を行うための標準フォームです。複数の検索基準フィールド(それぞれが組込み演算子のドロップダウン・リストを持つ)がある複雑な検索フォームを作成できます。また、カスタム演算子を追加してリストをカスタマイズすることもできます。問合せ検索フォームでは、値リスト、AND結合とOR結合、および将来使用するための検索の保存がサポートされています。

問合せ検索フォームには基本モードと詳細モードがあります。ユーザーは「基本」ボタンまたは「詳細」ボタンを使用して、2つのモードを切り替えることができます。設計時にフォーム・プロパティを宣言的に指定(デフォルトの状態を設定するなど)して、基本または詳細のいずれかにすることができます。図8-1に、3つの検索基準を含む詳細モードの問合せ検索フォームを示します。

図8-1 3つの検索基準フィールドを含む詳細モードの問合せ検索フォーム

詳細モードの問合せ

詳細モードの問合せフォームに含まれる機能は次のとおりです。

  • ドロップダウン・リストからの検索基準演算子の選択

  • カスタム演算子の追加と標準演算子の削除

  • WHERE句の結合におけるANDまたはOR(すべてに一致またはいずれかに一致)の選択

  • 実行時の検索基準フィールドの動的な追加および削除

  • 将来使用するための検索の保存

  • 保存済の検索のパーソナライズ

通常、問合せ検索フォームはいずれかのモードで、関連付けられた結果表またはツリー表とともに使用します。たとえば、図8-1の検索フォームの問合せ結果は、図8-2に示すように、表に表示されます。

図8-2 問合せ検索の結果表

問合せの結果表

基本モードには、ユーザーによる動的な検索基準フィールドの追加以外の詳細モードのすべての機能が含まれます。図8-3に、3つの検索基準フィールドを含む基本モードの問合せ検索フォームを示します。詳細モードで検索基準フィールドの追加に使用される、「保存」ボタンの隣のドロップダウン・リストがないことに注意してください。

図8-3 3つの検索基準フィールドを含む基本モードの問合せフォーム

基本モードの問合せ

どちらのモードでも、Greater ThanおよびEqual Toなどの演算子をドロップダウン・リストから選択して各検索基準フィールドを変更できます。また、「すべてに一致」または「いずれかに一致」ラジオ・ボタンを使用して検索パネル全体を変更できます。検索フォームでは、ほとんどすべての状況下で部分ページ・レンダリングもサポートされています。たとえば、「Between」演算子を選択した場合、別の入力フィールドが表示され、範囲の上限を選択できるようになります。

「すべてに一致」を選択すると、問合せのWHERE句の検索基準において暗黙的にAND結合が使用されます。「いずれかに一致」を選択すると、問合せのWHERE句において暗黙的にOR結合が使用されます。例8-1に、図8-1に示した検索基準において「すべてに一致」を選択した場合、簡略化されたWHERE句がどのように表示されるかを示します(ビュー基準の実際のWHERE句は異なります)。

例8-1 「すべてに一致」を選択した場合の簡略化されたWHERE句

              WHERE (OrderId=4) AND (Quantity < 50) AND (Price > 100)

例8-2に、図8-3に示した検索基準において「いずれかに一致」を選択した場合、簡略化されたWHERE句がどのように表示されるかを示します。

例8-2 「いずれかに一致」を選択した場合の簡略化されたWHERE句

              WHERE (orderId=4) OR (Quantity = 20) OR (Price > 100)

詳細モードの問合せフォームでは、より複雑な問合せを実行するために、ユーザーは問合せパネルに検索基準フィールドを動的に追加できます。ユーザーが作成した検索基準フィールドは削除できますが、ユーザーは既存のフィールドを削除できません。図8-4に、CategoryId基準フィールドを検索フォームに追加するために、「フィールドの追加」ドロップダウン・リストをどのように使用するかを示します。

図8-4 実行時の検索基準フィールドの動的な追加

検索基準の動的な追加

図8-5に、ユーザー追加の検索基準を示します。その右側には削除アイコンがあります。削除アイコンをクリックすると条件を削除できます。

図8-5 削除アイコンがあるユーザー追加の検索基準

削除の検索基準

「すべてに一致」または「いずれかに一致」が選択されている場合に、ユーザーが検索基準の2つ目のインスタンスを動的に追加すると、「すべてに一致」「いずれかに一致」はともに選択解除されます。ユーザーは、「検索」ボタンをクリックする前に、「すべてに一致」または「いずれかに一致」を再度選択する必要があります。

問合せ検索フォームに基本モードおよび詳細モードの両方を使用する場合、各検索基準フィールドは、基本モードのみでの表示、詳細モードのみでの表示、両方での表示のいずれかに定義できます。ユーザーがあるモードから別のモードに切り替えると、そのモードに定義された検索基準フィールドのみが表示されます。たとえば、基本モード用にA、B、Cの3つの検索フィールドを、詳細モード用にA、B、Dの3つの検索フィールドを問合せに定義したとします。問合せ検索フォームが基本モードの場合、検索基準フィールドA、B、Cが表示されます。問合せ検索フォームが詳細モードの場合、検索基準フィールドA、B、Dが表示されます。その検索フィールドに入力されたすべての検索データは、フォームがそのモードに戻ったときも保持されています。基本モードにおいてユーザーが検索フィールドCに35と入力し、詳細モードに切り替えた後に再度基本モードに戻ると、フィールドCには値35が入力された状態で再表示されます。

基本または詳細モードを使用するとともに、検索フォームをどの程度表示するかを決定することもできます。デフォルト設定では、フォーム全体が表示されます。圧縮モードまたはシンプル・モードで表示するように、問合せコンポーネントを構成することもできます。圧縮モードでは、ヘッダーや境界線がなく、「保存済の検索」ドロップダウン・リストは開く/閉じるアイコンの横に移動しています。図8-6に、圧縮モードに設定された問合せコンポーネントを示します。

図8-6 コンパクト・モードのqueryコンポーネント

圧縮モードの問合せ

シンプル・モードでは、ヘッダーおよびフッターがなく、通常その領域に表示されるボタンもないコンポーネントが表示されます。図8-7に、シンプル・モードに設定された同じ問合せコンポーネントを示します。

図8-7 簡易モードのqueryコンポーネント

シンプル・モードの問合せ。

ユーザーは、検索の状態を将来使用するために、実行時に保存済の検索を作成することもできます。図8-8に示すように、「保存」ボタンをクリックして「検索の保存」ダイアログを開き、入力された検索基準値、基本モードまたは詳細モードの状態、結果の表またはコンポーネントのレイアウトを保存できます。ユーザーが作成した保存済の検索はセッション内で保持されます。保存済の検索を、セッションを超えて使用できるようにするには、保存済の検索を格納するための永続データ・ストアを構成する必要があります。Oracle ADFでは、アクセス制御の対象となるデータソース(MDSなど)を使用できます。MDSの使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。

図8-8 実行時の「保存済の検索」ダイアログ・ウィンドウ

「保存済の検索」ダイアログ。

表8-1に、保存済の検索、その作成方式および可用性のシナリオを作成者別に示します。

表8-1 設計時および実行時の保存済の検索

作成者 設計時にビュー基準として作成 実行時に「保存」ボタンを使用して作成

開発者

開発者による保存済の検索(システム検索)は、アプリケーション開発時に作成され、通常はソフトウェア・リリースの一部に含まれます。これらの検索は、設計時にビュー基準として作成されます。通常、アプリケーションのすべてのユーザーが利用可能であり、「保存済の検索」ドロップダウン・リストの下部に表示されます。


管理者


管理者による保存済の検索は、デプロイ前にサイト管理者が作成します。これらの検索は、サイトを一般のエンド・ユーザーが利用可能になる前に作成されます。管理者は、設計時に適切なロールでログインしてJDeveloperを使用し、保存済の検索(またはビュー基準)を作成できます。これらの保存済の検索(またはビュー基準)は、「保存済の検索」ドロップダウン・リストの下部に表示されます。

エンド・ユーザー


エンド・ユーザーによる保存済の検索は、実行時に問合せフォームの「保存」ボタンを使用して作成します。これらの検索は、作成したユーザーのみが利用可能です。エンド・ユーザーの保存済の検索は、「保存済の検索」ドロップダウン・リストの最上部に表示されます。


図8-9に示すように、エンド・ユーザーは「保存済の検索」ドロップダウン・リストの「パーソナライズ」機能を使用して「保存済の検索のパーソナライズ」ダイアログを表示し、保存済の検索を管理できます。

エンド・ユーザーは、「パーソナライズ」機能を使用して次の操作を実行できます。

  • ユーザー作成の保存済の検索の更新

  • ユーザー作成の保存済の検索の削除

  • 保存済の検索のデフォルトとしての設定

  • 保存済の検索の自動実行の設定

  • 「保存済の検索」ドロップダウン・リストでの保存済の検索の表示または非表示の設定

図8-9 「保存済の検索のパーソナライズ」ダイアログ

「保存済の検索のパーソナライズ」ダイアログ

8.1.2 クイック問合せ検索フォーム

クイック問合せ検索フォームは、単一検索で十分な場合、またはフル問合せ検索を行うための起点とする場合に使用します。問合せ検索フォームおよびクイック問合せ検索フォームはどちらもADF Facesコンポーネントです。クイック問合せ検索フォームには、関連するデータ・コレクションから利用可能な検索可能属性のドロップダウン・リストとともに検索基準フィールドが1つ含まれます。通常は、関連するビュー・コレクションのすべての属性が検索可能属性となります。ユーザーは、選択された属性または表示されるすべての属性に対して検索を実行できます。検索基準フィールド・タイプは対応する属性タイプに自動的に一致します。フォームに組み込まれた「詳細」リンクを使用すると、開発者はクイック問合せ検索フォームから詳細モードの問合せ検索フォームへの切替えを制御するマネージドBeanを作成できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。

図8-10に示すように、フォームが水平方向レイアウトとなるように構成できます。

図8-10 水平方向レイアウトのクイック問合せ検索フォーム

水平方向モードのクイック問合せ

図8-11に示すように、垂直方向レイアウトも選択できます。

図8-11 垂直方向レイアウトのクイック問合せ検索フォーム

垂直方向モードのクイック問合せ

8.1.3 フィルタ処理された表とQuery-by-Example検索

フィルタ処理された表はスタンドアロンとして作成することも、問合せ検索フォームまたはクイック問合せ検索フォームの結果表として作成することもできます。フィルタ処理された表の検索はQuery-by-Exampleに基づいており、QBEテキストまたは日付入力フィールド書式を使用します。検索条件を変更するための>および<=などの文字の入力を可能にするため、入力バリデータは無効化されています。たとえば、数値列の検索条件として>1500を入力できます。ワイルドカード文字もサポートされています。列でQBEがサポートされていない場合、検索条件入力フィールドはその列にレンダリングされません。

フィルタ処理された表の検索基準入力値は、問合せのWHERE句を作成するためにAND演算子とともに使用されます。フィルタ処理された表が問合せ検索パネルまたはクイック問合せ検索パネルと関連付けられている場合、複合検索基準値も組み合せてWHERE句を作成します。

図8-12に、フィルタ処理された結果表を含む問合せ検索フォームを示します。idフィールドに>200など、ユーザーがQBE検索基準を入力すると、問合せの結果は、問合せ検索基準とフィルタ処理された表の検索基準のAND結合となります。

図8-12 フィルタ処理された表を含む問合せ検索フォーム

フィルタ処理された表を含む問合せ。

表8-2に、検索値を変更するために使用可能なQBE検索演算子を示します。

表8-2 Query-by-Example検索基準演算子

演算子 説明

>

次より大きい

<


次より小さい

>=

次より大きいか等しい

<=


次より小さいか等しい

AND

および

OR

または


8.2 問合せ検索フォームの作成

問合せ検索フォームは、名前付き基準を「データ・コントロール」パネルからページにドロップして作成します。ドロップするものとして、検索パネルのみ、検索パネルと結果表、検索パネルとツリー表のいずれかを選択できます。

検索パネルを表とともにドロップすることにした場合、ダイアログでフィルタ処理オプションを選択し、表をフィルタ処理された表にすることができます。

通常は、問合せ検索パネルとともに結果表またはツリー表をドロップします。Jdeveloperでは、結果表またはツリー表が自動的に作成され、問合せパネルと関連付けられます。

問合せパネルのみをドロップし、結果コンポーネントが必要な場合、または結果を表示するコンポーネントがすでに存在する場合、問合せパネルのResultsComponentIdと結果コンポーネントのIdを一致させる必要があります。

8.2.1 結果表またはツリー表付きの問合せ検索フォームの作成方法

検索フォームは、名前付き基準を「データ・コントロール」パネルからページにドラッグ・アンド・ドロップして作成します。結果表付きとするか、問合せパネルのみとするかを選択できます。

始める前に:

「データ・コントロール」パネルでアクセッサ戻りコレクションを作成しておく必要があります。

結果表またはツリー表付きの問合せ検索フォームを作成する手順:

  1. 「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して名前付き基準のリストを表示します。

  2. 名前付き基準項目をドラッグし、ページまたは「構造」ウィンドウにドロップします。


    注意:

    「すべての問合せ可能な属性」をページにドロップすると、検索フォームと、基礎となるコレクションで定義した検索可能属性のそれぞれに対応する検索基準フィールドが作成されます。それらの属性のうちの一部についてのみ検索基準フィールドを作成する場合、必要な属性の名前付き基準を作成します。


  3. 図8-13に示すように、ポップアップ・メニューから、「作成」→「問合せ」→「表付きADF問合せパネル」または「作成」→「問合せ」→「ツリー表付きADF問合せパネル」を選択します。

    図8-13 「データ・コントロール」パネルの「問合せ」ポップアップ・メニュー

    データ・コントロールの「問合せ」ポップアップ・メニュー
  4. 「表の列の編集」ダイアログでは、任意の列を並べ替えて表オプションを選択できます。フィルタ処理オプションを選択した場合、表はフィルタ処理された表になります。

フォームの作成後、一部のプロパティの設定やカスタム機能の追加が可能です。これを行う方法の詳細は、8.3項「検索フォーム・プロパティの設定」を参照してください。

8.2.2 問合せ検索フォームを作成した後で結果コンポーネントを追加する方法

検索フォームは、名前付き基準を「データ・コントロール」パネルからページにドラッグ・アンド・ドロップして作成します。結果表付きとするか、問合せパネルのみとするかを選択できます。

始める前に:

「データ・コントロール」パネルでアクセッサ戻りコレクションを作成しておく必要があります。

問合せ検索フォームを作成し、別のステップで結果コンポーネントを追加する手順:

  1. 「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して名前付き基準のリストを表示します。

  2. 名前付き基準項目をドラッグし、ページまたは「構造」ウィンドウにドロップします。


    注意:

    「すべての問合せ可能な属性」をページにドロップすると、検索フォームと、基礎となるコレクションで定義した検索可能属性のそれぞれに対応する検索基準フィールドが作成されます。それらの属性のうちの一部についてのみ検索基準フィールドを作成する場合、必要な属性の名前付き基準を作成します。


  3. 図8-13に示すように、ポップアップ・メニューから「作成」→「問合せ」→「ADF問合せパネル」を選択します。

  4. まだ結果コンポーネントがない場合は、アクセッサ戻りコレクションをドラッグし、表、ツリー、ツリー表のいずれかのコンポーネントとしてページにドロップします。

  5. 表のプロパティ・インスペクタで、「ID」フィールドの値をコピーします。

  6. 問合せパネルのプロパティ・インスペクタで、表のIDの値を問合せの「ResultsComponentId」フィールドに貼り付けます。

検索フォームの作成後、一部のプロパティの設定やカスタム機能の追加が可能です。詳細は、8.3項「検索フォーム・プロパティの設定」を参照してください。

8.2.3 保存済の検索をMDSに保存する方法

保存済の検索をMDSに保存するには、adf-config.xmlファイルに/persdefネームスペースを定義する必要があります。また、metadatapathの指定など、通常のMDS構成を行うことも必要です。例8-3に、/persdefネームスペースを定義したadf-config.xmlファイルを示します。

例8-3 /persdefネームスペースを定義したadf-config.xmlの例

<persistence-config>
   <metadata-namespaces>
        <namespace path="/persdef" metadata-store-usage="mdsstore"/>
   </metadata-namespaces>
   <metadata-store-usages>
        <metadata-store-usage id="mdsstore" deploy-target="true"
                 default-cust-store="true"/>
        </metadata-store-usage>
   </metadata-store-usages>
</persistence-config>

追加した保存済の検索をユーザーが次にログインしたときに使用できるようにするには、cust-configをMDS構成の一部として定義する必要があります。cust-configとMDSの設定の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のカスタマイズ・クラスの作成方法に関する項を参照してください。

結果コンポーネントのレイアウトも保存する場合は、アプリケーションにADF PageFlow RuntimeライブラリとADF Controller Runtimeライブラリをインストールしておく必要があります。プロジェクトのテクノロジ・スコープに「ADFページ・フロー」が含まれるように設定します。

8.2.4 問合せフォーム作成時の処理

問合せ検索フォームをページにドロップすると、ページにaf:queryタグが作成されます。問合せと表またはツリー表をドロップした場合、af:queryタグの後にaf:tableタグまたはaf:treeTableタグが続きます。

af:queryタグの下には問合せのプロパティを定義する複数の属性があります。属性には、次のものが含まれます。

ページ定義ファイルのexecutablesセクションに、iterator、accessorIteratorおよびsearchRegionエントリが作成されます。例8-4に、ページ定義ファイルのサンプル・コードを示します。

ページ定義ファイルのexecutableセクションでは、プロパティが次のように設定されます。

  • iteratorのRangeSizeプロパティは、デフォルト値の25に設定されます。異なるページ・サイズが必要な場合は、この値を編集する必要があります。

  • iteratorのidプロパティは、ルート・イテレータに設定されます。この例では、値がOrdersSessionEJBLocalIteratorに設定されています。

  • accessorIteratorのBindsプロパティは、アクセッサに設定されます。この例では、値がitemFindAllに設定されています。

  • accessorIteratorのidプロパティは、アクセッサ・イテレータに設定されます。この例では、値がitemFindAllIteratorに設定されています。

  • searchRegionCriteriaプロパティは、ItemCriteriaに設定されます。

  • searchRegionBindsプロパティは、検索イテレータに設定されます。この例では、値がitemFindAllIteratorに設定されています。

  • searchRegionidプロパティは、ItemCriteriaQueryに設定されます。

問合せを表またはツリーとともにページにドロップした場合は、ページ定義ファイルのbindingsセクションにtree要素が追加され、Iterbindingプロパティが検索イテレータに設定されます。この例では、値がitemFindAllIteratorに設定されています。

例 8-4 ページ定義ファイルの検索フォーム・コード

  <executables>
    <variableIterator id="variables"/>
    <iterator Binds="root" RangeSize="25" DataControl="OrdersSessionEJBLocal"
              id="OrdersSessionEJBLocalIterator"/>
    <accessorIterator MasterBinding="OrdersSessionEJBLocalIterator"
                      Binds="itemFindAll" RangeSize="25"
                      DataControl="OrdersSessionEJBLocal"
                      BeanClass="model.Item"
                      id="itemFindAllIterator"/>
    <searchRegion Criteria="ItemCriteria"
                  Customizer="oracle.jbo.uicli.binding.JUSearchBindingCustomizer"
                  Binds="itemFindAllIterator"
                  id="ItemCriteriaQuery"/>
  </executables>
  <bindings>
    <tree IterBinding="itemFindAllIterator" id="itemFindAll">
      <nodeDefinition DefName="model.Item">
        <AttrNames>
          <Item Value="itemId"/>
          <Item Value="ordId"/>
          <Item Value="price"/>
          <Item Value="quantity"/>
          <Item Value="quantityShipped"/>
        </AttrNames>
      </nodeDefinition>
    </tree>
  </bindings>

8.2.5 実行時に行われる処理: 検索フォーム

実行時には、検索フォームはページ上の検索パネルとして表示されます。検索パネルは、基本モードまたは詳細モードで表示されます。

ユーザーが検索基準を入力して「検索」をクリックすると、問合せが実行され、関連付けられた表、ツリー表またはコンポーネントに結果が表示されます。

8.3 検索フォーム・プロパティの設定

問合せコンポーネントがJSFページに追加された後に設定可能な検索フォーム・プロパティは、次のとおりです。

8.3.1 問合せコンポーネントに検索フォーム・プロパティを設定する方法

図8-14に示すように、問合せ検索フォームをページにドロップした後に、プロパティ・インスペクタで他のフォーム・プロパティを編集できます。次のような共通プロパティを設定できます。

  • 「基本」または「詳細」モード・ボタンの有効化または無効化

  • 問合せ検索フォームのIDの設定

  • 結果表などの結果コンポーネントのIDの設定

  • デフォルト、シンプルまたは圧縮の表示モードの選択

図8-14 「問合せ」コンポーネントのプロパティ・インスペクタ

「問合せ」コンポーネントのプロパティ・インスペクタでの表示

一般的なオプションの1つに、「基本」または「詳細」ボタンの表示または非表示があります。

問合せフォームで「基本」または「詳細」ボタンを有効化または非表示にする手順:

  1. 構造ウィンドウで「af:query」をダブルクリックします。

  2. プロパティ・インスペクタで「外観」タブをクリックします。

  3. 「基本」または「詳細」モード・ボタンを有効化するには、「ModeChangeVisible」フィールドで「true」を選択します。「基本」または「詳細」モード・ボタンを非表示するには、「ModeChangeVisible」フィールドで「false」を選択します。

8.4 クイック問合せ検索フォームの作成

クイック問合せ検索フォームを使用すると、ユーザーによるコレクションの単一属性の検索が可能になります。クイック問合せ検索フォームのレイアウトは、水平または垂直に設定できます。クイック問合せ検索フォームは小さい領域のみを使用するため、ページの様々な領域に配置できます。ユーザーによるクイック問合せ検索からフル問合せ検索への切替えを可能にするマネージドBeanを作成できます。マネージドBeanを使用したクイック問合せから問合せへの切替えの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。

結果表またはツリーとともにクイック問合せパネルをドロップした場合、8.4.1項「結果表またはツリー表付きのクイック問合せ検索フォームの作成方法」で説明されているとおり、JDeveloperにより自動的に結果表が作成されます。クイック問合せパネルのみをドロップした後に結果表または結果コンポーネントが必要な場合、または結果を表示するコンポーネントがすでに存在する場合、8.4.2項「クイック問合せ検索フォームを作成した後で結果コンポーネントを追加する方法」で説明されているとおり、クイック問合せのIdと結果コンポーネントのpartialTrigger値を一致させる必要があります。

8.4.1 結果表またはツリー表付きのクイック問合せ検索フォームの作成方法

検索可能な属性の完全セットを使用してクイック問合せ検索を作成すると同時に、表またはツリー表を結果コンポーネントとして追加できます。

始める前に:

「データ・コントロール」パネルでアクセッサ戻りコレクションを作成します。

結果表付きのクイック問合せ検索フォームを作成する手順:

  1. 「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して名前付き基準のリストを表示します。

  2. 名前付き基準項目をドラッグし、ページまたは「構造」ウィンドウにドロップします。

  3. 図8-15に示すように、ポップアップ・メニューから、「作成」→「クイック問合せ」→「表付きADFクイック問合せ」または「作成」→「クイック問合せ」→「ツリー表付きADFクイック問合せ」を選択します。

  4. 「表の列の編集」ダイアログでは、任意の列を並べ替えて表オプションを選択できます。フィルタ処理オプションを選択した場合、表はフィルタ処理された表になります。

図8-15 「データ・コントロール」パネルの「クイック問合せ」ポップアップ・メニュー

「クイック問合せ」ポップアップ・メニュー

8.4.2 クイック問合せ検索フォームを作成した後で結果コンポーネントを追加する方法

検索可能な属性の完全セットを使用してクイック問合せ検索を作成した後で、表またはツリー表を結果コンポーネントとして追加できます。

始める前に:

「データ・コントロール」パネルでアクセッサ戻りコレクションを作成します。

クイック問合せ検索フォームを作成し、別のステップで結果コンポーネントを追加する手順:

  1. 「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して名前付き基準のリストを表示します。

  2. 名前付き基準項目をドラッグし、ページまたは「構造」ウィンドウにドロップします。

  3. ポップアップ・メニューから、「作成」→「クイック問合せ」→「ADFクイック問合せパネル」を選択します。

  4. まだ結果コンポーネントがない場合は、アクセッサ戻りコレクションをドラッグし、表、ツリー、ツリー表のいずれかのコンポーネントとしてページにドロップします。

  5. クイック問合せのプロパティ・インスペクタで、「ID」フィールドの値をコピーします。

  6. 結果コンポーネント(表など)のプロパティ・インスペクタで、値を「PartialTriggers」フィールドに貼り付けるか入力します。

8.4.3 クイック問合せのレイアウト書式を設定する方法

デフォルトのレイアウト書式は垂直方向です。プロパティ・インスペクタを使用して、レイアウト・オプションを変更できます。

レイアウトを設定する手順:

  1. 構造ウィンドウで「af:quickQuery」をダブルクリックします。

  2. プロパティ・インスペクタの「共通」ページで、ドロップダウン・リストから「レイアウト」プロパティを選択して、「デフォルト」「水平方向」「垂直」のいずれかを指定します。

8.4.4 クイック問合せ検索フォームの作成時の処理

クイック問合せ検索フォームをページにドロップすると、af:quickQueryタグが作成されます。クイック問合せと表またはツリー表をドロップした場合、af:tableタグまたはaf:treeTableタグも追加されます。

af:quickQueryタグの下にはクイック問合せのプロパティを定義する複数の属性およびファセットがあります。タグの一部は次のとおりです。

  • クイック問合せを一意に識別するid属性。この値は結果表または結果コンポーネントのpartialTriggers値に一致するように設定する必要があります。クイック問合せと表またはツリー表をドロップすると、JDeveloperはこれらの値を自動的に割り当てます。別の結果コンポーネントに変更する方法は、8.4.2項「クイック問合せ検索フォームを作成した後で結果コンポーネントを追加する方法」を参照してください。

  • クイック問合せのレイアウトをデフォルト、水平または垂直に指定するlayout属性。

  • 「詳細」リンク(クイック問合せから問合せにモードを変更)の表示に使用するコンポーネントを指定するendファセット。この機能の作成の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。

8.4.5 実行時に行われる処理: クイック問合せ

実行時に、クイック問合せ検索フォームには、単一の検索基準フィールドが選択可能な検索基準アイテムのドロップダウン・リストとともに表示されます。検索可能な基準アイテムが1つしかない場合、ドロップダウン・リスト・ボックスはレンダリングされません。表8-3に示すように、選択した検索基準タイプと互換性のある入力コンポーネントが表示されます。たとえば、検索基準タイプがDATEの場合、inputDateがレンダリングされます。

表8-3 クイック問合せ検索基準フィールド・コンポーネント

属性タイプ レンダリングされるコンポーネント

DATE

af:inputDate

VARCHAR

af:inputText

NUMBER

af:inputNumberSpinBox


また、「検索」ボタンが入力フィールドの右側にレンダリングされます。endファセットを指定すると、endファセットのコンポーネントはすべて表示されます。デフォルトでは、endファセットには「詳細」リンクが含まれます。

8.5 スタンドアロンのフィルタ処理された検索表の作成

複雑な検索では問合せ検索フォームを使用しますが、フィルタ処理された表を使用して単純なQBE検索を実行することもできます。関連付けられた検索パネルのないスタンドアロンのADFのフィルタ処理された表を作成し、QBE形式の検索基準入力フィールドを使用して検索を実行できます。フィルタ処理された表の詳細は、8.1.3項「フィルタ処理された表とQuery-by-Example検索」を参照してください。

表の作成時に、フィルタ処理オプションが有効な場合にそのオプションを選択すると、ほとんどすべての表をフィルタ処理された表にできます。スタンドアロンのフィルタ処理された表を作成するには、次の3つの方法があります。

af:tableコンポーネントのaf:columnfilterFeature属性を使用すると、フィルタ処理可能な各列のQBE検索基準において、大文字と小文字を区別するかどうかを設定できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の表でのフィルタ処理の有効化に関する項を参照してください。

始める前に:

「データ・コントロール」パネルでアクセッサ戻りコレクションを作成します。

フィルタ処理された表を作成する手順:

  1. 「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開してすべての名前付き基準のリストを表示します。

  2. 名前付き基準項目をドラッグし、ページまたは「構造」ウィンドウにドロップします。

  3. ポップアップ・メニューから、「作成」→「表」→「ADFフィルタリング済表」または「作成」→「表」→「ADF読取り専用フィルタリング済表」を選択します。

  4. 「表の列の編集」ダイアログでは、任意の列を並べ替えて表オプションを選択できます。表はクイック問合せの作成時に自動的に作成されるため、図8-16に示すように、フィルタ処理オプションは自動的に有効になり、ユーザーは選択できません。

図8-16 フィルタ処理された表の「表の列の編集」ダイアログ

フィルタ処理された表の「表の列の編集」ダイアログ