InfoPath

InfoPath SharePoint リスト/ライブラリデータのクエリ – 部分一致 –

  • 2011.08.30
  • 株式会社イルミネート・ジャパン

完全一致クエリの場合、SharePoint リスト クエリのパラメーターをセットしてからクエリ実行が行えましたが、部分一致クエリは標準ではできません。そのため部分一致クエリを行いたい場合は、全件取得して表示してから、InfoPath フォームへの表示に対してフィルターをかける方法をとります。

下図のようなリストがあったとします。
0801

1. InfoPath で、検索対象のリスト/ライブラリへの受信データ接続を作成します。
・ [データ接続] タブの [外部データの取り込み] – [SharePoint リスト] をクリックし、
データ接続ウィザードで、次のように設定

SharePoint サイトの場所 リスト/ライブラリがあるサイト URL
リストまたはライブラリの選択 対象のリスト/ライブラリを選択
フィールドの選択 InfoPath フォーム内にクエリ結果として表示したいフィールド (列) を選択
データ接続の名前 任意 (既定はリスト/ライブラリ名となる)
フォームを開くとき自動的にデータを取得する チェックを外す

2. フォームを次のようにデザインします。
・ テキストボックス (フィールド名:keyword)
・ ボタン
・ 繰り返しテーブル
[SharePoint リスト名] セカンダリ データソースの [dataFields]/[d:SharePointListItem_RW] 繰り返しグループを
ドラッグアンドドロップして配置
0802

3. ボタンのルールを次のように設定

[動作]

データ接続を利用してクエリを送信する

[SharePoint リスト名] データ接続を指定

4. 繰り返しテーブルに次のルールを設定します。

[書式設定]

[条件]

[SharePoint リスト名] セカンダリ データソースの [dataFields]/[d:SharePointListItem_RW]/[クエリに利用する列] を選択

が次の値を含まない

メインデータソースの keyword フィールド

[このコントロールを表示しない] にチェックを入れる

以上でフォームが完成です。
テキストボックスにキーワードを入力し、ボタンをクリックすると、部分一致でフィルターされた結果が表示されます。
0805

※ InfoPath フォーム Web パーツを利用するなどブラウザーフォームとして利用する場合には気にしなくても大丈夫ですが、
このフォームを InfoPath クライアントで開いて利用する場合には、いったん全件データを取得してから表示フィルターをかけて
いるため、取得データ件数によってはフォームのパフォーマンスについて注意が必要です。

奥田理恵

お問い合わせ

イルミネート・ジャパンが提供するトレーニングやサービスに関するご相談など、
お気軽にご連絡ください。

担当者に相談する