SAP ABAP alv中设置回车事件

这是一个关于如何在SAP ABAP中处理ALV(Accelerated List Viewer)的回车事件并实现自动刷新的示例代码。程序定义了事件处理函数,包括注册编辑事件、触发稳定刷新的方法,并展示了如何在ALV表格中响应用户输入。
摘要由CSDN通过智能技术生成

* 添加这段刷新代码
  READ TABLE t_data_hz INDEX rs_selfield-tabindex.    " 将变动内容更新到内表
  DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
       IMPORTING
            e_grid = lr_grid.
  CALL METHOD lr_grid->check_changed_data.
  rs_selfield-refresh = 'X'.  "自动刷新

 

 

在from里把function转为OO就可以了
定义了
WA_EVENTS-NAME = 'CALLER_EXIT'.
WA_EVENTS-FORM = 'FM_BUTTON'.
APPEND WA_EVENTS TO GV_EVENTS.

FORM FM_BUTTON USING E_GRID TYPE SLIS_DATA_CALLER_EXIT.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
*   EXPORTING
*     IR_SALV_FULLSCREEN_ADAPTER       =
    IMPORTING
*     ET_EXCLUDING                     =
*     E_REPID                          =
*     E_CALLBACK_PROGRAM               =
*     E_CALLBACK_ROUTINE               =
      E_GRID                           = TEM_GRID
*     ET_FIELDCAT_LVC                  =
*     ER_TRACE                         =
*     E_FLG_NO_HTML                    =
*     ES_LAYOUT_KKBLO                  =
*     ES_SEL_HIDE                      =
*     ET_EVENT_EXIT                    =
*     ER_FORM_TOL                      =
*     ER_FORM_EOL                      =
            .

* 设置enter事件
  CALL METHOD TEM_GRID->REGISTER_EDIT_EVENT
    EXPORTING
      I_EVENT_ID = cl_gui_alv_grid=>mc_evt_enter
    EXCEPTIONS
      ERROR      = 1
      others     = 2
          .

  CREATE OBJECT GV_EVENT_RECEIVER.
  SET HANDLER GV_EVENT_RECEIVER->HANDLE_MODIFY FOR TEM_GRID.
ENDFORM.

GV_EVENT_RECEIVER的类定义:
CLASS LCL_EVENT_RECEIVER DEFINITION.
  PUBLIC SECTION.
    METHODS:
      HANDLE_MODIFY
        FOR EVENT data_changed_finished OF CL_GUI_ALV_GRID
        IMPORTING E_MODIFIED ET_GOOD_CELLS.
ENDCLASS.

CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
  METHOD  HANDLE_MODIFY.
    data        STBL      TYPE LVC_S_STBL.
*   稳定刷新
    STBL-ROW = 'X'." 基于行的稳定刷新
    STBL-COL = 'X'." 基于列稳定刷新
    CALL METHOD TEM_GRID->REFRESH_TABLE_DISPLAY
      EXPORTING
        IS_STABLE      = STBL.
  ENDMETHOD.

*    FREE: TEM_POP_CONTAINER, TEM_POP_ALV.


ENDCLASS.

 

我写的一个测试程序,看看这样行不,可别见笑呀。

*&---------------------------------------------------------------------*
*& Report  ZTEST_TTEST_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTEST_TTEST_ALV.

TYPE-POOLS: SLIS.

TYPES:
  BEGIN OF TYP_VALUE,
    TITLE TYPE CHAR40,
    WAERS TYPE BSID-WAERS,
    DMBTR TYPE BSID-DMBTR,
  END OF TYP_VALUE.

CONSTANTS:
  CNS_H      TYPE CHAR1         VALUE 'H',
  CNS_S      TYPE CHAR1         VALUE 'S',
  CNS_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS_ALV',
  CNS_TOPPG  TYPE SLIS_FORMNAME VALUE 'SET_TOP_OF_PAGE_ALV'.

DATA:
  GT_VALUE      TYPE TABLE OF TYP_VALUE,
  GS_VALUE   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值