PL-200 学習メモ (3) : キャンバス アプリ（編集画面、新規作成画面）

# はじめに
この投稿は PL-200: Microsoft Power Platform 業務コンサルタントの学習をした内容のメモです。

投稿の一覧は以下のリンク先にあります。

https://qiita.com/atsmin77/items/f25bd707921c421cee03

# 前の投稿

https://qiita.com/atsmin77/items/a8821f48a53cdacd7a5d

### 編集画面

1. [新しい画面] から空の画面を追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/46cc75cc-3de9-b794-2144-5daf39954421.png)

2. [挿入] - [編集フォーム] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/5910042f-4a72-c915-2a50-e0842e365d5b.png)

3. 詳細画面と同様にデータソースを選択し、[フィールド] から表示する列を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/416ce704-6ced-c702-b419-5375d28add95.png)

4. 編集画面と同様に[詳細設定] - [Item] に以下を入力することにより、一覧画面で選択した行を表示することができる
```
Item 欄：
【一覧画面のギャラリーの名前】.Selected

例：
BrowseGallery.Selected
```

5. 編集画面を選択し、[挿入] - [アイコン] - [編集] から編集ボタンを配置し、OnSelect プロパティに変種画面への遷移を設定
```
Navigate(EditScreen)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/1e9a12a1-14ac-87df-d4e7-bf165933132d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/3f810396-f1f0-5383-b92b-bcbb9c2ff539.png)

### 保存ボタン

編集画面に編集内容を保存するボタンを配置します。

1. 編集画面を選択し、[アイコン] - [保存] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/5bb5c7e7-d258-4383-644e-69893e1a127e.png)

2. 保存ボタンの OnSelect プロパティに以下を設定
```
OnSelect 欄：
SubmitForm(【編集画面のフォームの名前】)

例：
SubmitForm(EditForm)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/766bb775-3818-2858-6624-928c91806c40.png)

3. 保存が完了したら詳細画面に戻るように、編集フォームの OnSuccess プロパティに以下を設定
```
OnSuccess 欄：
Back()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/098506f7-fcf6-4777-2a48-3844b0e0201c.png)

### キャンセルボタン

編集画面に編集内容を保存せずにもとの画面に戻るボタンを配置します。

1. 編集画面を選択し、[アイコン] - [キャンセル] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/6ec6e0d8-0bfe-023a-2816-35d5fdd53e6e.png)

2. キャンセルボタンの OnSelect プロパティに以下を設定
```
OnSelect 欄：
ResetForm(【編集画面のフォームの名前】);Back()

例：
OnSelect 欄：
ResetForm(EditForm);Back()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/99288f03-19c4-9093-79b0-06b84cd9d186.png)

これで詳細画面から項目を選択して、編集画面で内容の編集が行えるようになりました。

![Animation4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/5601865d-f733-270e-a3b4-7dbdb5bcbf9c.gif)

### 新規登録画面

一覧画面に新規のレコードを登録するボタンを配置します。

1. 一覧画面を選択し、[アイコン] - [追加] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/c7b78739-0ec0-accd-46d8-effa081f93ac.png)

2. 追加ボタンの OnSelect プロパティに以下を設定
```
OnSelect 欄：
NewForm(【編集画面のフォームの名前】);Navigate(【編集画面の名前】)

例：
OnSelect 欄：
NewForm(EditForm);Navigate(EditScreen)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/19d5a57a-4042-a869-57ad-d4e2fb0933b5.png)

これで一覧画面から新規登録画面に遷移することができるようになりました。

### ヘッダーの追加

各画面の上部にヘッダーを追加して、画面のタイトルを表示します。編集画面は既存レコードの編集と新規レコードの追加でタイトルの表示を切り替えるようにします。

1. 一覧画面を選択し [挿入] - [図形] - [四角形] から画面の上部に四角を配置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/0f611477-cf58-f1c9-904c-b99da78435a2.png)

2. 配置した四角を最背面に移動させ、色を適当に変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/1d463e06-22ce-eb45-3797-71c5c8c0ada1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/47ef58f3-a358-3ae3-f2a1-0e4c705fa09f.png)

3. 一覧画面を選択し [挿入] - [ディスプレイ] - [テキストラベル] から画面の上部にラベルを配置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/4b7ac250-0940-3fba-39d7-3f155f4ce3e9.png)

4. ラベルの Text プロパティに "取引先担当者一覧" と入力し、フォントなどを適当に変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/98636e7d-021d-ad77-0894-c6f5f4d8a22a.png)

5. 一覧画面に配置した四角形とラベルをコピーして詳細画面、編集画面にも同様に配置し、ラベルの内容を画面に合わせて変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/76d07580-3bd2-bc6f-da35-99d5b1f5cff0.png)


6. 編集画面のラベルの Text にはラベルの表示を切り替えるため、以下を設定
```
If(EditForm.Mode = FormMode.Edit,"取引先担当者編集", "新規取引先担当者登録")
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/03fb92bd-5177-63eb-59e3-d433846f490f.png)

これで各画面に適切にタイトルを表示できるようになりました。

![PL200-3-2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/84a76c21-c6ee-70a9-e902-2777e7465109.gif)


https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/controls/control-form-detail

### 表示順のソート

Garallery の Items プロパティを以下のように変更することで、指定した項目でソートして表示することができます。

```
Items 欄：
SortByColumns(【テーブル名】, 【列の論理名】, 【昇順または降順】)

例：
姓 (lastname) 列の昇順で表示する場合
SortByColumns('取引先担当者 ',"lastname", SortOrder.Ascending)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/fe7e01c2-c7e7-4990-60ec-92ba1dae8d44.png)

### 更新ボタン
一覧画面に [図形] - [再読み込み] ボタンを配置して、OnSelect プロパティに以下を設定
```
OnSelect 欄：
Refresh(【テーブル名】)

例：
Refresh('取引先担当者 ')
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/2699b68d-fcc0-6657-853b-f79b7b27c8e8.png)

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-refresh

### 削除ボタン
詳細画面に [アイコン] - [ゴミ箱] ボタンを配置して、OnSelect プロパティに以下を設定
```
OnSelect 欄：
Remove(【テーブル名】,【ギャラリー】.Selected);Back()

例：
Remove('取引先担当者 ', BrowseGallery.Selected);Back()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/943860e4-b6a9-8420-e800-d86e39bc12a0.png)

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-remove-removeif

# 次の投稿

https://qiita.com/atsmin77/items/3e43f73c871cd2c56c50