データソースまたはデータ接続を参照してXPath フォームのリスト ボックス エントリを作成した結果、重複したオプションがユーザーに表示されることがあります。フィルタと適切な XPath を使用することによって、これを修正し、リストに一意のオプションだけを表示することができます。
このタスクでは、ユーザーに一意のオプション セットを表示するようにフィルタしたドロップダウン リスト ボックスを作成します。まず、新しい空白のフォームを作成しておきます。
ビューにコントロールを追加する
- [コントロール] 作業ウィンドウを開きます。
- ドロップダウン リスト ボックスをビューに挿入します。
- 1 列の繰り返しテーブルをビューに挿入します。
- 繰り返しテーブルの見出し行に「Source Values」と入力します。
ドロップダウン リスト ボックスを設定する
- ドロップダウン リスト ボックスをダブルクリックします。
- [ドロップダウン リスト ボックスのプロパティ] ダイアログ ボックスの [データ] タブで、[フォームのデータ ソースで値を検索する] をクリックします。
- [エントリ] テキスト ボックスの右にある [XPath の選択] ボタンをクリックし、[グループ1/グループ2/フィールド2] をクリックします。
一意の値を表示するためのフィルタ
- [フィルタ データ] をクリックし、[追加] をクリックします。
- [フィルタ条件の指定] ダイアログ ボックスの 1 つ目のボックスの一覧から [式] をクリックし、次の式を入力します (図 1 を参照)。
not(. = ../preceding::my:グループ2/my:フィールド2) |

図 1 一意の値だけを表示するためにリスト オプションに適用するフィルタ
- [OK] を 4 回クリックします。
確認
フォームをプレビューします。繰り返しテーブルに値の行を複数追加します。このとき、いくつかの値が重複するようにしてください。その後、ドロップダウン リストのオプションを調べます。図 2 に示すように、ドロップダウン リストには一意の値だけが表示されます。これは、XPath 式によって、重複する値がリストに追加されないように設定されているためです。

図 2 フィルタされたリスト ボックスには一意の値だけが表示されます。
InfoPath では、繰り返しテーブルで値を処理してリスト ボックス エントリに追加するときにフィルタが自動的に適用されます。フィルタの XPath 式は、前の行 (my:グループ2) の my:フィールド2 の値が現在の行の my:フィールド2 の値と同じかどうかをチェックします。同じ場合、値はリストに追加されません。
©2005 Greg Collins. All rights reserved. Licensed to Autonomy Systems, LLC for display on InfoPathDev.com.
英文記事:Display Only Unique Options in a List からの翻訳