abap--REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系

一、SLIS定义的ALV的事件名称
* Events
slis_ev_item_data_expand    type slis_formname value 'ITEM_DATA_EXPAND',
slis_ev_reprep_sel_modify  type slis_formname value 'REPREP_SEL_MODIFY',
slis_ev_caller_exit_at_start  type slis_formname value 'CALLER_EXIT',
slis_ev_user_command        type slis_formname value 'USER_COMMAND',
slis_ev_top_of_page         type slis_formname value 'TOP_OF_PAGE',
slis_ev_data_changed        type slis_formname value 'DATA_CHANGED',
slis_ev_top_of_coverpage    type slis_formname value 'TOP_OF_COVERPAGE',
slis_ev_end_of_coverpage    type slis_formname value 'END_OF_COVERPAGE',
slis_ev_foreign_top_of_page  type slis_formname value 'FOREIGN_TOP_OF_PAGE',
slis_ev_foreign_end_of_page  type slis_formname value 'FOREIGN_END_OF_PAGE',
slis_ev_pf_status_set       type slis_formname value 'PF_STATUS_SET',
slis_ev_list_modify         type slis_formname value 'LIST_MODIFY',
slis_ev_top_of_list         type slis_formname value 'TOP_OF_LIST',
slis_ev_end_of_page         type slis_formname value 'END_OF_PAGE',
slis_ev_end_of_list         type slis_formname value 'END_OF_LIST',
slis_ev_after_line_output   type slis_formname value 'AFTER_LINE_OUTPUT',
slis_ev_before_line_output  type slis_formname value  'BEFORE_LINE_OUTPUT',
slis_ev_subtotal_text       type slis_formname value  'SUBTOTAL_TEXT',
slis_ev_context_menu        type slis_formname value 'CONTEXT_MENU'.

二、和事件相关的函数
2.1 获取所有事件到内表
  data  ct_events type slis_t_event.
  call function 'REUSE_ALV_EVENTS_GET'
    exporting
      i_list_type     = 4
    importing
      et_events       = ct_events
    exceptions
      list_type_wrong = 1
      others          = 2.
注意: i_list_type值说明:
0 = simple list                          REUSE_ALV_LIST_DISPLAY
1 = hierarchcal-sequential list          REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = simple block list                    REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarchical-sequential block list   REUSE_ALV_BLOCK_LIST_HS_APPEND
4 =simple  grid   REUSE_ALV_GRID_DISPLAY

2.2 获取所有事件名称
REUSE_ALV_EVENT_NAMES_GET

三、CL_GUI_ALV_GRID的事件和 REUSE_ALV_GRID_DISPLAY定义的子过程对应关系

CL_GUI_GRID's EventREUSE_ALV_GRID_DISPLAY函数设置的用户定义子过程
end_of_listcallback_html_end_of_list
callback_end_of_list
print_end_of_listcallback_end_of_list
end_of_pagecallback_end_of_page
top_of_pagecallback_html_top_of_page
callback_top_of_page
print_top_of_pagecallback_top_of_page
user_command callback_user_command
data_changedcallback_data_changed
after_user_commandcallback_user_command(注意:根据函数设置先后触发CL_GUI_GRID的"TOP_OF_PAGE"和"END_OF_LIST"事件)
before_user_commandcallback_user_command
after_refresh无,系统根据选中设置grid的行选中处理
call method gt_grid-grid->set_selected_rows
      exporting
        it_index_rows = lt_rows.
double_clickcallback_user_command
hotspot_click(同double_click)callback_user_command
subtotal_textcallback_subtotal_text
context_menu_requestcallback_context_menu
 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
使用REUSE_ALV_GRID_DISPLAY_LVC函数的box_fname属性可以在ALV表格中创建选择框列。如果您需要在用户勾选或取消勾选某一行时触发相应的事件,可以通过以下步骤实现: 1. 在LVC_S_FCAT结构体中,为选择框列添加一个fieldname。您可以为该列指定一个唯一的名称,例如'SELECTION'. 2. 在LVC_T_EVENT结构体中,为该选择列添加一个事件处理程序。可以使用程序名和事件名称来指定事件处理程序。例如,您可以使用'ON_CLICK'事件来处理用户单击选择框列中的某一行时触发的事件。 3. 在事件处理程序中,您可以使用参数P_EVENT来获取用户选择的行信息。这个参数是一个结构体型的变量,包含了有关用户选择的行的信息。您可以使用其中的GRID_ROW和GRID_COLUMN属性来获取行和列的索引。 下面是一个简单的示例,演示如何在REUSE_ALV_GRID_DISPLAY_LVC中处理选择框列的单击事件: ``` DATA: lt_fieldcat TYPE lvc_t_fcat, lt_events TYPE lvc_t_event. * 添加选择框列 lt_fieldcat-fieldname = 'SELECTION'. lt_fieldcat-seltext_m = 'Select'. APPEND lt_fieldcat TO lt_fieldcat. * 添加单击事件处理程序 CLEAR lt_events. lt_events-eventid = cl_gui_alv_grid=>mc_evt_click_cell. lt_events-form = 'ON_CLICK'. APPEND lt_events TO lt_events. * 显示ALV表格 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid it_fieldcat = lt_fieldcat it_events = lt_events i_save = 'A' TABLES t_outtab = lt_data. * 事件处理程序 FORM on_click USING p_event TYPE slvc_fullscreen_event. DATA: lv_row TYPE i. lv_row = p_event-grid_row. IF lv_row <> 0. IF lt_data[ lv_row ]-selection = abap_true. " 用户勾选了该行 ELSE. " 用户取消勾选了该行 ENDIF. ENDIF. ENDFORM. ``` 希望这个示例能够帮助您处理REUSE_ALV_GRID_DISPLAY_LVC函数的选择框列事件。如果您有其他问题或疑问,请随时提出。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值