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

    xiaoxiao2025-09-06  634

    为各级触发器建立程序单元 一、命名规则: 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;
    转载请注明原文地址: https://ju.6miu.com/read-1302367.html
    最新回复(0)