定义的status demo:cl_salv_tableevent:(on_user_command,on_double_cli..." />
当前位置: 代码迷 >> 综合 >> ALVnbsp;demo:cl_salv_tableamp;nbsp…
  详细解决方案

ALVnbsp;demo:cl_salv_tableamp;nbsp…

热度:36   发布时间:2024-01-18 13:39:46.0
效果图:
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 (  ) .  "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 . 

  相关解决方案