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

説明

これらの関数は多くの場合、ユーザーが編集内容の保存、編集内容の破棄、またはレコードの作成を行えるようにするために、ボタン コントロールまたはイメージ コントロールの OnSelect 数式から呼び出されます。 コントロールとこれらの関数を組み合わせて、理想的なソリューションを作成することができます。

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

SubmitForm

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

この関数では、変更が送信される前に妥当性の問題がチェックされます。これは必須の印が付いたフィールド、または値に対する 1 つ以上の制約があるフィールドに関して実行されます。 この動作は、Validate 関数の動作と同じです。

SubmitForm ではフォームの 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 動作も実行されます。

構文

SubmitForm( FormName )

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

EditForm( FormName )

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

NewForm( FormName )

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

ResetForm( FormName )

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

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

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

    SubmitForm( EditForm )

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

    Back()

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

    EditForm.Error

    ユーザーが [Save] ボタンを選択すると、フォーム コントロール内の変更内容が、基盤となるデータ ソースに送信されます。

    • 送信が成功すると、変更が保存されます。または、フォーム コントールが New モードの場合、レコードが作成されます。 ErrorText が "空白" の場合、前の画面がもう一度表示されます。
    • 送信が失敗すると、ErrorText にわかりやすいエラー メッセージが表示されます。ユーザーが問題を修正してやり直せるように、現在の画面は表示されたままになります。
  4. ボタン コントロールを追加して、Cancel と表示されるように Text プロパティを設定し、OnSelect プロパティを次の式に設定します。

    ResetForm( EditForm ); Back()

    ユーザーが [Cancel] ボタンを選択すると、フォーム コントロールの値が編集を開始する前の値にリセットされ、前の画面が再度表示されます。また、フォーム コントロールのモードが New だった場合、Edit に戻ります。

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

    NewForm( EditForm ); Navigate( EditScreen, None )

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