ADF LOVバインディングを使用した値リストの作成

データ・コントロール・パレットからADF対応Webページに挿入したUIコンポーネントに対して、ADFリスト・バインディングを次のようなLOV(値リスト)モードに設定できます。

注意: UIXページの場合、MessageLovInputコンポーネントでは、ユーザー用の選択リストを表示するためのかわりの方法が用意されています。MessageLovInputでは、前述のコンポーネントリストと異なり、更新対象のコレクションから値リストを取得して表示する必要があります。

特にLOVバインディングでは、ユーザーは、1つ以上の属性を含むデータ・コレクションの行を表示したリストから、値を選択できます。ユーザーが値を選択すると、LOVにより、別のデータ・コレクションの1つ以上の属性が、選択内容に応じて更新されます。リスト・バインディング・エディタをLOVモードで使用して、ソースとターゲットのデータ・コレクション、それらの属性間のバインディング、およびリスト・コンポーネントで表示する属性を定義します。

表示するLOVを定義するには、次のようにします。

  1. ADF対応Webページ用にデータ・コントロール・パレットを開き、目的のリスト・コンポーネントを挿入します

  2. 開いているWebページに対応する構造ウィンドウで、LOVコンポーネント用に作成したリスト・バインディングをダブルクリックします

  3. リスト・バインディング・エディタで、「リスト・バインディング・モード」ドロップダウン・リストから「LOVモード」を選択します。

  4. 「LOVの更新属性」タブをクリックし、LOVで使用するデータ・コレクションを選択します。

    「LOV(ソース)データ・コレクション」は、選択肢の値リストの表示に使用するコレクションを定義します。これは、ビジネス・サービスの「モデル」プロジェクトにあるマスター・データ・コレクションによって制限されないコレクションにする必要があります。

    「ターゲット・データ・コレクション」には、Webページで選択された値を受け取る1つ以上の属性を含むコレクションを指定します。Webページに表示するデータ・コレクションと同じデータ・コレクションを指定してください。

  5. イテレータ・ドロップダウン・リストが、選択されたデータ・コレクションにアクセスするために、指定のイテレータをすでに表示している場合は、選択を変更しません。ドロップダウンが空の場合、「新規」をクリックしてイテレータを作成し、ドロップダウン・リストに表示します。

    警告: ドロップダウン・リストでイテレータの選択内容を変更すると、以前選択していた属性が削除されます。イテレータの選択を変更する前に、選択されていた元の属性を記録しておく必要があります。必要な場合は、「取消」を押し、元の属性の選択結果を更新することなく、バインディング・ダイアログを終了します。

  6. 「追加」をクリックして、2つのデータ・コレクション間で少なくとも1つの属性をバインドします。

    リスト・バインディング・エディタの下部には、値リストの表示に使用するコレクションと、属性選択を受け取るコレクション間の、LOVバインディング属性の候補が表に表示されます。

  7. 「LOV属性」ドロップダウンから、Webページに表示されるフィールドに値を提供する属性を選択します。

  8. 「ターゲット属性」ドロップダウンから、LOVから値を受け取る属性を選択します。

  9. もう一度「追加」をクリックすることで、複数の属性を同じLOVでバインドします。

  10. 「LOVの表示属性」タブをクリックし、LOVウィンドウに表示する属性を選択します。

    「選択済の属性」リストにはいくつでも属性を追加できますが、LOVバインディング属性(更新された値を表示する属性)を追加する必要はありません。たとえば、LOVウィンドウで州とフルネームのリストが表示されていて、選択結果が、その州に対応する2文字の郵便用略称を表すターゲット属性を更新する場合、その略称をLOVウィンドウで表示する必要はありません。

  11. 「OK」をクリックし、バインディング設定を保存します。

新しいLOVバインディング用のメタデータは、バインディング定義ファイル(UIModel.xml)に、次のように追加されます。




<DCControl

       id="SameAsSourceLOVAttributeName"

       SubType="DCListSingleSel"

       IterBinding="DataCollectionIteratorId"

       ApplyValidation="false"

       ListOperMode="0"

       ListIter="OrdersView1Iterator" >

       <AttrNames>

          <Item Value="MySelectedTargetAttribute" />

       </AttrNames>

       <ListAttrNames>

          <Item Value="MySelectedLOVSourceAttribute" />

       </ListAttrNames>

       <ListDisplayAttrNames>

          <Item Value="MySelectedDisplayAttribute1" />

          <Item Value="MySelectedDisplayAttribute2" />

            ...

       </ListDisplayAttrNames>

</DCControl>    

更新されたLOVターゲット属性値を表示するためにコンポーネントを挿入するには、次のようにします。

  1. 「データ・コントロール・パレット」の最上部で、LOVバインディングのターゲット属性として前に選択済の属性を選択します。

  2. 「ドラッグ・アンド・ドロップの形式」リストから、更新後の属性値を表示するために挿入するUIコンポーネントを選択します。

  3. 選択した属性を、データ・コントロール・パネルから、開いているWebページにドラッグします。

LOVで表示する行数を修正するには、次のようにします。

  1. ビジュアル・エディタでドキュメントが開いている状態で、「表示」->「構造」を選択し、構造ウィンドウを表示します。

  2. 「構造」ウィンドウのツールバーで「UIモデル」タブ・アイコン「UIモデル」)をクリックし、ノードを開いてバインディングのリストを表示します。

  3. LOVのソース・データ・コレクション用に選択したイテレータ・バインディングを選択して、「ビュー」->「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを開きます。

  4. プロパティ・インスペクタの「レンジ・サイズ」フィールドで値を編集して[Enter]キーを押します。デフォルトの値である10行から、この値を増やせます。

    -1および0という値に特定の意味があることに注意してください。値-1の場合、使用可能なオブジェクトすべてがコレクションから返されます。値0の場合、コレクションがデータソースから取得を行うために収容しているのと同じ数のオブジェクトが返されます。

レンジ・サイズの操作の詳細は、「ADFイテレータ・バインディングを使用する行フェッチの制限」を参照してください。


ADF値リスト(LOV)バインディングについて

ADF LOVバインディングを使用したマスター/ディテール・フォームの作成
ADF LOVバインディングを使用した入力フォームの作成

 

Copyright © 1997, 2004, Oracle. All rights reserved.