ここまで作成した営業支援アプリのタブに活動リストを追加するところまでは行ったかと思いますが、まだ張りぼての状態です。
営業案件:活動 = 1:Nの関係となるように開発を行ってみたいと思います。いわゆるリレーショナルデータベースの構造をSharePoint側で作らずにPower Apps側で作成するという試みでもあります。
SharePoint側で作るのは結構突き詰めていくと本格的な開発になってしまいますが、Power Appsでやればそのレベルではありません。
ちなみにN:1の関係の開発はこちらで紹介しています。
営業案件アプリに活動管理機能の追加
スクリーンショットのように活動リストにリンクしたGalleryを新たに追加します(Galleryのプロパティ値であるItemsに活動を設定)。

選択した営業案件だけに関連する活動だけ表示するようにするため、Filter関数を用います。
まずは簡単にFilter関数の説明をします。
[codebox title=”コード”]
Filter([Table], [Logical test], [Logical test],...)
[/codebox]
[Table]には今回SharePointリストの「活動」を設定します。このデータの中で[Logical test]で一致したデータだけ表示する機能です。[Logical test]は複数設定して、その複数条件でフィルターさせることもできます。
前回までの開発で、営業案件の1レコードを選択するとSelectedItem変数に営業案件レコードが格納されます。
そのSelectedItemにおける営業案件IDの値を取得して、その値が活動リストの列における案件IDと一致している活動レコードだけフィルターして表示することで該当の営業案件に関連する活動だけ表示することを実現します。
その関数は以下の通りです。
[codebox title=”コード”]
Filter(活動, 案件ID=SelectedItem.営業案件ID)
[/codebox]
で、それとは別の話なのですが、もう一つ[Logical test]に条件を今回追加しています。
以下の「SearchBox1_1」というオブジェクト名は環境によって異なると思いますが、Gallery上部に配置してあるText inputが該当します。ここに入力した値によって、フィルターされる仕組みにしています。
[codebox title=”コード”]
Filter(活動, 案件ID=SelectedItem.営業案件ID, StartsWith(活動ID, SearchBox1_1.Text))
[/codebox]
[memo title=”MEMO”]StartsWith関数は前方一致の場合に使う関数です。[/memo]
反対に後方一致を行いたい場合はEndsWith関数で実現できます。










コメントを残す