0

我在 Oracle Forms 中有一个复杂的表单,在 When-Validate-Item 触发器中有一些重新计算逻辑。我的问题是,我希望仅在用户更改项目的值时执行此逻辑,而不是在以编程方式更改它时执行,例如在表单启动时填充项目。当然,我可以添加一些状态逻辑来防止以编程方式阻止表单启动时的验证逻辑,但这会给表单增加一些额外的复杂性。

我的问题是,Oracle Forms 中是否有任何方法可以通过例如将项目状态设置为有效来防止执行验证逻辑?

4

2 回答 2

1

有几种可能的方法可以做到这一点,具体取决于您的项目如何更改以及项目上的哪些属性。

1)如果您的项目是数据库项目并且您在正常查询期间填写,则不会触发 when-validate-item 触发器。

2)如果您不使用普通查询填充它,您可以将验证时间从项目更改为记录,甚至更改为表单。这样,只有在您执行提交或离开表单时才会对其进行验证。

3) 当然是跟踪这些变化,不要让验证失效。

PS:通常你不会在 when-validate-item 触发器中做任何事情,当它从幕后填充时会出现问题,所以我不知道触发器内的代码是什么,但它应该只是对输入值的验证,如果这是错误的,即使它是用代码而不是用户填充的,它也应该这样说。

于 2013-09-27T21:55:46.593 回答
1

当值以编程方式更改时,

set_item_property('block_name.item', item_is_valid, property_true);
于 2016-09-30T09:56:29.000 回答