适用于: 画布应用
查看、编辑或创建一个项,保存内容,以及在 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 控件。
示例
请参阅了解数据窗体获取完整示例。
添加一个 Button 控件,将其 Text 属性设置为显示保存,并将其 OnSelect 属性设置为以下公式:
SubmitForm( EditForm )
将 Form 控件的 OnFailure 属性设置为空白,将其 OnSuccess 属性设置为以下公式:
返回()
将 Label 控件命名为 ErrorText,然后将 Text 属性设置为以下公式:
EditForm.错误
用户选择保存按钮后,Form 控件中的任何更改都会提交到基础数据源。
- 如果提交成功,则会保存所有更改;或者如果 Form 控件处于新建模式下,则会创建一条记录。 ErrorText 为空 ,并且会重新显示上一个屏幕。
- 如果提交失败,ErrorText 会显示用户友好的错误消息,并且当前屏幕会保持可见,以便用户可以更正问题并重试。
添加一个 Button 控件,将其 Text 属性设置为显示取消,并将其 OnSelect 属性设置为以下公式:
ResetForm( ); EditForm Back()
用户选择取消按钮后, Form 控件中的值会被重置为用户对其进行编辑之前的值,上一个屏幕将再次出现,并且如果 Form 控件之前处于新建模式下,则它将返回编辑模式。
添加一个 Button 控件,将其 Text 属性设置为显示新建,并将其 OnSelect 属性设置为以下公式:
NewForm( ); EditForm Navigate(EditScreen、None)
用户选择新建按钮后, Form 控件将切换到新建模式, Form 控件数据源的默认值将填充该控件,并出现包含该 Form 控件的屏幕。 SubmitForm函数运行时,将创建一条记录,而不是更新记录。