ALV demo:cl_salv_table event:(on_user_command,on_double_click)_SAP刘梦_新浪博客

效果图:
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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值