EditForm、、NewFormSubmitForm、ResetForm和ViewForm函数

适用于: 画布应用

查看、编辑或创建一个项,保存内容,以及在 Edit form 控件中重置控件。

概述

这些函数将更改 Edit form 控件的状态。 Form 控件可以采用以下模式之一:

模式 描述
FormMode.Edit(表单模式.编辑) 窗体使用现有记录填充,用户可以修改字段的值。 完成后,用户可以将更改保存到记录中。
FormMode.New(新) 表单使用默认值填充,用户可以修改字段的值。 完成后,用户可以将记录添加到数据源。
FormMode.View 视图 窗体使用现有记录填充,但用户无法修改字段的值。

描述

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

这些函数不返回任何值。

只能在行为公式中使用这些函数。

SubmitForm

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

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

SubmitForm还会检查窗体的有效属性,该属性是窗体控件包含的所有有效属性的聚合。 如果出现问题,数据将不会提交,并且 Form 控件的 Error 和 ErrorKind 属性会进行相应的设置。

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

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

EditForm

该 EditForm 函数将窗体控件的模式更改为 FormMode.Edit。 在此模式下,将使用 Form 控件的 Item 属性的内容来填充窗体。 SubmitForm如果此函数在此模式下运行,则更改记录,而不是创建。 FormMode.Edit 是 Form 控件的默认值。

备注

当窗体处于编辑模式且项目为 null 时,不会计算数据卡属性,将返回默认值。

NewForm

该 NewForm 函数将窗体控件的模式更改为 FormMode.New。 在此模式下, Form 控件的 Item 属性的内容会被忽略,而使用窗体的 DataSource 属性的默认值来填充窗体。 SubmitForm如果此函数在此模式下运行,则会创建记录,不会更改。

ResetForm

在用户进行任何更改之前,该 ResetForm 函数会将表单的内容重置为其初始值。 如果窗体处于 FormMode.New 模式下,则窗体将重置为 FormMode.Edit 模式。 还将运行 Form 控件的 OnReset 行为。 还可以使用 Reset 函数重置各个控件,但仅可以从窗体内进行重置。

ViewForm

该 ViewForm 函数将窗体控件的模式更改为 FormMode.View。 在此模式下,将使用 Form 控件的 Item 属性的内容来填充窗体。 在此模式下,和SubmitFormResetForm函数不起作用。

DisplayMode 属性

可通过 Mode 属性读取当前模式。 该模式还可以确定 DisplayMode 属性的值,数据卡和控件可在 Form 控件中使用该属性。 通常情况下,如操作控件的 DisplayMode 属性(引用数据卡)一样,将数据卡的 DisplayMode 属性设置为 Parent.DisplayMode(引用窗体):

模式 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 属性设置为以下公式:

    返回()

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

    EditForm.错误

    用户选择保存按钮后,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函数运行时,将创建一条记录,而不是更新记录。