狀況假設 :
A-Form(Rcv_transaction) 要呼叫另一客制form (B-Form),由B-Form運算後產生一結果回轉A-Form
Step 1. 建立一function用來取回B-Form的result
例 :
create or replace function
HPX_WEN_TEST_F(I_KEY VARCHAR2) return varchar2 is
T_Result VARCHAR2(100);
T_EXIT VARCHAR2(1) := 'N';
T_EXIT_TIME DATE := SYSDATE+5/(24*60);
begin
WHILE T_EXIT = 'N' LOOP
SELECT DECODE(COUNT(*),
0,'N',
'Y'),
MAX(HC.VALUE_2)
INTO T_EXIT,
T_RESULT
FROM HPX_CONFIG_T HC –假設該table為result
WHERE HC.KEY_ID = 'TEST'
AND
HC.VALUE_1 = I_KEY; --Key值,用來確認所抓取的資料無誤
--
IF T_EXIT_TIME <= SYSDATE THEN
T_EXIT := 'Y'; --逾時離開以避免無窮迴圈
END IF;
END LOOP;
return(T_Result);
end HPX_WEN_TEST_F;
Step 2. 在A-Form的WHEN-NEW-FORM-INSTANCE 加入一LOCAL
VARIABLE KEY的宣告,
及MENU BUTTON的宣告.
例 :
將游標固定至等定ITEM
呼叫B-Form
Step 4. 設定A-Form重新取得控制權後的行為動作.並由判斷KEY是否有值來確認是否要進入該程序
注意 : 由B-Form返回A-Form時只會觸發 WHEN-NEW-ITEM-INSTANCE , 故上步驟會先GO_ITEM.
沒有留言:
張貼留言