Power Apps には、一から作成するだけでなく、データから作成する方法もあります。
いろんなデータソースを元に、自動的にいい感じのアプリを作ってくれる素晴らしい機能です。
下手すれば、たった数オペレーションでできてしまうという優れもの。
この「データから開始」という機能、Power Apps を使っている皆さんなら、一度は使ったことがある機能じゃないかと思います。
ですが、生成されたアプリの機能は
- 新規作成
- 編集
- 削除
この3つだけです。
でも、特定のレコードを「コピー」して「新規作成」したいという要望は非常に多いと思います。
そこで、本投稿では、新規作成時に、内容をコピーする機能を実装する方法を記載したいと思います。
まずはアプリを作成します
とりあえず SharePoint のデータを作ってアプリを作成します
コピーアイコンの実装
DetailScreen1を選択します
アイコンからコピーを選択します
ヘッダーに配置し、他のアイコンと色などを合わせます
コピーアイコンの OnSelect プロパティに以下の内容を入力します
NewForm(EditForm1);
Navigate(EditScreen1, ScreenTransition.None);
Set(NewFormMode,"copy");
新規作成・編集アイコンの修正
編集アイコンを選択し、OnSelectプロパティを以下のように変更します
EditForm(EditForm1);
Navigate(EditScreen1, ScreenTransition.None);
Set(NewFormMode,"Edit");
BrowseScreen1 を選択します
新規作成アイコンを選択し、OnSelectプロパティを以下のように変更します
EditForm(EditForm1);
Navigate(EditScreen1, ScreenTransition.None);
Set(NewFormMode,"New");
フォームの修正
EditScreen1を選択します
コピー対象のフォームの入力プロパティのロックを解除します
各フォームの入力項目にある Default に以下の内容を指定します
Switch(NewFormMode,
"New","",
"Edit",Parent.Default,
"copy",BrowseGallery1.Selected.<列名>
,""
)
送信アイコンの修正
送信アイコンの OnSelect プロパティを以下のように変更します
SubmitForm(EditForm1);
ResetForm(EditForm1);
Set(NewFormMode,"None");
BrowseScreen1 の設定
BrowseScreen1 を選択します
OnVisible プロパティに以下を設定します
Set(NewFormMode,"None");
まとめ
内容をコピーしてデータを新規登録したいっていう要望は結構多いかと思います。
ただ、それを実装するには関数などをいろいろと使わないといけなくなり、そこで挫折する場合も多いんじゃないでしょうか。
この記事が少しでも多くの方のためになれば幸いです!