编辑或创建一个项,保存内容,以及在编辑窗体控件中重置控件。

说明

这些函数通常从按钮图像控件的 OnSelect 公式中调用,以便用户可以保存编辑、放弃编辑或创建记录。 可通过将控件和这些函数结合使用来创建完整的解决方案。

这些函数不返回任何值。

SubmitForm

在按钮控件的 OnSelect 属性中使用 SubmitForm 函数可将窗体控件中的任何更改保存到数据源。

提交任何更改之前,针对被标记为必需或其值有一个或多个约束的字段,此函数会检查验证问题。 此行为与 Validate 函数类似。

SubmitForm 还会检查窗体的 Valid 属性,这包括窗体控件所包含的卡片控件的所有 Valid 属性。 如果出现问题,数据将不会提交,并且窗体控件的 ErrorErrorKind 属性会进行相应的设置。

如果通过验证,SubmitForm 会将更改提交到数据源。

  • 若成功提交,将运行窗体的 OnSuccess 行为,并清除 ErrorErrorKind 属性。 如果窗体之前处于 FormMode.New 模式下,则窗体将返回 FormMode.Edit 模式。
  • 若提交失败,将运行窗体的 OnFailure 行为,并且 ErrorErrorKind 属性会进行相应设置。 窗体的模式保持不变。

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. 添加一个按钮控件,将其 Text 属性设置为显示“保存”,并将其 OnSelect 属性设置为以下公式:

    SubmitForm( EditForm )

  2. 将窗体控件的 OnFailure 属性设置为空白,将其 OnSuccess 属性设置为以下公式:

    Back()

  3. 将“标签”控件命名为“ErrorText”,然后将“Text”属性设置为以下公式:

    EditForm.Error

    用户选择“保存”按钮后,窗体控件中的任何更改都会提交到基础数据源。

    • 如果提交成功,则会保存所有更改;或者如果窗体控件处于“新建”模式下,则会创建一条记录。 ErrorText 为空白,且上一个屏幕再次出现。
    • 如果提交失败,ErrorText 会显示用户友好的错误消息,并且当前屏幕会保持可见,以便用户可以更正问题并重试。
  4. 添加一个按钮控件,将其 Text 属性设置为显示“取消”,并将其 OnSelect 属性设置为以下公式:

    ResetForm( EditForm ); Back()

    用户选择“取消”按钮后,窗体控件中的值会被重置为用户对其进行编辑之前的值,上一个屏幕将再次出现,并且如果窗体控件之前处于“新建”模式下,则它将返回“编辑”模式。

  5. 添加一个按钮控件,将其 Text 属性设置为显示“新建”,并将其 OnSelect 属性设置为以下公式:

    NewForm( EditForm ); Navigate( EditScreen, None )

    用户选择“新建”按钮后,窗体控件将切换到“新建”模式,窗体控件数据源的默认值将填充该控件,并出现包含该窗体控件的屏幕。 SubmitForm 函数运行时,将创建(而非更新)记录。