EditForm、NewForm、SubmitForm、ResetForm、ViewForm 関数

適用先: キャンバス アプリ

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

概要

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

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

内容

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

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

これらの関数は、動作の数式 内でのみ使用できます。

SubmitForm

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

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

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

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

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

EditForm

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

注意

フォームが 編集モード にあり、Item が null の場合、データ カード プロパティは評価されず、既定値が返されます。

NewForm

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

ResetForm

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

ViewForm

ViewForm 関数は、Form コントロールのモードを FormMode.View に変更します。 このモードで、Form コントロールの 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 - 必須。 データ ソースに送信する Form コントロール。

EditForm( FormName )

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

NewForm( FormName )

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

ResetForm( FormName )

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

ViewForm( FormName )

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

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

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

    SubmitForm( EditForm )

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

    Back()

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

    EditForm.Error

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

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

    ResetForm( EditForm ); Back()

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

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

    NewForm( EditForm ); Navigate( EditScreen, None )

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