zoukankan      html  css  js  c++  java
  • OO实现ALV-SALV-实战攻略3-2-ALV工具栏自定义按钮展示方式

    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_STANDARD1'
        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( ).

     其中格式状态需要使用SE41自建一个或者复制一个标准的后自己添加一些按钮。

  • 相关阅读:
    Vue 插件写法
    js创建对象的多种方式及优缺点
    webpack原理与实战
    发布高性能迷你React框架anu
    Windows 同一时候开启核心显卡与独立显卡(不接显示器启动核芯显卡)
    基于QT和OpenCV的人脸检測识别系统(1)
    Cocos2d-x中背景音乐播放暂停与继续
    使用Xcode和Instruments调试解决iOS内存泄露
    Shell 命令行快捷键
    ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展(实例)
  • 原文地址:https://www.cnblogs.com/BruceKing/p/14628068.html
Copyright © 2011-2022 走看看