ALV 拖放事件

 *----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
  CLASS lcl_event_receiver DEFINITION.
    PUBLIC SECTION.
*--ALV 拖事件
        handle_drag FOR EVENT ondrag OF cl_gui_alv_grid
                IMPORTING e_row e_column es_row_no e_dragdropobj ,
*--ALV 放事件
        handle_drop FOR EVENT ondrop OF cl_gui_alv_grid
                IMPORTING e_row e_column es_row_no e_dragdropobj .
  ENDCLASS.                    "LCL_EVENT_RECEIVER DEFINITION

 

*----------------------------------------------------------------------*
*       CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
  CLASS lcl_event_receiver IMPLEMENTATION.
    METHOD handle_drag.
      PERFORM handle_drag USING e_row e_column es_row_no e_dragdropobj.
    ENDMETHOD.                    "handle_double_click
    METHOD handle_drop.
      PERFORM handle_drop USING e_row e_column es_row_no e_dragdropobj.
    ENDMETHOD.                    "handle_double_click
  ENDCLASS.                    "LCL_EVENT_RECEIVER IMPLEME

*&---------------------------------------------------------------------*
*&      Form  handle_drag
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_ROW  text
*      -->P_E_COLUMN  text
*      -->P_ES_ROW_NO  text
*      -->P_E_DRAGDROPOBJ  text
*----------------------------------------------------------------------*
  FORM handle_drag  USING   e_row TYPE lvc_s_row
                             e_column TYPE lvc_s_col
                             es_row_no TYPE lvc_s_roid
                             e_dragdropobj TYPE REF TO cl_dragdropobject.
    DATA: dataobj TYPE REF TO lcl_dragdropobj.

    IF e_row-index <> 0 .
      READ TABLE it_alv INDEX e_row-index .
      IF sy-subrc = 0 .

* 数据处理
          CREATE OBJECT dataobj.
          MOVE e_row-index TO dataobj->index.
          e_dragdropobj->object = dataobj.
      ENDIF.
    ENDIF.
  ENDFORM.                    " handle_drag
*&---------------------------------------------------------------------*
*&      Form  handle_drop
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_ROW  text
*      -->P_E_COLUMN  text
*      -->P_ES_ROW_NO  text
*      -->P_E_DRAGDROPOBJ  text
*----------------------------------------------------------------------*
  FORM handle_drop  USING    e_row TYPE lvc_s_row
                              e_column TYPE lvc_s_col
                              es_row_no TYPE lvc_s_roid
                              e_dragdropobj TYPE REF TO cl_dragdropobject.
    DATA: dataobj TYPE REF TO lcl_dragdropobj.

    CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.

      dataobj ?= e_dragdropobj->object.

      IF e_row-index <> 0 .
        READ TABLE it_alv INDEX e_row-index .
        IF sy-subrc = 0 .
*          数据处理
        ENDIF.
      ENDIF.

    ENDCATCH.
    IF sy-subrc <> 0.
* If anything went wrong this is the clean way of aborting the
* drag and drop operation:
      CALL METHOD e_dragdropobj->abort.
    ENDIF.
  ENDFORM.                    " handle_drop

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值