当前位置: 首页 > 工具软件 > FormBuilder > 使用案例 >

oracle form builder 触发器,Form Builder开发中的校验

林鹏鹍
2023-12-01

Form Builder开发中的校验(Validation)逻辑

关于校验(Validation)

Oracle Form校验item来保证item符合它应遵守的规则。触发器可以实现额外的校验。

验证单元(Validation unit)

一个form的验证单元属性控制form中验证粒度.验证单元可以是一个item,record,block或者form.大多数Oracle Forms应用在Item层次进行校验。

什么时候进行校验

Oracle Forms在以下情况下进行校验:

l Oracle Forms 导航出验证单元.这个在终端用户按下某一功能键或者在验证单元外点击鼠标,或者触发器执行某一内置函数。

l 触发器调用内置的ENTER函数,或者终端用户按下[Enter]。

l 触发器调用内置的COMMIT_FORM函数,或者终端用户按下[Commit].在这种情况下,OracleForms 验证form不论当前的验证单元是什么。

l 触发器调用内置的VALIDATE函数。

Oracle Forms不在’输入查询’(Enter-Query)模式下进行验证.这样就允许终端用户输入OracleForms认为无效的查询条件。

验证是如何进行的

在Oracle Forms内部维护了每个Item, record, block和form的状态。为了验证的目的,每个潜在的验证单元都一个具有以下两个值的验证状态:

l 有效(valid)

l 未验证的(Unvalidated)

有效(Valid)状态意味着Oracle Forms不需要检查当前的验证单元。没验证过的(Unvalidated)状态,是内部称为’New’和’Changed’的状态组合,意味着Oracle Forms需要校验验证单元里的items。New和Changed的不同仅仅在校验过程中稍有不同(请参考table中的记录项所遵守的note)。

当验证失败的时候就会出现第三种状态,但在这种情况下Oracle Forms不会继续处理直到这种情况被更正了,所有失败的状态下是不会进入校验流程的。

Oracle Forms通过下面其中的一种来校验一个验证单元:

Item 如果item的状态是有效的,那么校验流程就停止了.如果状态是未验证的,Oracle Forms执行标准的校验检查,然后出发WHEN-VALIDATE-ITEM触发器(请参考Defer Required Enforcement property.)

Record 如果record的状态是有效的,那么校验流程就停止了。如果状态是未验证的,Oracle Forms就会校验record里面的每个item,然后触发WHEN-VALIDATE-RECORD触发器.

 类似资料: