Oracle EBS之Oracle Forms中的“WHEN-LEAVE-RECORD”觸發(fā)器 |
發(fā)布時(shí)間: 2012/8/26 16:00:06 |
在開(kāi)發(fā)Oracle Forms時(shí),有沒(méi)有碰到這樣的需求,我需要在每次離開(kāi)一行記錄時(shí)執(zhí)行某個(gè)操作。用WHEN-VALIDATE-RECORD,不過(guò)實(shí)際測(cè)試的時(shí)候,怎么有時(shí)行有時(shí)不行?那你有沒(méi)有嘗試過(guò)WHEN-LEAVE-RECORD呢?什么?還有WHEN-LEAVE-RECORD?從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)…… 在請(qǐng)出WHEN-LEAVE-RECORD前,讓我們先來(lái)分析分析下見(jiàn)過(guò)的幾個(gè)WHEN觸發(fā)器: WHEN-NEW-RECORD-INSTANCE WHEN-CREATE-RECORD WHEN-VALIDATE-RECORD 當(dāng)新插入一行數(shù)據(jù),SYSTEM.RECORD_STATUS變?yōu)镮NSERT時(shí),移出會(huì)觸發(fā)一次。但是,當(dāng)鼠標(biāo)再次進(jìn)入該行并打算移出,而這段時(shí)間內(nèi)該行并沒(méi)有發(fā)生改變時(shí),盡管此時(shí)該行的SYSTEM.RECORD_STATUS仍為INSERT(未保存的情況下),但不會(huì)再觸發(fā)WHEN-VALIDATE-RECORD事件。 同理,當(dāng)修改了一行數(shù)據(jù),SYSTEM.RECORD_STATUS變?yōu)镃HANGED時(shí),移出該行會(huì)觸發(fā)一次。但是,當(dāng)鼠標(biāo)再次進(jìn)入該行并打算移出,而該段時(shí)間內(nèi)該行并沒(méi)有發(fā)生改變時(shí),盡管此時(shí)該行的SYSTEM.RECORD_STATUS仍為CHANGED(未保存的情況下),將不會(huì)再觸發(fā)WHEN-VALIDATE-RECORD事件。 好了,時(shí)機(jī)也差不多成熟了,是時(shí)候WHEN-LEAVE-RECORD出馬啦,當(dāng)當(dāng)當(dāng)當(dāng)…… 我們?nèi)绾尾拍茉诿看我瞥瞿承袝r(shí)執(zhí)行某個(gè)操作?從上面的分析我們知道WHEN-VALIDATE-RECORD并不是每次離開(kāi)行時(shí)都會(huì)觸發(fā),而似乎又沒(méi)有類(lèi)似WHEN-leave-RECORD之類(lèi)的觸發(fā)器,那碰到這類(lèi)需求時(shí)是不是就沒(méi)有其他辦法了呢? 怎么樣,簡(jiǎn)單吧?趕緊去開(kāi)發(fā)咱自己的WHEN-LEAVE-RECORD觸發(fā)器吧。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |