Power Apps

PowerApps でリストフォーム カスタマイズ: 新規時と編集時で画面切り替え

  • 2018.05.14

SharePoint リストフォームのカスタマイズを行う際の Tips です。

新規入力時に利用するフォームと、既存アイテムの編集時に利用するフォームを別画面で用意している場合に、動的に切り替える方法です。同様の内容でも、PowerApps アプリを作成する際と、SharePoint リスト フォームを PowerApps でカスタマイズする場合で設定方法が異なるため、今回は SharePoint リストフォームのカスタマイズ時にこれを設定する方法をご紹介します。

■ 設定したい内容

新規入力時と既存アイテムの編集時でフォーム内容を変更したい。

 

■ 既定の設定内容確認

リストフォームを PowerApps でカスタマイズする場合、下記ユーザー操作による動作はプロパティにて設定できます。

  • リスト内の [+新規] をクリックしてフォームを開いた場合
  • 既存アイテムの編集としてフォームを開いた場合
  • フォームをキャンセルした場合
  • フォームを保存した場合

次のようなリストがあったとして、まず既定でどうなってるかみてみましょう。

PowerApps のフォームカスタマイズ画面を開いて内容を確認すると、FormScreen1 という画面が既定で用意されており、画面内には SharePointForm1 という編集フォーム コントロールが含まれていることが確認できます。

 既定で用意される画面はひとつですので、新規入力時/編集時/表示時すべてでこの画面を利用しているということです。新規/編集/表示、どの操作でフォームが開かれたかによって、切り替える設定を続いてみてみると、SharePoint リストフォームカスタマイズ時に用意される設定である SharePointIntegration の各プロパティに既定の設定内容が確認できます。  

■ 設定方法

1.画面編集

次のように編集する。

  • 既定の SharePointForm1 画面を複製
  • FormScreen1 を NewScreen に画面名変更
  • NewScreen 画面内の編集フォーム (SharePointForm1) の名前を NewForm に変更。
    編集フォーム内の列について、列Cを読み取り専用に設定変更 (タイトル、列A、列Bが入力可能)
  • コピーで作成した FormScreen 1_1 を EditScreen に画面名を変更
  • EditScreen 画面内の編集フォーム (SharePointForm1_1) の名前を EditForm に変更
    編集フォーム内の列について、列Aと列Bを読み取り専用に設定変更 (タイトル、列Cのみが編集可能)

 

2.SharePointIntegration のプロパティ設定

次のように編集する。

プロパティ 数式
OnNew Set(SPFormMode, “New”);  NewForm(NewForm);
Navigate(NewScreen, ScreenTransition.None)
OnEdit Set(SPFormMode, “Edit”);  EditForm(EditForm);
Navigate(EditScreen, ScreenTransition.None)
OnView Set(SPFormMode, “Disp”);  ViewForm(NewForm);
Navigate(NewScreen, ScreenTransition.None)
OnSave If(SPFormMode =”New”, SubmitForm(NewForm),
If(SPFormMode=”Edit”, SubmitForm(EditForm)))
OnCancel If(SPFormMode =”New”, ResetForm(NewForm),
If(SPFormMode =”Edit”, ResetForm(EditForm)))

 

ここでは新規入力時と編集時を切り替える設定を行いましたが、応用として列の値に応じて画面を切り替えることもできますね。

以上、奥田でした。

お問い合わせ

イルミネート・ジャパンが提供するトレーニングやサービスに関するご相談など、
お気軽にご連絡ください。

担当者に相談する