Oracle EBS之Oracle Forms中的“WHEN-LEAVE-RECORD”触发器 |
发布时间: 2012/8/26 16:00:06 |
在开发Oracle Forms时,有没有碰到这样的需求,我需要在每次离开一行记录时执行某个操作。用WHEN-VALIDATE-RECORD,不过实际测试的时候,怎么有时行有时不行?那你有没有尝试过WHEN-LEAVE-RECORD呢?什么?还有WHEN-LEAVE-RECORD?从来没有听说过…… 在请出WHEN-LEAVE-RECORD前,让我们先来分析分析下见过的几个WHEN触发器: WHEN-NEW-RECORD-INSTANCE WHEN-CREATE-RECORD WHEN-VALIDATE-RECORD 当新插入一行数据,SYSTEM.RECORD_STATUS变为INSERT时,移出会触发一次。但是,当鼠标再次进入该行并打算移出,而这段时间内该行并没有发生改变时,尽管此时该行的SYSTEM.RECORD_STATUS仍为INSERT(未保存的情况下),但不会再触发WHEN-VALIDATE-RECORD事件。 同理,当修改了一行数据,SYSTEM.RECORD_STATUS变为CHANGED时,移出该行会触发一次。但是,当鼠标再次进入该行并打算移出,而该段时间内该行并没有发生改变时,尽管此时该行的SYSTEM.RECORD_STATUS仍为CHANGED(未保存的情况下),将不会再触发WHEN-VALIDATE-RECORD事件。 好了,时机也差不多成熟了,是时候WHEN-LEAVE-RECORD出马啦,当当当当…… 我们如何才能在每次移出某行时执行某个操作?从上面的分析我们知道WHEN-VALIDATE-RECORD并不是每次离开行时都会触发,而似乎又没有类似WHEN-leave-RECORD之类的触发器,那碰到这类需求时是不是就没有其他办法了呢? 怎么样,简单吧?赶紧去开发咱自己的WHEN-LEAVE-RECORD触发器吧。 本文出自:亿恩科技【www.enkj.com】 |