Power Apps での EditForm、NewForm、SubmitForm、ResetForm、および ViewForm 関数

編集フォーム コントロールで、項目の表示、編集、または作成、内容の保存、およびコントロールのリセットを行います。

概要

これらの関数は、編集フォームコントロールの状態を変更します。 フォーム コントロールは、次のモードのいずれかになります。

MODE 内容
FormMode.Edit フォームには、既存のレコードが設定され、ユーザーはフィールドの値を変更できます。 完了すると、ユーザーはレコードに変更を保存できます。
FormMode.New フォームは既定の値で設定され、ユーザーはフィールド値を変更できます。 完了すると、ユーザーはレコードをデータ ソースに追加できます。
FormMode.View フォームには既存のレコードが設定されますが、ユーザーはフィールドの値を変更できません。

内容

これらの関数は多くの場合、Button または Image コントロールの OnSelect 数式から呼び出され、ユーザーが編集を保存、編集を破棄、またはレコードを作成したりできるようにします。 コントロールおよびこれらの関数を併用して 完全なソリューションを作成できます。

これらの関数は値を返しません。

SubmitForm

Button コントロールの OnSelect プロパティで SubmitForm 関数を使用して、フォーム コントロールの変更をデータ ソースに保存します。

変更が送信される前に、この関数では必須としてマークされている、またはその値に 1 つ以上の制約があるフィールドの検証の問題をチェックします。 この動作は、Validate 関数の動作と同じです。

SubmitForm では、フォーム コントロールに含まれる Card コントロールのすべての Valid プロパティの集計である、フォームの Valid プロパティもチェックされます。 問題が発生した場合、データは送信されず、フォーム コントロールの Error および ErrorKind プロパティがそれに応じて設定されます。

検証に合格した場合、SubmitForm は変更をデータ ソースに送信します。

  • 成功した場合は、フォームの OnSuccess 動作が実行され、Error および ErrorKind プロパティがクリアされます。 フォームが FormMode.New モードの場合は、FormMode.Edit モードに返されます。
  • 成功しなかった場合は、フォームの OnFailure 動作が実行され、Error および ErrorKind プロパティがそれに応じて設定されます。 フォームのモードは変更されません。

EditForm

EditForm 関数は、フォーム コントロールのモードを FormMode.Edit に変更します。 このモードで、フォーム コントロールの Item プロパティの内容はフォームの設定に使用されます。 フォームがこのモードの場合に SubmitForm 関数が実行されると、レコードの作成ではなく変更が行われます。 FormMode.Edit は、フォーム コントロールの既定です。

NewForm

NewForm 関数では、フォーム コントロールのモードが FormMode.New に変更されます。 このモードでは、フォーム コントロールの Item プロパティの内容が無視され、フォームの DataSource プロパティの既定値がフォームに設定されます。 フォームがこのモードの場合に SubmitForm 関数が実行されると、レコードの変更ではなく作成が行なわれます。

ResetForm

ResetForm 関数は、ユーザーが変更を行う前に、フォームの内容を初期値にリセットします。 フォームが FormMode.New モードである場合、フォームは FormMode.Edit モードにリセットされます。 フォーム コントロールの OnReset 動作も実行されます。 Reset 関数を使用して個々のコントロールをリセットすることもできますが、フォーム内からのみです。

ViewForm

ViewForm 関数は、フォーム コントロールのモードを FormMode.View に変更します。 このモードで、フォーム コントロールの Item プロパティの内容はフォームの設定に使用されます。 このモードの場合、SubmitForm および ResetForm 関数は無効になります。

DisplayMode プロパティ

現在のモードは Mode プロパティによって読み取ることができます。 モードは、フォーム コントロール内のデータ カードおよびコントロールで使用できる DisplayMode プロパティの値も決定します。 多くの場合、データ カードの DisplayMode プロパティは Parent.DisplayMode (フォームを参照) に設定され、コントロールの DisplayMode プロパティ (データ カードを参照) と同様です。

MODE DisplayMode 内容
FormMode.Edit DisplayMode.Edit データ カードとコントロールは編集可能で、レコードへの変更を受け入れる準備ができています。
FormMode.New DisplayMode.Edit データ カードとコントロールは編集可能で、新しいレコードを受け入れる準備ができています。
FormMode.View DisplayMode.View データ カードとコントロールは編集できず、表示に最適化されています。

構文

SubmitForm( FormName )

  • FormName - 必須。 データ ソースに送信するフォーム コントロール。

EditForm( FormName )

  • FormName - 必須。 FormMode.Edit モードに切り替えるフォーム コントロール。

NewForm( FormName )

  • FormName - 必須。 FormMode.New モードに切り替えるフォーム コントロール。

ResetForm( FormName )

  • FormName - 必須。 初期値にリセットするフォーム コントロール。 フォームを FormMode.New モードから FormMode.Edit モードに切り替えます。

ViewForm( FormName )

  • FormName - 必須。 FormMode.View モードに切り替えるフォーム コントロール。

完全な例については、データ フォームについて を参照してください。

  1. Button コントロールを追加して、保存と表示されるようにその Text プロパティを設定し、その OnSelect プロパティを次の数式に設定します。

    SubmitForm( EditForm )

  2. フォーム コントロールの OnFailure プロパティを空白に設定し、その OnSuccess プロパティを次の数式に設定します。

    Back()

  3. Label コントロールに ErrorText という名前を付けて、その Text プロパティを次の数式に設定します。

    EditForm.Error

    ユーザーが保存ボタンを選択すると、フォーム コントロールのすべての変更が、基になるデータ ソースに送信されます。

    • 送信が成功すると、変更が保存、または、フォーム コントロールが新規モードの場合、レコードが作成されます。 ErrorText空白で、前のスクリーンが再び表示されます。
    • 送信が失敗すると、ErrorText ではユーザー フレンドリなエラー メッセージを表示し、ユーザーが問題を修正してやり直せるように現在のスクリーンは表示されたままになります。
  4. Button コントロールを追加して、キャンセルと表示されるようにその Text プロパティを設定し、その OnSelect プロパティを次の数式に設定します。

    ResetForm( EditForm ); Back()

    ユーザーがキャンセルボタンを選択すると、フォーム コントロールの値はユーザーが編集を開始する前の値にリセットされ、前のスクリーンが再び表示され、および、フォーム コントロールが新規モードだった場合は編集モードに戻ります。

  5. Button コントロールを追加して、新規と表示されるようにその Text プロパティを設定し、その OnSelect プロパティを次の数式に設定します。

    NewForm( EditForm ); Navigate( EditScreen, None )

    ユーザーが新規ボタンを選択すると、フォーム コントロールは新規モードに切り替わり、フォーム コントロールのデータ ソースの既定値がそのコントロールに設定され、フォーム コントロールを含むスクリーンが表示されます。 SubmitForm 関数が実行されると、レコードは更新ではなく作成されます。