以下为个人的简单思路
画布效果如下:
关键点在于程序包的写法
1、以下为包体部分
PACKAGE BODY CUX_SUBMIT_REQUEST_PKG IS
PROCEDURE CUX_SUBMIT_REQUEST(p_ledger number, p_company varchar2, p_account varchar2,p_period varchar2 ) IS
v_request_id NUMBER;
BEGIN
FND_GLOBAL.APPS_INITIALIZE(FND_GLOBAL.USER_ID,
FND_GLOBAL.RESP_ID,
FND_GLOBAL.RESP_APPL_ID);
v_request_id := FND_request.SUBMIT_request( 'CUX',
'CUX_VOU_BAL_PRG',
NULL,
NULL,
FALSE,
p_ledger,
p_company,
p_account,
p_period,
CHR(0), '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '' );
IF v_request_id = 0 THEN
FND_MESSAGE.set_string('请求提交失败');
FND_MESSAGE.ERROR;
ELSE
COMMIT;
FND_MESSAGE.SET_STRING('请求已提交,请等待');
FND_MESSAGE.show;
END IF;
END;
包体分析:
(1)其中(p_ledge,, p_company, p_account, p_period)为输入的3个参数,从form前端向触发器传入相应参数,
(2)FND_GLOBAL.APPS_INITIALIZE(FND_GLOBAL.USER_ID,
FND_GLOBAL.RESP_ID,
FND_GLOBAL.RESP_APPL_ID);
将数据初始化,不然会出现FND_request.SUBMIT_request,一直返回值为0,也就是提交失败,FND_request.SUBMIT_request的相关知识,单独做说明,
(3)
; FND_MESSAGE.set_string('请求提交失败');
FND_MESSAGE.ERROR;
涉及到 fnd_message的相关应用,在其他文档有详细说明
传入参数,触发器的设置
新建block,在其中建立下面5个项,前4个项写出lov,后一个项(button)在触发器。
进入画布设置格式即可