一、完整代码
FORM frm_set_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gs_events-name = 'CALLER_EXIT'.
gs_events-form = 'FRM_CALLER_EXIT'.
APPEND gs_events TO gt_events.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_CALLER_EXIT
* 注册回车事件
*&---------------------------------------------------------------------*
FORM frm_caller_exit USING ls_data TYPE slis_data_caller_exit.
CHECK sy-batch = ''. "后台执行获取对象失败
DATA gt_event_receiver TYPE REF TO lcl_event_receiver.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = gcl_alv_grid.
* 设置enter事件
CALL METHOD gcl_alv_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
CALL METHOD gcl_alv_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suGT_OUTle error handling here
ENDIF.
CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR gcl_alv_grid.
SET HANDLER gt_event_receiver->data_changed FOR gcl_alv_grid.
SET HANDLER gt_event_receiver->handle_hotspot_click FOR gcl_alv_grid.
ENDFORM.
二、调用函数
点击,模式

输入需要调用的函数

三、如何找到函数需要定义的字段
首先明确需要的函数,事务码SE37查看函数的导出参数参考的类型,双击改类型

可知,包含两个需要定义的字段
因此在代码中定义如下:

四、填充FRM_CALLER_EXIT注册回车事件
3705

被折叠的 条评论
为什么被折叠?



