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

概要

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

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

説明

これらの関数は多くの場合、ユーザーが編集内容の保存、編集内容の破棄、またはレコードの作成を行えるようにするために、ボタン コントロールまたはイメージ コントロールの 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 動作も実行されます。 Reset 関数を使用して個々のコントロールをリセットすることもできますが、使用できるのはそのフォーム内のみです。

ViewForm

ViewForm 関数を使用すると、フォーム コントロールのモードが FormMode.View に変更されます。 このモードでは、フォーム コントロールの Item プロパティの内容がフォームの入力に使用されます。 このモードでは、SubmitForm 関数と RestForm 関数は無効です。

DisplayMode プロパティ

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

モード 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. ボタン コントロールを追加して、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 関数が実行されると、レコードの更新ではなく作成が行われます。