---
title: "【O365ライセンス内でPowerApps開発】 Vol.11 営業支援アプリの作成（タブレットレイアウト）のタブに活動リストの関連付けとFilter機能説明"
url: "https://www.geekfujiwara.com/tech/1112/"
author: ギークフジワラ
published: "2019-12-19T06:52:53+00:00"
updated: "2026-10-23T21:49:25+00:00"
categories: [Power Platform, Technology]
tags: [Microsoft, Office, Power Platform, PowerApps]
description: "ここまで作成した営業支援アプリのタブに活動リストを追加するところまでは行ったかと思いますが、まだ張りぼての状態です。 営業案件:活動 = 1:Nの関係となるように開発を行ってみたいと思います。いわゆるリレーショナルデータベースの構造をSha…"
---

# 【O365ライセンス内でPowerApps開発】 Vol.11 営業支援アプリの作成（タブレットレイアウト）のタブに活動リストの関連付けとFilter機能説明

ここまで作成した営業支援アプリのタブに活動リストを追加するところまでは行ったかと思いますが、まだ張りぼての状態です。

営業案件:活動 = 1:Nの関係となるように開発を行ってみたいと思います。いわゆるリレーショナルデータベースの構造をSharePoint側で作らずにPower Apps側で作成するという試みでもあります。

SharePoint側で作るのは結構突き詰めていくと本格的な開発になってしまいますが、Power Appsでやればそのレベルではありません。

<div class="speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf"><div class="speech-person"><figure class="speech-icon"></figure></div><div class="speech-balloon">ちなみにN:1の関係の開発はこちらで紹介しています。

</div></div>\[sc\_blogcard url="https://www.geekfujiwara.com/tech/1116/"\]

## 営業案件アプリに活動管理機能の追加

スクリーンショットのように活動リストにリンクしたGalleryを新たに追加します（Galleryのプロパティ値であるItemsに活動を設定）。

<figure class="wp-block-image size-large">![【O365ライセンス内でPowerApps開発】 Vol.11 営業支援アプリの作成（タブレットレイアウト）のタブに活動リストの関連付けとFilter機能説明](https://www.geekfujiwara.com/wp-content/uploads/2019/12/gphotos-1112-1-1024x448.png)</figure>選択した営業案件だけに関連する活動だけ表示するようにするため、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関数で実現できます。

Search関数とFilter関数の使い分けは、今回のような関連するレコードのみ表示するようにしたいという観点、あるいは「継承」という観点が大事になってきます。

## 営業案件レコードの選択すると関連する活動が表示されるようにする

次に、営業案件のレコード選択の動作と連動するようにします。

Galleryの隣にフォーム、Addアイコン、Saveアイコンを追加します。

<figure class="wp-block-image size-large">![【O365ライセンス内でPowerApps開発】 Vol.11 営業支援アプリの作成（タブレットレイアウト）のタブに活動リストの関連付けとFilter機能説明](https://www.geekfujiwara.com/wp-content/uploads/2019/12/gphotos-1112-2.png)</figure>Addアイコンに以下のようにOnSelectプロパティに設定します。

<figure class="wp-block-image size-large">![【O365ライセンス内でPowerApps開発】 Vol.11 営業支援アプリの作成（タブレットレイアウト）のタブに活動リストの関連付けとFilter機能説明](https://www.geekfujiwara.com/wp-content/uploads/2019/12/gphotos-1112-3-1024x439.png)</figure>新たにレコードを追加する際、自動で採番して活動IDに登録する機能のコードになっています。この書き方はいろいろあると思います。  
\[codebox title="コード"\]

```
NewForm(Form3); 
UpdateContext({NewActivity: true});
UpdateContext({ThisRecordNumber: CountRows(活動.ID) + 1}); 
UpdateContext({ThisRecordNumberLength: Len(Text(ThisRecordNumber))});
If(
    ThisRecordNumberLength=1,
        UpdateContext({CreatedRecordNumber:  "ACT0000" & Text(ThisRecordNumber)}),
    ThisRecordNumberLength=2,
        UpdateContext({CreatedRecordNumber:  "ACT000" & Text(ThisRecordNumber)}),
    ThisRecordNumberLength=3,
        UpdateContext({CreatedRecordNumber:  "ACT00" & Text(ThisRecordNumber)}),
    ThisRecordNumberLength=4,
        UpdateContext({CreatedRecordNumber:  "ACT0" & Text(ThisRecordNumber)}),
    ThisRecordNumberLength=5,
        UpdateContext({CreatedRecordNumber:  "ACT" & Text(ThisRecordNumber)})
)
```

\[/codebox\]  
SubmitForm関数で、編集したフォームをSharePointに反映するようにします。

<figure class="wp-block-image size-large">![【O365ライセンス内でPowerApps開発】 Vol.11 営業支援アプリの作成（タブレットレイアウト）のタブに活動リストの関連付けとFilter機能説明](https://www.geekfujiwara.com/wp-content/uploads/2019/12/gphotos-1112-4-1024x432.png)</figure>関数は簡単で、以下の通りです。Form3というのは環境によって変わるかと思いますが、今回は活動を更新/新規作成するフォームを指します。  
\[codebox title="コード"\]

```
SubmitForm(Form3)

```

\[/codebox\]

## 関連記事

こちらもどうぞ。  
\[sc\_blogcard url="https://www.geekfujiwara.com/tech/1162/"\]

本日は以上です。

ご参考になれば幸いです。
