フォームを送信する

完了

Form コントロールの最後の手順として、変更した内容を送信する方法を説明します。 そのためには、SubmitForm 関数を使用します。 この関数は、多くの場合、保存 または 送信 というラベルの付いた ボタン コントロールに配置されます。 OnSelect に対する式は、SubmitForm(YourFormName) です。

この関数では、データ カード上のコントロールに入力されたすべてのデータが取得されて、Form コントロールに対するデータ ソースに保存されます。 Form コントロールの各データ カードにある Update プロパティには、SubmitForm が呼び出された際にデータ ソースに書き込まれるデータを式のフォームで指定します。 カードのロックを解除した場合、その式を変更できます。 通常、これは必要なく、特殊な状況でのみ行われます。

重要

カードの式の変更する場合は、ソースから予想されるデータ型と一致している必要があります。一致していない場合、エラーが発生してデータ入力が正常に保存されない可能性があります。

フォームを送信した後

Form コントロールが使いやすい点は、SubmitForm 関数を起動することでデータが送信されて、データ ソースが更新されることです。 Form コントロールには、データの送信後に送信の結果に基づいて処理する 3 つのプロパティがあります。 これらのプロパティは、OnSuccessOnFailureOnReset です。 また、LastSubmit プロパティでは、フォームから送信されるデータについて記録されたレコードを取得できます。

メモ

別の画面に移動するなど別の目的でフォームを送信する場合は、これら 3 つのフォーム プロパティのいずれかにコードを追加します。 SubmitForm アクションを呼び出すボタン、アイコン、または関数にはコードを追加しないでください。

各プロパティに式を入力できます。 たとえば、データが正常に送信された後でユーザーを別の画面に移動させたい場合は、OnSuccess で関数 Navigate(SuccessScreen, ScreenTransition.Cover) を使用すると、ユーザーは SuccessScreen という名前の画面に移動します。

OnFailure プロパティ

データの送信でエラーが発生した場合は、OnFailure プロパティを使用します。 式を使用して、障害が発生したときに表示する警告メッセージを指定できます。 次の式は、Notify 関数を使用してユーザーに詳細な情報を提供する例です。

Notify("Your data was not saved. Please try again or contact an administrator.", NotificationType.Error)

この関数では、画面の上部に赤い警告と次のメッセージを表示します。「データが保存されませんでした。 もう一度試すか、管理者に問い合わせてください"。このメッセージによって、ユーザーは問題をより簡単に解決できます。

OnReset プロパティ

フォームがリセットされた場合は、OnReset プロパティを使用します。 フォームのリセットは、ResetForm 関数が使用されると発生します。 ResetForm 関数では、フォームに既定値が再び設定されてから、OnReset プロパティで指定されているすべての式が実行されます。 たとえば、フォームでの対話に使用されている 変数 または タイマー コントロールをリセットする場合です。

LastSubmit プロパティ

フォームが正常に送信された後は、送信されたレコードを直接参照することができます。 最後に送信されたレコードは、レコード全体が格納されている LastSubmit プロパティを使用して利用できます。 レコードにアクセスするには、式 FormName.LastSubmit を使用します (FormName にはフォームの名前を入力します)。 また、ラベル コントロールをアプリに挿入した後、FormName.LastSubmit.ID などの式 (前回送信されたレコードの ID プロパティを返します) を使用して、LastSubmit レコードの要素にアクセスすることもできます。 LastSubmit は、前のフォーム送信からの値を知っている必要があるリレーショナル データの作成を開始する際に役立つ、非常に強力な概念です。

次のユニットでは、Form コントロールの便利な Special プロパティについて説明します。