ABAP DIALOG ALV

1.子屏幕代码

  IF GR_ALVGRID IS INITIAL.

    GT_FIELDCAT = VALUE #( ( FIELDNAME = 'EBELN'  COLTEXT = '采购凭证' )
                           ( FIELDNAME = 'EBELP'  COLTEXT = '行项目' )
                           ( FIELDNAME = 'MATNR'  COLTEXT = '物料号' )
                           ( FIELDNAME = 'WERKS'  COLTEXT = '工厂' )
                           ( FIELDNAME = 'LGORT'  COLTEXT = '仓库' )
                           ( FIELDNAME = 'MENGE'  COLTEXT = '数量' )
     ).

    GS_LAYOUT-ZEBRA = 'X' .
    GS_LAYOUT-GRID_TITLE = '采购信息' .
*    GS_LAYOUT-SMALLTITLE = 'X' .
*    GS_LAYOUT-NO_TOOLBAR = ' '.
    GS_LAYOUT-CWIDTH_OPT = 'X'.

    CREATE OBJECT ALV_CUSTOM_CONTAINER1
      EXPORTING
        CONTAINER_NAME = 'CONTAINER1'.   "屏幕容器名称
    CREATE OBJECT GR_ALVGRID
      EXPORTING
        I_PARENT      = ALV_CUSTOM_CONTAINER1
        I_APPL_EVENTS = 'X'.
    CONCATENATE SY-REPID SY-DYNNR 'U' INTO GS_VARIANT-REPORT.

*    CREATE OBJECT event_receiver.
*
*    SET HANDLER event_receiver->HANDLE_TOOLBAR FOR GR_ALVGRID.

    CALL METHOD GR_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        I_BYPASSING_BUFFER   = 'X'
        I_BUFFER_ACTIVE      = ''
        IS_LAYOUT            = GS_LAYOUT   "样式设定
        IT_TOOLBAR_EXCLUDING = GT_EXCLUDE  "排除现有功能码
        I_SAVE               = 'A'
        IS_VARIANT           = GS_VARIANT
      CHANGING
        IT_OUTTAB            = GT_EKPO[]
        IT_FIELDCATALOG      = GT_FIELDCAT[].

    SET HANDLER LCL_EVENT_RECEIVER=>HANDLE_TOOLBAR FOR GR_ALVGRID.
    SET HANDLER LCL_EVENT_RECEIVER=>HANDLE_USER_COMMAND FOR GR_ALVGRID.
    SET HANDLER LCL_EVENT_RECEIVER=>handle_double_click FOR GR_ALVGRID.
    CALL METHOD GR_ALVGRID->SET_TOOLBAR_INTERACTIVE.

  ELSE.
    CALL METHOD GR_ALVGRID->REFRESH_TABLE_DISPLAY.
  ENDIF.

追加按钮类

DATA:
  ALV_CUSTOM_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER, "ALV对象
  GR_ALVGRID           TYPE REF TO CL_GUI_ALV_GRID, "ALV对象
  GS_VARIANT            TYPE DISVARIANT,
  GT_FIELDCAT          TYPE LVC_T_FCAT,
  GS_LAYOUT            TYPE LVC_S_LAYO,
  GT_EXCLUDE            TYPE UI_FUNCTIONS . "存放排除按钮的内表

*定义ALV自定义控件
CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED.

DATA:event_receiver TYPE REF TO LCL_EVENT_RECEIVER.

CLASS LCL_EVENT_RECEIVER DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS HANDLE_TOOLBAR FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
       IMPORTING E_OBJECT E_INTERACTIVE.

    CLASS-METHODS:
      handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING e_row e_column,

      HANDLE_USER_COMMAND FOR EVENT user_commANd of cl_gui_alv_grid
        IMPORTING E_UCOMM,
      
      HANDLE_DATA_CHANGE FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
        IMPORTING ER_DATA_CHANGED E_UCOMM.



ENDCLASS.

CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.

  METHOD HANDLE_TOOLBAR.

    DATA:
        LS_TOOLBAR TYPE STB_BUTTON,
        LS_BTNMNU  TYPE STB_BTNMNU.

    LS_TOOLBAR-FUNCTION = 'SELE'.
    LS_TOOLBAR-ICON = '@DH@'.
    LS_TOOLBAR-QUICKINFO = '日志记录'.
    LS_TOOLBAR-DISABLED = ''.
    LS_TOOLBAR-TEXT = '日志记录'.
    APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.

*    LS_BTNMNU-FUNCTION = 'SELE'.
*
*    APPEND LS_BTNMNU TO E_OBJECT->MT_BTNMNU.

  ENDMETHOD.


  METHOD handle_double_click.
    PERFORM handle_double_click USING e_row e_column.
  ENDMETHOD.                    "handle_double_click

  METHOD HANDLE_USER_COMMAND.
    PERFORM FRM_ALV_USER_COMMAND USING E_UCOMM.
  ENDMETHOD.


ENDCLASS.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随记随心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值