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

前回の投稿で、SharePoint リスト/ライブラリ内のデータを検索し、一覧表示するフォームの作成方法をご紹介しました。前回は特定の列に対する完全一致クエリを行っていましたが、部分一致のクエリにしたい場合もあるかと思います。今回は部分一致のクエリ結果を表示する方法をご紹介します。

完全一致クエリの場合、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 クライアントで開いて利用する場合には、いったん全件データを取得してから表示フィルターをかけて
    いるため、取得データ件数によってはフォームのパフォーマンスについて注意が必要です。

奥田理恵

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中