【Power Apps】編集フォームの基本設定と編集・保存・新規作成の実装方法

Power Appsの編集フォーム実装 Power Apps

この記事でわかること

Power Appsで入力フォームを作るとき、編集フォームを使うと手軽にSharePointリストのレコードに対して編集・保存・新規作成ができます。私が実装する際に詰まったので、この記事では以下をまとめます。

  • 編集フォームの基本設定(DataSource・Item)
  • 保存・リセット・新規作成ボタンの実装方法
  • SubmitForm / ResetForm / NewForm の違いと使い分け
  • SharePointの自動管理フィールドが編集できない理由

どんな状況で詰まったか

Power Appsで入力フォームアプリを作成する際、編集フォームの「保存」ボタンの実装でつまずきました。
編集フォームの正しい設定を把握していなかったため、「保存」ボタンを押しても保存されなかったり、新規作成のつもりが前に選んだレコードの内容が残ったままになったり、フォームに追加したフィールドが編集できなかったりと、いくつかの落とし穴にハマりました。

なぜうまくいかなかったのか

DataSource・Itemの設定が抜けていました。編集フォームはキャンバスに追加しただけでは動かず、最低限、以下の2つを設定する必要があります。

プロパティ役割
DataSourceどのSharePointリストと連携するか
Item編集対象のレコードを渡す

この設定が抜けていると、フォームが表示されなかったり、保存時にエラーになります。
また、ギャラリーで別のレコードを選んだあとに「新規作成」ボタンを押しても、編集フォームには前に選んだレコードの内容が残ります。NewForm(編集フォーム名)を実装することで、フォームを空の新規入力状態にリセットできます。

編集フォームの基本設定手順

Step1:データソースを追加する

「データソース」からSharePointを選択し、SharePointリストが存在するサイトを選択。一覧の選択から、対象のSharePointリストを選択します。(ここではSampleListを選択しています。)

Step2:編集フォームをキャンバスに追加して、DataSourceを設定する

「挿入」タブ→「フォーム」→「編集」を選択してキャンバスに追加し、DataSourceを設定します。設定は数式バーに直接SharePointリスト名を入力してもできます。

Step3:Itemを設定する

編集フォームのItemプロパティに、編集するデータを設定する。(ここではギャラリーで選択したレコード「Gallery1.Selected」を設定)

編集フォームのItemプロパティにGallery1.Selectedを設定している画面

保存・リセット・新規作成ボタンの実装

3つの関数を使い分けることで、保存・キャンセル・新規作成を実装できます。

関数使うタイミング役割
SubmitForm()「保存」ボタン押下時データをSharePointに保存する
ResetForm()「キャンセル」ボタン押下時入力内容を元に戻す(保存しない)
NewForm()「新規作成」ボタン押下時フォームを空にする

*今回は、画面の切り替えをグローバル変数「gMode」で行っているため関数の後にgModeを変更しています。

保存ボタン:SubmitForm()

「保存」ボタンのOnSelectプロパティに「SubmitForm(EditForm)」を設定します。
これにより、フォームの入力内容をSharePointリストに保存します。

保存ボタンのOnSelectプロパティにSubmitForm(EditForm)を設定している画面

キャンセルボタン:ResetForm()

「キャンセル」ボタンのOnSelectプロパティに「ResetForm(EditForm)」を設定します。
これにより、フォームの入力内容を破棄します。保存はされません。

キャンセルボタンのOnSelectプロパティにResetForm(EditForm)を設定している画面

新規作成ボタン:NewForm()

「キャンセル」ボタンのOnSelectプロパティに「NewForm(EditForm)」を設定します。
これにより、フォームを空にします。登録済みのレコードは変更されません。入れ忘れると前のデータが残ります。

新規作成ボタンのOnSelectプロパティにNewForm(EditForm)を設定している画面

補足:SharePointの自動管理フィールドとは

編集フォームの項目を選択する際に、一部のフィールドに「編集」の選択肢が出てこないことがあります。SharePointが自動で管理しているフィールドの場合は、SharePoint側が値をセットするため、基本的にPower Appsから変更することはできないようです。

代表的な自動管理フィールドは以下の3つです。

フィールド名内容
登録日時(Created)レコードが登録された日時
更新日時(Modified)レコードが最後に更新された日時
登録者(Author)レコードを登録したユーザー

これらはSharePointが自動でセットするため、編集フォームで表示しても読み取り専用になります。フォームに表示する必要がなければ、非表示にしておくのがおすすめです。

まとめ

この記事では、編集フォームの基本設定と、3つの関数の使い分け、SharePointの自動管理フィールドについて解説しました。

今回のポイント

  • 編集フォームには DataSource と Item の設定が必須
  • 保存は SubmitForm()・キャンセルは ResetForm()・新規作成は NewForm()
  • 新規作成時は NewForm() を忘れると前のデータが残る
  • 登録日時・更新日時・作成者はSharePointの自動管理フィールドで編集不可

Power Platformを触り始めたばかりの方に向けて、こういった詰まりポイントをこれからも発信していきます。よかったらブログをブックマークして、またのぞきに来てください。

あわせて読みたい

次のステップはこちら。1画面にギャラリーとフォームを収める方法です。

【Power Apps】シングルスクリーンの作り方|ギャラリー+フォームの左右レイアウト
Power Appsでギャラリーとフォームを1画面に収めるシングルスクリーン設計の作り方を解説。gMode変数での画面切り替えやレイアウトのコツを、初心者向けにステップごとにまとめます。

コメント

タイトルとURLをコピーしました