FUN ALV TOOLBAR 增加自定义按钮

1.到标准程序SAPLKKBL 拷出SCREEN STATUS 
STANDARD_FULLSCREEN至自己的程序中。
2.在拷过来的STATUS 中新增自己想要的按钮
3.在调用ALV显示时增加有如下两个重要参数。
    i_callback_pf_status_set  'SET_PF_STATUS' "PBO事件
      i_callback_user_command   'ALV_USER_COMMAND'"PAI事件

具体调用如下:
    CALL  FUNCTION  'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
            i_callback_pf_status_set  'SET_PF_STATUS'
            i_callback_user_command    'ALV_USER_COMMAND'
            i_callback_program              g_repid
            is_layout                                gs_layout
            it_fieldcat                            gt_fieldcat[]
            i_save                                      'X'
            is_variant                              v_stru_disvar
            it_events                                git_events[]
            it_sort                                    it_sort[]
            is_print                                  gs_print
        TABLES
            t_outtab                                  gt_data
        EXCEPTIONS
            program_error                        1
            OTHERS                    2 .

编写FORM SET_PF_STATUS和ALV_USER_COMMAND 。

FORM alv_user_command  USING r_ucomm  LIKE sy -ucomm
                                rs_selfield  TYPE slis_selfield .
    DATA :ref_grid  TYPE  REF  TO cl_gui_alv_grid .

    CALL  FUNCTION  'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
            e_grid  ref_grid .

    BREAK -POINT .

    CASE r_ucomm .
    "自定义事件处理
    ENDCASE .


    CALL  METHOD ref_grid ->check_changed_data .
    rs_selfield - refresh  'X' .   "刷新内表
ENDFORM

FORM set_pf_status  USING rt_extab  TYPE slis_t_extab .
    SET  PF-STATUS  'STANDARD' ."从标准拷出来并修改的STATUS
ENDFORM.    

你可能感兴趣的:(FUN ALV TOOLBAR 增加自定义按钮)