定义类
DATA: fieldcat TYPE lvc_t_fcat,
grid TYPE REF TO cl_gui_alv_grid,"alv 控件名
g_container TYPE scrfname VALUE 'ZCONTRL1',
g_custom_container TYPE REF TO cl_gui_custom_container,"容器对象名
layout TYPE lvc_s_layo,
gs_toolbar TYPE stb_button, "按钮.
ui_functions TYPE ui_functions. "隐藏按钮的内表
*----------------------------------------------------------------------*
* CLASS alv_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS alv_event_receiver DEFINITION. "声明类成员可见性
PUBLIC SECTION. "定义相关类成员可以被程序中的所有对象调用
CLASS-METHODS: "静态方法
handle_toolbar "初始化工具栏对象事件,如增加按钮并设定其属性
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,
handle_menu_button "用于在下拉菜单中增加选项
FOR EVENT menu_button OF cl_gui_alv_grid
IMPORTING e_object e_ucomm,
handle_user_command "工具栏中的按钮的单击事件
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid "屏幕中的单击事件,可以具体到某行某列,需要设置热点
IMPORTING e_row_id e_column_id es_row_no,
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid "屏幕中的双击事件,可以具体到某行某列,即使设置热点也必须双击
IMPORTING e_row e_column es_row_no,
"数据改变事件
data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS. "alv_event_receiver DEFINITION
*&---------------------------------------------------------------------*
*& Class (Implementation) alv_event_receiver
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS alv_event_receiver IMPLEMENTATION. "实现类方法
METHOD data_changed."有变化的行项目会进到这个loop
DATA: ls_modi TYPE lvc_s_modi.
DATA: l_lifnr TYPE lfa1-lifnr.
LOOP AT er_data_changed->mt_mod_cells INTO ls_modi.
l_lifnr = ls_modi-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = l_lifnr
IMPORTING
output = l_lifnr.
READ TABLE gt_itab1 INTO gs_itab1 INDEX ls_modi-row_id.
gs_itab1-lifnr = l_lifnr.
SELECT SINGLE name1 INTO gs_itab1-name1 FROM lfa1 WHERE lifnr = l_lifnr.
MODIFY gt_itab1 FROM gs_itab1 INDEX ls_modi-row_id.
CLEAR: gs_itab1, l_lifnr.
DATA: