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

    xiaoxiao2025-09-03  340

    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;
    转载请注明原文地址: https://ju.6miu.com/read-1302275.html
    最新回复(0)