FORMS进阶之——增加按钮并响应执行数据库包存储过程

1.新建控制块CONTROL

2.新建两个按钮(提交,取消),设置属性,把前面笔记建的那两个删掉
   *把两个按钮挨近一点,会变为弧形效果


2.增加两HSS包:
HSS_API (包规格)
 
     
PACKAGE HSS_API IS
g_true CONSTANT VARCHAR2(1) := upper('t');
g_false CONSTANT VARCHAR2(1) := upper('f');
g_miss_num CONSTANT NUMBER := 9.99e125;
g_miss_char CONSTANT VARCHAR2(1) := chr(0);
g_miss_date CONSTANT DATE := to_date('1','j');
g_ret_sts_success CONSTANT VARCHAR2(1) := upper('s');
g_ret_sts_warning CONSTANT VARCHAR2(1) := upper('w');
g_ret_sts_error CONSTANT VARCHAR2(1) := upper('e');
g_ret_sts_unexp_error CONSTANT VARCHAR2(1) := upper('u');
END HSS_API;

HSS_FORM_UTL(包规格、包体)
 
     
PACKAGE HSS_FORM_UTL IS
PROCEDURE display_errors;
END HSS_FORM_UTL;

 
     
PACKAGE BODY HSS_FORM_UTL IS
-------------------------------------------------------------------------
--|This procedure is used to display errors from database |
-------------------------------------------------------------------------
PROCEDURE display_errors IS
l_con BOOLEAN;
l_count NUMBER;
BEGIN
l_count:=fnd_msg_pub.count_msg;
IF l_count=1 THEN
fnd_message.set_string(fnd_msg_pub.get(p_msg_index=>1,p_encoded =>upper('f') ));
fnd_message.show;
ELSIF l_count>1 THEN
FOR i IN 1..l_count LOOP
fnd_message.set_string(fnd_msg_pub.get(p_msg_index=>i,p_encoded =>upper('f') )||' ( '||i||' / '||l_count||' )');
l_con:=fnd_message.warn;
EXIT WHEN NOT l_con;
END LOOP;
END IF;
fnd_msg_pub.delete_msg;
END display_errors;
 
BEGIN
fdrcsid('$header: handstand.pld 115.1 2005/09/26 19:29:00 jim.lin ship $');
END HSS_FORM_UTL;

3、在按钮“提交”新增触发器WHEN-BUTTON-PRESSED
参考代码如下:
 
     
DECLARE
x_return_status VARCHAR2(20);
x_msg_count NUMBER;
x_msg_data VARCHAR2(3000);
BEGIN
commit_changed;
go_block('HEADERS');
cux_om_order_10000_pub.submit_order(p_api_version => 1.0,
p_init_msg_list => hss_api.g_true,
p_commit => hss_api.g_true,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_om_header_id => :headers.header_id);
IF x_return_status <> hss_api.g_ret_sts_success THEN
hss_form_utl.display_errors;
RAISE form_trigger_failure;
END IF;
:parameter.g_query_find := 'TRUE';
:parameter.header_id := :headers.header_id;
app_find.find('HEADERS');
:parameter.g_query_find := 'FALSE';
END;

猜你喜欢

转载自blog.csdn.net/Hehuyi_In/article/details/52210185
今日推荐