0
点赞
收藏
分享

微信扫一扫

ALV demo:cl_salv_table event:(on_user_command,on_double_click)

非衣所思 2022-10-14 阅读 192

效果图:

ALV demo:cl_salv_table event:(on_user_command,on_double_click)_系统

定义的status

ALV demo:cl_salv_table event:(on_user_command,on_double_click)_系统_02

ALV demo:cl_salv_table event:(on_user_command,on_double_click)_系统_03

code:

REPORT zlm_alv_002.

DATA: gt_spfli TYPE TABLE OF spfli.
DATA: ls_spfli TYPE spfli.
DATA: gr_table TYPE REF TO cl_salv_table.
DATA: gr_functions TYPE REF TO cl_salv_functions_list.
DATA: gr_events TYPE REF TO cl_salv_events_table.
DATA: gr_selections TYPE REF TO cl_salv_selections.

CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT added_function OF cl_salv_events IMPORTING e_salv_function,
on_double_click FOR EVENT double_click OF cl_salv_events_table IMPORTING row column.
ENDCLASS. "lcl_handle_events DEFINITION

DATA: event_handler TYPE REF TO lcl_handle_events.

START-OF-SELECTION.

SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_spfli FROM spfli UP TO 100 ROWS.

CALL METHOD cl_salv_table=>factory IMPORTING r_salv_table = gr_table CHANGING t_table = gt_spfli.

gr_table->set_screen_status( pfstatus = 'SALV_TABLE_STANDARD'
report = sy-repid
set_functions = gr_table->c_functions_all ).

gr_events = gr_table->get_event( ).
CREATE OBJECT event_handler.
SET HANDLER event_handler->on_user_command FOR gr_events.
SET HANDLER event_handler->on_double_click FOR gr_events.

* Set up selections.
gr_selections = gr_table->get_selections( ).
gr_selections->set_selection_mode( 1 ). "Single

* Display
gr_table->display( ).

CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
"Get the selection rows
DATA: lr_selections TYPE REF TO cl_salv_selections.
DATA: lt_rows TYPE salv_t_row.
DATA: ls_rows TYPE i.
DATA: message TYPE string.
CASE e_salv_function.
WHEN 'MYFUNCTION'.
lr_selections = gr_table->get_selections( ).
lt_rows = lr_selections->get_selected_rows( ).

READ TABLE lt_rows INTO ls_rows INDEX 1.
READ TABLE gt_spfli INTO ls_spfli INDEX ls_rows.
CONCATENATE ls_spfli-carrid ls_spfli-connid ls_spfli-cityfrom ls_spfli-cityto INTO message SEPARATED BY space.
MESSAGE i001(00) WITH 'You pushed the button!' message.
ENDCASE.
ENDMETHOD. "on_user_command

METHOD on_double_click.
DATA: message TYPE string.
DATA: row_c(4) TYPE c.
row_c = row.
CONCATENATE 'Row' row_c 'Column' column INTO message SEPARATED BY space.
MESSAGE i001(00) WITH 'You double-clicked on ' message.
ENDMETHOD.
ENDCLASS.


ALV demo:cl_salv_table event:(on_user_command,on_double_click)_系统_04




举报

相关推荐

0 条评论