*&---------------------------------------------------------------------* *& Report ZAQ_OO_EVENTS *& *&---------------------------------------------------------------------* *&主要功能: *&类lcl_get_student获取学生信息 *&类lcl_write_student输出学生信息 *&通过类lcl_get_student 获取学生信息后,然后通过事件data_exist把获取的学生信息传递给类lcl_write_student输出 *&---------------------------------------------------------------------* REPORT zaq_oo_events. TABLES:zaq_student. CLASS lcl_get_student DEFINITION. PUBLIC SECTION. DATA gs_student TYPE zaq_student. * 申明事件 EVENTS data_exist EXPORTING VALUE(es_school) TYPE zaq_student. METHODS get_data IMPORTING i_zcode TYPE zaq_student-zcode. ENDCLASS. CLASS lcl_get_student IMPLEMENTATION. METHOD get_data. SELECT SINGLE * FROM zaq_student INTO CORRESPONDING FIELDS OF gs_student WHERE zcode = i_zcode. IF sy-subrc = 0. * 触发事件 把获取的gs_student传出 RAISE EVENT data_exist EXPORTING es_school = gs_student. ELSE. WRITE:/ '取数失败'. ENDIF. ENDMETHOD. ENDCLASS. CLASS lcl_write_student DEFINITION. PUBLIC SECTION. * 事件处理方法 METHODS write_data FOR EVENT data_exist OF lcl_get_student "事件名与事件声明时的名字一致 IMPORTING es_school ."事件参数与事件声明时的参数一致 ENDCLASS. CLASS lcl_write_student IMPLEMENTATION. METHOD write_data. WRITE:/ es_school-zcode,es_school-zsname,es_school-zage. ENDMETHOD. ENDCLASS. DATA lcl_object TYPE REF TO lcl_get_student. DATA event_handle TYPE REF TO lcl_write_student. START-OF-SELECTION. CREATE OBJECT lcl_object. CREATE OBJECT event_handle. * 注册事件处理方法 SET HANDLER event_handle->write_data FOR lcl_object. CALL METHOD lcl_object->get_data EXPORTING i_zcode = '001'.
ABAP OO 事件处理
猜你喜欢
转载自www.cnblogs.com/aqsyc/p/10721633.html
今日推荐
周排行