PowerApps の1Screen(1画面)で、データを連続登録させたいと思ったコトはないでしょうか?そんな画面をどうやって構築するか、が本日のテーマです。
「飲食店などのお店をリスト化して保存する」というアプリで、実際の手順を説明します。
#データソース
SharePoint Onlie(以降、SPO)のカスタムリストを利用しました。
#アプリ画面
メニュー画面が別に用意してあり、そこから下記のような画面に遷移してくる、という2枚程度のアプリです。メニュー画面はボタンを設置して、OnSelect イベントに「NewForm(Form1);Navigate(下記画面,Fade)」だけなので割愛。
番号 | コントロール | 説明 |
---|---|---|
1 | フォーム | 前述のListをデータソースに指定。[タイトル]のラベルを"店名"に変更しています。 |
2 | ボタン | フォームに登録された情報を登録。 |
3 | データテーブル | 前述のListをデータソースに指定。 |
#各コントロールの処理
ざっくり説明してしまうと、登録ボタンを押下した際にSubmitFromで確定し、フォームコントロールのOnSuccessでNewFormするだけですw
フォーム(①)の[OnSuccess]イベントに下記を設定。
NewForm(フォーム)
ボタン(②)の[OnSelect]イベントに下記を設定。
SubmitForm(フォーム)
【参考URL】EditForm 関数、NewForm 関数、SubmitForm 関数、ResetForm 関数、ViewForm 関数
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-form
#動作イメージ
フォームコントロールで作成した入力項目へ値をいれ、登録ボタンを押下すると、データテーブルが自動的に追加されていきます。(厳密にはデータソースのSPOカスタムリストへアイテム登録がされ、その追加されたアイテムをデータテーブルが表示している)
#まとめ
- 画面(Screen)を遷移しなくても、連続登録が可能
- フォームコントロールがSubmitFormされ、登録成功した際に発動するイベントが[OnSuccess]
- 一覧表示はデータテーブルなど一覧表示系のコントロールにおまかせ
SPOのカスタムリストから自動生成するPowerApps アプリが、新規登録画面でデータ登録成功すると一覧画面に戻ってしまうようになっています。それをサンプルとしてアプリを作成していく方が多いので「1枚の画面で連続してデータを登録できない」と思ってしまうようです。当記事のようなアイディアで実現できますので、是非ご活用くださいませ。