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

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

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

特にLOVバインディングでは、ユーザーは、1つ以上の属性を含むデータ・コレクションの行を表示したリストから、値を選択できます。ユーザーが値を選択すると、別のデータ・コレクションの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 Model tab iconUIモデル)をクリックし、ノードを開いてバインディングのリストを表示します。

  3. LOVのソース・データ・コレクションに関連して選択したものと同じイテレータ・バインディングを選択し、「表示」->「プロパティ・インスペクタ」を選択して、プロパティ・インスペクタを開きます。

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

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

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


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

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

 

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