0
点赞
收藏
分享

微信扫一扫

ALV demo:cl_salv_table&nbsp…

陆佃 2022-06-10 阅读 82

效果图:

ALV <wbr>demo:cl_salv_table <wbr>event:(on_user_command,on_double_click)



定义的status


ALV <wbr>demo:cl_salv_table <wbr>event:(on_user_command,on_double_click)


ALV <wbr>demo:cl_salv_table <wbr>event:(on_user_command,on_double_click)



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 . 



举报

相关推荐

0 条评论