7
6

More than 1 year has passed since last update.

Power Apps のコンボボックスを使ってリスト A とリスト B を連携させるテクニック

Posted at

はじめに

Power Apps で、複数の SharePoint リストを用いたアプリを作成する場合があります。例えば、注文を管理するアプリを作成したい際、商品の一覧のリストと、商品に対する注文の処理を記録するリストを用意するような感じです。

  • リスト A:商品マスターリスト

image.png

  • リスト B:注文リスト

image.png

このようなケースにおいて、Power Apps のアプリで商品に対する注文処理を実装しようとする際、商品マスターから商品を選べるようにしたいと思います。今回は、そのような際によく使う方法について紹介します。

参照列を利用する方法もありますが、今回は、テキスト列で商品 (Item) 列を作成している場合における方法を紹介します。

実装アプローチ

とりあえず、以下のように、フォームコントロールを配置します。

image.png

商品の箇所について、テキスト型のため、自由入力できてしまいます。こちらを、商品マスターから選択するように変更します。

image.png

まず、フォームコントロールのデータカード内にコンボボックスを追加します。

image.png

上手く追加できると、以下のように、データカードの他のコントロールと重複したような感じになると思います。

image.png

こちらのコンボボックスのデータソースを商品マスターにします。

image.png

以下の三か所を変更します。

image.png

[DisplayFields]と、[SearchFields]は、商品マスターの列において、コンボボックス内で検索したい列、検索結果で表示したい列となります。今回は、Title 列の名前を変更し、商品名を入れているため、["Title"]とします。また、[SelectMultiple]を false にします。

image.png

問題なく、商品名で検索や表示が出来ました。

image.png

そして、元々存在した、DataCardValue8 の [Default]プロパティを、ComboBox2.Selected.タイトルとします。こちらは、コンボボックスで選択されたもののタイトル列という意味になります。コンボボックスを利用する際、よく利用する表現になります。タイトルの部分は、要件次第で変わります。

image.png

上手く動作すると、以下のような感じになります。

image.png

次に、コンボボックスの位置やサイズを変更し、以下のように、DataCardValue8 を隠すようにします。

image.png

その結果、アプリの利用者は商品列に対して自由入力ができなくなり、コンボボックスから選択する必要が出てきます。しかし、実際には、コンボボックスで選択をすると、後ろに存在する、DataCardValue8 にも値が入り、データが登録されます。

DataCardValue8 自体を削除したい場合は、データカードの[Update]プロパティを、ComboBox2.Selected.タイトルにして、DataCardValue8 を削除します。この場合も、コンボボックスで選択したもののタイトルが商品列に入ります。

image.png

実際にデータを登録してみました。無事に商品の箇所にデータが入っています。

image.png

まとめ

今回は、Power Apps のコンボボックスを使ってリスト A とリスト B を連携させるテクニックについて紹介しました。リレーションシップの設定が出来ないデータソースで複数のテーブルを使用して連携させるケースもあると思うので、一つのアプローチとして参考にしていただけると幸いです。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6