首页 > 其他 > 详细

OO实现ALV-SALV-实战攻略3-ALV工具栏自定义按钮展示方式

时间:2021-04-07 20:17:13      阅读:33      评论:0      收藏:0      [点我收藏+]
REPORT ZSALV-01.
*SALV自定义按钮功能
*变量定义
DATA: S_ALV TYPE REF TO CL_SALV_TABLE.
"class 定义
CLASS SALV_DISPLAY DEFINITION."基础类
  PUBLIC SECTION.
    METHODS: DISPLAYDATA ."方法
    EVENTS:FUNCTION ."事件
  PRIVATE SECTION.
    DATA:LR_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS,
         LR_EVENTS    TYPE REF TO CL_SALV_EVENTS.
ENDCLASS.
CLASS SET_HANDLER DEFINITION.
  PUBLIC SECTION.
    "理解为为某个类的事件而产生的方法,相当于将2个类关联起来
    METHODS:USER_COMMAND FOR EVENT ADDED_FUNCTION OF CL_SALV_EVENTS_TABLE"直接使用该类的function事件
      IMPORTING E_SALV_FUNCTION.
ENDCLASS.

"class 实现
CLASS SALV_DISPLAY IMPLEMENTATION.
  METHOD DISPLAYDATA.
    SELECT * INTO TABLE @DATA(LT_VBAK) FROM VBAK UP TO 10 ROWS.
    TRY.
        CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE   = S_ALV  CHANGING T_TABLE = LT_VBAK ).
      CATCH CX_SALV_MSG .
    ENDTRY.
*    LR_FUNCTIONS = S_ALV->GET_FUNCTIONS( ).
*    LR_FUNCTIONS->SET_ALL( ABAP_TRUE ).
    LR_EVENTS = S_ALV->GET_EVENT( ).
    "设置ALV功能
    S_ALV->SET_SCREEN_STATUS(
    PFSTATUS      =  SALV_STANDARD
    REPORT        =  SY-REPID
    SET_FUNCTIONS = S_ALV->C_FUNCTIONS_ALL ).
    "=====事件注册
    DATA:HANDLER TYPE REF TO SET_HANDLER.
    CREATE OBJECT HANDLER.
    SET HANDLER HANDLER->USER_COMMAND FOR ALL INSTANCES.
    S_ALV->DISPLAY( ).
  ENDMETHOD.
ENDCLASS.

CLASS SET_HANDLER IMPLEMENTATION.
  METHOD USER_COMMAND.
    PERFORM USER_CLICK USING E_SALV_FUNCTION.
  ENDMETHOD.

ENDCLASS.
FORM USER_CLICK USING P_SALV_FUNCTION TYPE SALV_DE_FUNCTION.
  CASE P_SALV_FUNCTION.
    WHEN &CLICK.
      MESSAGE 你点击了我! TYPE I.
      S_ALV->REFRESH( ).
  ENDCASE.
ENDFORM.

START-OF-SELECTION.
  DATA:LR_ALV TYPE REF TO SALV_DISPLAY.
  CREATE OBJECT LR_ALV.
  LR_ALV->DISPLAYDATA( ).

技术分享图片

 

OO实现ALV-SALV-实战攻略3-ALV工具栏自定义按钮展示方式

原文:https://www.cnblogs.com/BruceKing/p/14628068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!