Oracle® Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド 11g Release 1 (11.1.1.7.0) B61007-05 |
|
前 |
次 |
この章では、複数の属性に対する複雑な検索および単一属性への検索を行う検索フォームの作成方法について説明します。複雑な問合せ検索フォームについては、問合せ検索フォーム・モードの設定方法、結果表、保存済みの検索リスト、およびパーソナライズについて説明します。単一属性検索フォームについては、フォーム・レイアウトの構成方法を説明します。さらに、Query-by-Example (QBE)に基づいてフィルタ処理された表の検索についても触れます。
この章の内容は次のとおりです。
開発者は、オブジェクトの既知の属性に基づいてユーザーが検索基準を入力フィールドに入力することのできる検索フォームを作成できます。検索基準は入力テキスト・フィールドに入力するか、ポップアップ・リスト・ピッカーまたはドロップダウン・リスト・ボックスの値リストから選択できます。入力した基準は実行する問合せに組み込まれます。問合せの結果は、表、フォームまたは別のUIコンポーネントとして表示できます。
検索フォームは、再利用およびパーソナライズが可能なリージョン・ベースのコンポーネントです。また、問合せの実行に必要な多くのアクションおよびイテレータ管理操作をカプセル化および自動化します。イテレータの変更および新しいイテレータの作成を行わずに、同一ページに複数の検索フォームを作成できます。
検索フォームは、モデルドリブンのaf:query
およびaf:quickQuery
コンポーネントに基づいています。これらの基礎となるコンポーネントはモデルドリブンであるため、検索フォームはモデルの変更を反映するよう自動的に変更されます。ビュー・レイヤーは変更する必要がありません。
問合せ検索フォームは完全な機能を備えた検索フォームです。クイック問合せ検索フォームは、検索基準が1つしかない簡略化されたフォームです。どちらの検索フォームもフィルタ処理された表と組み合せて結果を表示できるため、検索機能をさらに追加することが可能です。スタンドアロンのフィルタ処理された表を作成し、問合せ検索パネルまたはクイック問合せ検索パネルを使用せずに検索を実行することもできます。
フィルタ処理された表は、それぞれの検索可能列の上に追加のQuery-by-Example(QBE)検索基準フィールドを持つ表です。表のフィルタ処理オプションが有効になっている場合、各列にQBE形式の検索基準を入力して、問合せ結果をフィルタ処理できます。
個々の問合せコンポーネントおよび表コンポーネントの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」および「表およびツリーの使用」を参照してください。
問合せ検索フォームは、複雑なトランザクション検索を行うための標準フォームです。複数の検索基準フィールド(それぞれが組込み演算子のドロップダウン・リストを持つ)がある複雑な検索フォームを作成できます。また、カスタム演算子を追加してリストをカスタマイズすることもできます。問合せ検索フォームでは、値リスト、AND
結合とOR
結合、および将来使用するための検索の保存がサポートされています。
問合せ検索フォームには基本モードと詳細モードがあります。ユーザーは「基本」ボタンまたは「詳細」ボタンを使用して、2つのモードを切り替えることができます。設計時にフォーム・プロパティを宣言的に指定(デフォルトの状態を設定するなど)して、基本または詳細のいずれかにすることができます。図7-1に、3つの検索基準を含む詳細モードの問合せ検索フォームを示します。
詳細モードの問合せフォームに含まれる機能は次のとおりです。
ドロップダウン・リストからの検索基準演算子の選択
カスタム演算子の追加と標準演算子の削除
WHERE
句の結合におけるAND
またはOR
(すべてに一致またはいずれかに一致)の選択
実行時の検索基準フィールドの動的な追加および削除
将来使用するための検索の保存
保存済の検索のパーソナライズ
通常、問合せ検索フォームはいずれかのモードで、関連付けられた結果表またはツリー表とともに使用します。たとえば、図7-1の検索フォームの問合せ結果は、図7-2に示すように、表に表示されます。
基本モードには、ユーザーによる動的な検索基準フィールドの追加以外の詳細モードのすべての機能が含まれます。図7-3に、1つの検索基準フィールドを含む基本モードの問合せ検索フォームを示します。詳細モードで検索基準フィールドの追加に使用される、「保存」ボタンの隣のドロップダウン・リストがないことに注意してください。
どちらのモードでも、Greater Than
およびEqual To
などの演算子をドロップダウン・リストから選択して各検索基準フィールドを変更できます。また、「すべてに一致」または「いずれかに一致」ラジオ・ボタンを使用して検索パネル全体を変更できます。検索フォームでは、ほとんどすべての状況下で部分ページ・レンダリングもサポートされています。たとえば、「Between」
演算子を選択した場合、別の入力フィールドが表示され、範囲の上限を選択できるようになります。
「すべてに一致」
を選択すると、問合せのWHERE
句の検索基準において暗黙的にAND
結合が使用されます。「いずれかに一致」
を選択すると、問合せのWHERE
句において暗黙的にOR
結合が使用されます。例7-1に、図7-1に示した検索基準において「すべてに一致」
を選択した場合、簡略化されたWHERE
句がどのように表示されるかを示します(ビュー基準の実際のWHERE
句は異なります)。
例7-2に、図7-3に示した検索基準において「いずれかに一致」を選択した場合、簡略化されたWHERE
句がどのように表示されるかを示します。
詳細モードの問合せフォームでは、より複雑な問合せを実行するために、ユーザーは問合せパネルに検索基準フィールドを動的に追加できます。ユーザーが作成した検索基準フィールドは削除できますが、ユーザーは既存のフィールドを削除できません。図7-4に、CategoryId基準フィールドを検索フォームに追加するために、「フィールドの追加」ドロップダウン・リストをどのように使用するかを示します。
図7-5に、ユーザー追加の検索基準を示します。その右側には削除アイコンがあります。削除アイコンをクリックすると条件を削除できます。
「すべてに一致」または「いずれかに一致」が選択されている場合に、ユーザーが検索基準の2つ目のインスタンスを動的に追加すると、「すべてに一致」と「いずれかに一致」はともに選択解除されます。ユーザーは、「検索」ボタンをクリックする前に、「すべてに一致」または「いずれかに一致」を再度選択する必要があります。
問合せ検索フォームに基本モードおよび詳細モードの両方を使用する場合、各検索基準フィールドは、基本モードのみでの表示、詳細モードのみでの表示、両方での表示のいずれかに定義できます。ユーザーがあるモードから別のモードに切り替えると、そのモードに定義された検索基準フィールドのみが表示されます。たとえば、基本モード用にA、B、Cの3つの検索フィールドを、詳細モード用にA、B、Dの3つの検索フィールドを問合せに定義したとします。問合せ検索フォームが基本モードの場合、検索基準フィールドA、B、Cが表示されます。問合せ検索フォームが詳細モードの場合、検索基準フィールドA、B、Dが表示されます。その検索フィールドに入力されたすべての検索データは、フォームがそのモードに戻ったときも保持されています。基本モードにおいてユーザーが検索フィールドCに35
と入力し、詳細モードに切り替えた後に再度基本モードに戻ると、フィールドCには値35が入力された状態で再表示されます。
基本または詳細モードを使用するとともに、検索フォームをどの程度表示するかを決定することもできます。デフォルト設定では、フォーム全体が表示されます。圧縮モードまたはシンプル・モードで表示するように、問合せコンポーネントを構成することもできます。圧縮モードでは、ヘッダーや境界線がなく、「保存済の検索」ドロップダウン・リストは開く/閉じるアイコンの横に移動しています。図7-6に、圧縮モードに設定された問合せコンポーネントを示します。
シンプル・モードでは、ヘッダーおよびフッターがなく、通常その領域に表示されるボタンもないコンポーネントが表示されます。図7-7に、シンプル・モードに設定された同じ問合せコンポーネントを示します。
ユーザーは、検索の状態を将来使用するために、実行時に保存済の検索を作成することもできます。図7-8に示すように、「保存」ボタンをクリックして「検索の保存」ダイアログを開き、入力された検索基準値、基本モードまたは詳細モードの状態、結果の表またはコンポーネントのレイアウトを保存できます。ユーザーが作成した保存済の検索はセッション内で保持されます。保存済の検索を、セッションを超えて使用できるようにするには、保存済の検索を格納するための永続データ・ストアを構成する必要があります。Oracle ADFでは、アクセス制御の対象となるデータソース(MDSなど)を使用できます。MDSの使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「MDSによるアプリケーションのカスタマイズ」を参照してください。
保存済の検索を実行するときには、結果コンポーネントのレイアウトも保存されるかどうかを指定できます。保存済の検索を作成し、結果コンポーネントのレイアウトを保存する場合には、MDSが構成されている必要があります。問合せコンポーネントのsaveResultsLayout
属性をalways
に設定した場合は、結果コンポーネントのレイアウトも保存されます。saveResultsLayout
がnever
に設定された場合は、レイアウトは保存されません。
例7-3 問合せ結果コンポーネントのレイアウトのweb.xmlエントリ
<context-param> <description>Saving results layout</description> <param-name>oracle.adf.view.rich.query.SAVE_RESULTS_LAYOUT</param-name> <param-value>true</param-value> </context-param>
saveResultsLayout
が定義されていない場合、レイアウト保存のデフォルトは、web.xml
ファイル内のアプリケーション・レベルのプロパティoracle.adf.view.rich.query.SAVE_RESULTS_LAYOUT
に設定されます。oracle.adf.view.rich.query.SAVE_RESULTS_LAYOUT
のデフォルト値はtrue
です。
保存済の検索のレイアウトをユーザーが変更し、保存しないで先に進もうとすると、警告メッセージが表示されて、保存するように求められ、保存しないと変更内容が失われることが示されます。また、保存済の検索をユーザーが追加または削除し、保存しないで先に進もうとした場合も警告メッセージが表示されます。
表7-1は、saveResultsLayout
およびSAVE_RESULTS_LAYOUT
の値と、結果として生じるアクションを示しています。MDSは、レイアウトを保存するように構成する必要があることに注意してください。
表7-1 結果コンポーネントのレイアウト保存の属性
web.xml SAVE_RESULT_LAYOUT | 問合せコンポーネントのsaveResultsLayout | 結果として生じるアクション |
---|---|---|
true |
常時 |
レイアウトを保存 |
true |
行わない |
保存しない |
true |
未定義 |
レイアウトを保存 |
false |
常時 |
レイアウトを保存 |
false |
行わない |
保存しない |
false |
未定義 |
レイアウトを保存 |
表7-2に、保存済の検索、その作成方式および可用性のシナリオを作成者別に示します。
表7-2 設計時および実行時の保存済の検索
作成者 | 設計時にビュー基準として作成 | 実行時に「保存」ボタンを使用して作成 |
---|---|---|
開発者 |
開発者による保存済の検索(システム検索)は、アプリケーション開発時に作成され、通常はソフトウェア・リリースの一部に含まれます。これらの検索は、設計時にビュー基準として作成されます。通常、アプリケーションのすべてのユーザーが利用可能であり、「保存済の検索」ドロップダウン・リストの下部に表示されます。 |
|
管理者 |
管理者による保存済の検索は、デプロイ前にサイト管理者が作成します。これらの検索は、サイトを一般のエンド・ユーザーが利用可能になる前に作成されます。管理者は、設計時に適切なロールでログインしてJDeveloperを使用し、保存済の検索(またはビュー基準)を作成できます。これらの保存済の検索(またはビュー基準)は、「保存済の検索」ドロップダウン・リストの下部に表示されます。 |
|
エンド・ユーザー |
エンド・ユーザーによる保存済の検索は、実行時に問合せフォームの「保存」ボタンを使用して作成します。これらの検索は、作成したユーザーのみが利用可能です。エンド・ユーザーの保存済の検索は、「保存済の検索」ドロップダウン・リストの最上部に表示されます。 |
図7-9に示すように、エンド・ユーザーは「保存済の検索」ドロップダウン・リストの「パーソナライズ」機能を使用して「保存済の検索のパーソナライズ」ダイアログを表示し、保存済の検索を管理できます。
エンド・ユーザーは、「パーソナライズ」機能を使用して次の操作を実行できます。
ユーザー作成の保存済の検索の更新
ユーザー作成の保存済の検索の削除
保存済の検索のデフォルトとしての設定
保存済の検索の自動実行の設定
「保存済の検索」ドロップダウン・リストでの保存済の検索の表示または非表示の設定
クイック問合せ検索フォームは、単一検索で十分な場合、またはフル問合せ検索を行うための起点とする場合に使用します。問合せ検索フォームおよびクイック問合せ検索フォームはどちらもADF Facesコンポーネントです。クイック問合せ検索フォームには、関連するデータ・コレクションから利用可能な検索可能属性のドロップダウン・リストとともに検索基準フィールドが1つ含まれます。通常は、関連するビュー・コレクションのすべての属性が検索可能属性となります。ユーザーは、選択された属性または表示されるすべての属性に対して検索を実行できます。検索基準フィールド・タイプは対応する属性タイプに自動的に一致します。フォームに組み込まれた「詳細」リンクを使用すると、開発者はクイック問合せ検索フォームから詳細モードの問合せ検索フォームへの切替えを制御するマネージドBeanを作成できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。
図7-10に示すように、フォームが水平方向レイアウトとなるように構成できます。
図7-11に示すように、垂直方向レイアウトも選択できます。
フィルタ処理された表はスタンドアロンとして作成することも、問合せ検索フォームまたはクイック問合せ検索フォームの結果表として作成することもできます。フィルタ処理された表の検索はQuery-by-Exampleに基づいており、QBEテキストまたは日付入力フィールド書式を使用します。検索基準の変更では>
および<=
などの文字を入力できるようにするため、入力バリデータは無効になっています。たとえば、数値列の検索基準として>1500
と入力できます。ワイルドカード文字もサポートされます。列がQBEをサポートしていない場合、検索基準入力フィールドはその列に対してレンダリングを行いません。
フィルタ処理された表の検索基準入力値は、問合せのWHERE
句を作成するためにAND
演算子とともに使用されます。フィルタ処理された表が問合せ検索パネルまたはクイック問合せ検索パネルと関連付けられている場合、複合検索基準値も組み合せてWHERE
句を作成します。
図7-12に、フィルタ処理された結果表を含む問合せ検索フォームを示します。PersonId
フィールドに>100
など、ユーザーがQBE検索基準を入力すると、問合せの結果は、問合せ検索基準とフィルタ処理された表の検索基準のAND
結合となります。
表7-3に、検索値を変更するために使用可能なQBE検索演算子を示します。
問合せ検索フォームは、「すべての問合せ可能な属性」項目を「データ・コントロール」パネルからページにドロップして作成します。ドロップするものとして、検索パネルのみ、検索パネルと結果表、検索パネルとツリー表のいずれかを選択できます。
検索パネルを表とともにドロップすることにした場合、ダイアログでフィルタ処理オプションを選択し、表をフィルタ処理された表にすることができます。
通常は、問合せ検索パネルとともに結果表またはツリー表をドロップします。Jdeveloperでは、結果表またはツリー表が自動的に作成され、問合せパネルと関連付けられます。
問合せパネルのみをドロップし、結果コンポーネントが必要な場合、または結果を表示するコンポーネントがすでに存在する場合、問合せパネルのResultsComponentId
と結果コンポーネントのId
を一致させる必要があります。
検索フォームは、「すべての問合せ可能な属性」を「データ・コントロール」パネルからページにドラッグ・アンド・ドロップして作成します。結果表付きとするか、問合せパネルのみとするかを選択できます。
始める前に:
「データ・コントロール」パネルでアクセッサ戻りコレクションを作成しておく必要があります。
結果表またはツリー表付きの問合せ検索フォームを作成する手順:
「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して「すべての問合せ可能な属性」を表示します。
「すべての問合せ可能な属性」項目をドラッグし、ページまたは構造ウィンドウにドロップします。
注意: 「すべての問合せ可能な属性」をページにドロップすると、検索フォームと、基礎となるコレクションで定義した検索可能属性のそれぞれに対応する検索基準フィールドが作成されます。一部の属性についてのみ検索基準フィールドを作成する場合は、「データ・コントロール」パネルで必要な属性のみを戻すアクセッサ戻りコレクションを作成します。次に、この新しいアクセッサ戻りコレクションから「すべての問合せ可能な属性」をドラッグ・アンド・ドロップします。 |
図7-13に示すように、ポップアップ・メニューから、「作成」→「問合せ」→「表付きADF問合せパネル」または「作成」→「問合せ」→「ツリー表付きADF問合せパネル」を選択します。
「表の列の編集」ダイアログでは、任意の列を並べ替えて表オプションを選択できます。フィルタ処理オプションを選択した場合、表はフィルタ処理された表になります。
フォームの作成後、一部のプロパティの設定やカスタム機能の追加が可能です。これを行う方法の詳細は、7.3項「検索フォーム・プロパティの設定」を参照してください。
検索フォームは、「すべての問合せ可能な属性」を「データ・コントロール」パネルからページにドラッグ・アンド・ドロップして作成します。結果表付きとするか、問合せパネルのみとするかを選択できます。
始める前に:
「データ・コントロール」パネルでアクセッサ戻りコレクションを作成しておく必要があります。
問合せ検索フォームを作成し、別のステップで結果コンポーネントを追加する手順:
「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して「すべての問合せ可能な属性」を表示します。
「すべての問合せ可能な属性」項目をドラッグし、ページまたは構造ウィンドウにドロップします。
注意: 「すべての問合せ可能な属性」をページにドロップすると、検索フォームと、基礎となるコレクションで定義した検索可能属性のそれぞれに対応する検索基準フィールドが作成されます。一部の属性についてのみ検索基準フィールドを作成する場合は、「データ・コントロール」パネルで必要な属性のみを戻すアクセッサ戻りコレクションを作成します。次に、この新しいアクセッサ戻りコレクションから「すべての問合せ可能な属性」をドラッグ・アンド・ドロップします。 |
図7-13に示すように、ポップアップ・メニューから「作成」→「問合せ」→「ADF問合せパネル」を選択します。
まだ結果コンポーネントがない場合は、アクセッサ戻りコレクションをドラッグし、表、ツリー、ツリー表のいずれかのコンポーネントとしてページにドロップします。
表のプロパティ・インスペクタで、「ID」フィールドの値をコピーします。
問合せパネルのプロパティ・インスペクタで、表のIDの値を問合せの「ResultsComponentId」フィールドに貼り付けます。
検索フォームの作成後、一部のプロパティの設定やカスタム機能の追加が可能です。詳細は、7.3項「検索フォーム・プロパティの設定」を参照してください。
保存済の検索をMDSに保存するには、adf-config.xml
ファイルに/persdef
ネームスペースを定義する必要があります。また、metadatapath
の指定など、通常のMDS構成を行うことも必要です。例7-4に、/persdef
ネームスペースを定義したadf-config.xml
ファイルを示します。
例7-4 /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ページ・フロー」が含まれるように設定します。
問合せ検索フォームをページにドロップすると、ページにaf:query
タグが作成されます。問合せと表またはツリー表をドロップした場合、af:query
タグの後にaf:table
タグまたはaf:treeTable
タグが続きます。
af:query
タグの下には問合せのプロパティを定義する複数の属性があります。属性には、次のものが含まれます。
問合せを一意に識別するid
属性。
問合せ結果が表示されるコンポーネントを識別するresultsComponentId
属性。通常、これは問合せとともにページにドロップされた表またはツリー表です。この値は、別の結果コンポーネントのid
に変更できます。詳細は、7.2.2項「問合せ検索フォームを作成した後で結果コンポーネントを追加する方法」を参照してください。
ページ定義ファイルのexecutables
セクションに、iterator、accessorIteratorおよびsearchRegion
エントリが作成されます。例7-5に、ページ定義ファイルのサンプル・コードを示します。
ページ定義ファイルのexecutable
セクションでは、プロパティが次のように設定されます。
iteratorのRangeSize
プロパティは、デフォルト値の25に設定されます。異なるページ・サイズが必要な場合は、この値を編集する必要があります。
iteratorのid
プロパティは、ルート・イテレータに設定されます。この例では、値がSupplierFacadeLocalIterator
に設定されています。
accessorIteratorのBinds
プロパティは、アクセッサに設定されます。この例では、値がproductFindAll
に設定されています。
accessorIteratorのid
プロパティは、アクセッサ・イテレータに設定されます。この例では、値がproductFindAllIterator
に設定されています。
searchRegion
のCriteria
プロパティは、_ImplicitViewCriteria_
に設定されます。
searchRegion
のBinds
プロパティは、検索イテレータに設定されます。この例では、値がproductFindAllIterator
に設定されています。
searchRegion
のid
プロパティは、ImplicitViewCriteriaQuery
に設定されます。
問合せを表またはツリーとともにページにドロップした場合は、ページ定義ファイルのbindings
セクションにtree要素が追加され、Iterbinding
プロパティが検索イテレータに設定されます。この例では、値がproductFindAllIterator
に設定されています。
例 7-5 ページ定義ファイルの検索フォーム・コード
<executables> <variableIterator id="variables"/> <iterator Binds="root" RangeSize="25" DataControl="SupplierFacadeLocal" id="SupplierFacadeLocalIterator"/> <accessorIterator MasterBinding="SupplierFacadeLocalIterator" Binds="productFindAll" RangeSize="25" DataControl="SupplierFacadeLocal" BeanClass="oracle.fodemo.supplier.model.Product" id="productFindAllIterator"/> <searchRegion Criteria="__ImplicitViewCriteria__" Customizer="oracle.jbo.uicli.binding.JUSearchBindingCustomizer" Binds="productFindAllIterator" id="ImplicitViewCriteriaQuery"/> </executables> <bindings> <tree IterBinding="productFindAllIterator" id="productFindAll"> <nodeDefinition DefName="oracle.fodemo.supplier.model.Product"> <AttrNames> <Item Value="listPrice"/> <Item Value="minPrice"/> <Item Value="objectVersionId"/> <Item Value="productId"/> <Item Value="productName"/> </AttrNames> </nodeDefinition> </tree> </bindings>
問合せコンポーネントがJSFページに追加された後に設定可能な検索フォーム・プロパティは、次のとおりです。
結果表または結果コンポーネントのid
「基本」ボタンまたは「詳細」ボタンの表示または非表示
モード・ボタンの位置
デフォルト、シンプルまたは圧縮の表示モード
図7-14に示すように、問合せ検索フォームをページにドロップした後に、プロパティ・インスペクタで他のフォーム・プロパティを編集できます。次のような共通プロパティを設定できます。
「基本」または「詳細」モード・ボタンの有効化または無効化
問合せ検索フォームのIDの設定
結果表などの結果コンポーネントのIDの設定
デフォルト、シンプルまたは圧縮の表示モードの選択
一般的なオプションの1つに、「基本」または「詳細」ボタンの表示または非表示があります。
問合せフォームで「基本」または「詳細」ボタンを有効化または非表示にする手順:
構造ウィンドウで「af:query」をダブルクリックします。
プロパティ・インスペクタで「外観」タブをクリックします。
「基本」または「詳細」モード・ボタンを有効化するには、「ModeChangeVisible」フィールドで「true」を選択します。「基本」または「詳細」モード・ボタンを非表示するには、「ModeChangeVisible」フィールドで「false」を選択します。
クイック問合せ検索フォームを使用すると、ユーザーによるコレクションの単一属性の検索が可能になります。クイック問合せ検索フォームのレイアウトは、水平または垂直に設定できます。クイック問合せ検索フォームは小さい領域のみを使用するため、ページの様々な領域に配置できます。ユーザーによるクイック問合せ検索からフル問合せ検索への切替えを可能にするマネージドBeanを作成できます。マネージドBeanを使用したクイック問合せから問合せへの切替えの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。
結果表またはツリーとともにクイック問合せパネルをドロップした場合、7.4.1項「結果表またはツリー表付きのクイック問合せ検索フォームの作成方法」で説明されているとおり、JDeveloperにより自動的に結果表が作成されます。クイック問合せパネルのみをドロップした後に結果表または結果コンポーネントが必要な場合、または結果を表示するコンポーネントがすでに存在する場合、7.4.2項「クイック問合せ検索フォームを作成した後で結果コンポーネントを追加する方法」で説明されているとおり、クイック問合せのId
と結果コンポーネントのpartialTrigger
値を一致させる必要があります。
検索可能な属性の完全セットを使用してクイック問合せ検索を作成すると同時に、表またはツリー表を結果コンポーネントとして追加できます。
始める前に:
「データ・コントロール」パネルでアクセッサ戻りコレクションを作成します。
結果表付きのクイック問合せ検索フォームを作成する手順:
「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して「すべての問合せ可能な属性」を表示します。
「すべての問合せ可能な属性」項目をドラッグし、ページまたは構造ウィンドウにドロップします。
図7-15に示すように、ポップアップ・メニューから、「作成」→「クイック問合せ」→「表付きADFクイック問合せ」または「作成」→「クイック問合せ」→「ツリー表付きADFクイック問合せ」を選択します。
「表の列の編集」ダイアログでは、任意の列を並べ替えて表オプションを選択できます。フィルタ処理オプションを選択した場合、表はフィルタ処理された表になります。
検索可能な属性の完全セットを使用してクイック問合せ検索を作成した後で、表またはツリー表を結果コンポーネントとして追加できます。
始める前に:
「データ・コントロール」パネルでアクセッサ戻りコレクションを作成します。
クイック問合せ検索フォームを作成し、別のステップで結果コンポーネントを追加する手順:
「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して「すべての問合せ可能な属性」を表示します。
「すべての問合せ可能な属性」項目をドラッグし、ページまたは構造ウィンドウにドロップします。
ポップアップ・メニューから、「作成」→「クイック問合せ」→「ADFクイック問合せパネル」を選択します。
まだ結果コンポーネントがない場合は、アクセッサ戻りコレクションをドラッグし、表、ツリー、ツリー表のいずれかのコンポーネントとしてページにドロップします。
クイック問合せのプロパティ・インスペクタで、「ID」フィールドの値をコピーします。
結果コンポーネント(表など)のプロパティ・インスペクタで、値を「PartialTriggers」フィールドに貼り付けるか入力します。
デフォルトのレイアウト書式は垂直方向です。プロパティ・インスペクタを使用して、レイアウト・オプションを変更できます。
レイアウトを設定する手順:
構造ウィンドウで「af:quickQuery」をダブルクリックします。
プロパティ・インスペクタの「共通」ページで、ドロップダウン・リストから「レイアウト」プロパティを選択して、「デフォルト」、「水平方向」、「垂直」のいずれかを指定します。
クイック問合せ検索フォームをページにドロップすると、af:quickQuery
タグが作成されます。クイック問合せと表またはツリー表をドロップした場合、af:table
タグまたはaf:treeTable
タグも追加されます。
af:quickQuery
タグの下にはクイック問合せのプロパティを定義する複数の属性およびファセットがあります。タグの一部は次のとおりです。
クイック問合せを一意に識別するid
属性。この値は結果表または結果コンポーネントのpartialTriggers
値に一致するように設定する必要があります。クイック問合せと表またはツリー表をドロップすると、これらの値が自動的に割り当てられます。別の結果コンポーネントに変更する方法は、7.4.2項「クイック問合せ検索フォームを作成した後で結果コンポーネントを追加する方法」を参照してください。
クイック問合せのレイアウトをデフォルト、水平または垂直に指定するlayout
属性。
「詳細」リンク(クイック問合せから問合せにモードを変更)の表示に使用するコンポーネントを指定するend
ファセット。この機能の作成の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。
実行時に、クイック問合せ検索フォームには、単一の検索基準フィールドが選択可能な検索基準アイテムのドロップダウン・リストとともに表示されます。検索可能な基準アイテムが1つしかない場合、ドロップダウン・リスト・ボックスはレンダリングされません。表7-4に示すように、選択した検索基準タイプと互換性のある入力コンポーネントが表示されます。たとえば、検索基準タイプがDATEの場合、inputDate
がレンダリングされます。
表7-4 クイック問合せ検索基準フィールド・コンポーネント
属性タイプ | レンダリングされるコンポーネント |
---|---|
|
|
|
|
|
|
また、「検索」ボタンが入力フィールドの右側にレンダリングされます。endファセットを指定すると、endファセットのコンポーネントはすべて表示されます。デフォルトでは、endファセットには「詳細」リンクが含まれます。
複雑な検索では問合せ検索フォームを使用しますが、フィルタ処理された表を使用して単純なQBE検索を実行することもできます。関連付けられた検索パネルのないスタンドアロンのADFのフィルタ処理された表を作成し、QBE形式の検索基準入力フィールドを使用して検索を実行できます。フィルタ処理された表の詳細は、7.1.3項「フィルタ処理された表とQuery-by-Example検索」を参照してください。
表の作成時に、フィルタ処理オプションが有効な場合にそのオプションを選択すると、ほとんどすべての表をフィルタ処理された表にできます。スタンドアロンのフィルタ処理された表を作成するには、次の3つの方法があります。
コンポーネント・パレットからページに表をドロップし、データ・コレクションにバインドしてフィルタ処理オプションを設定できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の「問合せコンポーネントの使用方法」を参照してください。
アクセッサ戻りコレクションをページにドラッグ・アンド・ドロップしてフィルタ処理オプションを設定すると、フィルタ処理された表を作成できます。
「すべての問合せ可能な属性」をページにドロップし、フィルタ処理された表または読取り専用のフィルタ処理された表を作成することもできます。作成されるフィルタ処理された表には、検索可能属性のそれぞれに対応する列があり、各列の上に入力検索フィールドがあります。
af:table
コンポーネントのaf:column
のfilterFeature
属性を使用すると、フィルタ処理可能な各列のQBE検索基準において、大文字と小文字を区別するかどうかを設定できます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の表でのフィルタ処理の有効化に関する項を参照してください。
始める前に:
「データ・コントロール」パネルでアクセッサ戻りコレクションを作成します。
フィルタ処理された表を作成する手順:
「データ・コントロール」パネルから、アクセッサ戻りコレクションを選択し、「名前付き基準」ノードを展開して「すべての問合せ可能な属性」を表示します。
「すべての問合せ可能な属性」項目をドラッグし、ページまたは構造ウィンドウにドロップします。
ポップアップ・メニューから、「作成」→「表」→「ADFフィルタリング済表」または「作成」→「表」→「ADF読取り専用フィルタリング済表」を選択します。
「表の列の編集」ダイアログでは、任意の列を並べ替えて表オプションを選択できます。表はクイック問合せの作成時に自動的に作成されるため、図7-16に示すように、フィルタ処理オプションは自動的に有効になり、ユーザーは選択できません。