field module的on input和on request區別
阿新 • • 發佈:2019-02-17
在編輯螢幕的PAI的時候,對欄位的檢查一般用field xxx module xxx或者用chain。有兩種操作可供選擇,一種是on input,另一種是on request。
區別是:
on input的觸發條件是:只要該欄位不為空就會觸發module
on request的觸發條件是:該欄位發生變化後觸發module
例如,有兩個欄位,a、b,兩個module,check_a check_b:
field a module check_a on input.
field b module chec_b on request.
無論a發生任何變化,只要a不為空,則每一次回車都會觸發check_a;
反之,只有b發生變化後才會觸發check_b,如果兩次回車中間b沒有發生變化,則不會觸發check_b。
所以一般來說,用on request的多一些。
另外,以下內容轉自其它網站:
1、單個欄位檢查 | FIELD <FLD1> MODULE <MDL1>. |
2、單個欄位多個MODULE檢查 | FIELD <FLD1> MODULE <MDL1>,MODULE <MDL2>. |
3、檢查多個欄位,使用CHAIN | CHAIN. FIELD <FLD1>. FIELD <FLD2>,<FLD3>,<FLD4>. MODULE <MDL1>. MODULE <MDL2>. ENDCHAIN. 表示FLD1,FLD2,FLD3,FLD4有MDL1,MDL2檢查。 |
4、不是初始值檢查 | FIELD <FLD1> MODULE <MDL1> ON INPUT. ON INPUT表示初始值改變時執行。 特殊情況: FIELD <FLD1> MODULE <MDL1> ON *-INPUT. 表示使用者輸入欄位首字輸入’*’,並切輸入欄位屬性設定了“*”的屬性,MODULE有效。 |
5、有改變的檢查 | FIELD <FLD1> MODULE <MDL1> ON REQUEST. |
6、CHAIN中又自斷不是初始值檢查 | CHAIN. FIELD <FLD1>. FIELD <FLD2>,<FLD3>,<FLD4>. MODULE <MDL1> ON CHAIN-INPUT. MODULE <MDL2>. ENDCHAIN. 注意:CHAIN-INPUT表示FLD1,FLD2,FLD3,FLD4不是初始值時執行MDL1檢查 |