FORMS进阶之——规范化触发器内容

为各级触发器建立程序单元

一、命名规则:
1.FORM级触发器——表单名
把自己加的
2.块级触发器——块名
3.数据项级触发器——数据项名(不单独建程序单元,而作为块级包中的存储过程)


二、程序模板
1.FORMS级
包规范
 
   
PACKAGE CUXOMWKS11733 IS
PROCEDURE event_handle(event IN VARCHAR2);
END;
包体
 
   
PACKAGE BODY cuxomwks11733 IS
/*==================================================
名称: event_handle
功能描述: FORM级触发器
历史记录: 1.00 2016-08-12 Jim 创建
==================================================*/
PROCEDURE event_handle(event IN VARCHAR2) IS
l_menu1 varchar2(30);
BEGIN
IF (event = 'FORM级触发器1') THEN
触发器1进行的动作
ELSIF (event = 'FORM级触发器2') THEN
触发器2进行的动作
 
......
 
ELSIF (event = 'FORM级触发器n') THEN
触发器n进行的动作
ELSE
app_exception.invalid_argument('程序单元名.EVENT_HANDLE',
'EVENT',
event);
END IF;
END event_handle;
 
END;
2.块级
①数据块里没有项有触发器的
跟上面的FORM级一样

②数据块里有项有触发器的
a.为块级触发器建一个event_handle存储过程共用
b.为项级触发器各建一个存储过程(名字同数据项名)
包规范
 
   
PACKAGE CONTROL IS
PROCEDURE event_handle(event IN VARCHAR2);
PROCEDURE submit(event IN VARCHAR2); --提交按钮存储过程
END;
包体
 
   
PACKAGE BODY CONTROL IS
/*==================================================
名称: event_handle
功能描述: 块级触发器
历史记录: 1.00 2016-08-12 Jim 创建
==================================================*/
PROCEDURE event_handle(event IN VARCHAR2) IS
BEGIN
IF (event = 'PRE-FORM') THEN
NULL;
ELSE
app_exception.invalid_argument('CONTROL.EVENT_HANDLE',
'EVENT',
event);
END IF;
END event_handle;
/*==================================================
名称: submit
功能描述: ITEM级触发器
历史记录: 1.00 2016-08-12 Jim 创建
==================================================*/
PROCEDURE submit(event IN VARCHAR2) IS
x_return_status VARCHAR2(20);
x_msg_count NUMBER;
x_msg_data VARCHAR2(3000);
BEGIN
IF (event = 'WHEN-BUTTON-PRESSED') THEN
commit_changed;
go_block('HEADERS');
cux_om_order_11733_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';
ELSE
app_exception.invalid_argument('SUBMIT.EVENT_HANDLE',
'EVENT',
event);
END IF;
END submit;
 
 
END;

猜你喜欢

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