OOALV编辑列如何编辑完该列跳转到下一列或下一行

当使用OOALV处理业务,输入MPNID后自动跳转到CATONID。关键在于注册handle_data_changed事件,监测数据变化。在事件处理中,获取当前焦点行和列,比较内表数据,根据ZMPNID和ZXMCARTONID字段更新焦点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当业务场景为扫码枪输入的时候,我们如何实现该功能:
在这里插入图片描述
当输入MPNID后自动跳转到客户CATONID
直接看实现方法:
首先这里是用OOALV实现的,所以需要注册handle_data_changed事件,在这里去监测当数据改变时触发:
在这里插入图片描述handle_data_changed中代码实现:

DATA:lv_i(20) TYPE c.
  DATA : wl_is_row_id    TYPE lvc_s_row,
         wl_is_column_id TYPE lvc_s_col,
         wl_is_row_no    TYPE lvc_s_roid.
  DATA: v_row TYPE i,
        v_col TYPE i.
  CLEAR:v_row,v_col.
  IF wcl_alv2 IS BOUND.
    "获取当前鼠标焦点行与列
    CALL METHOD wcl_alv2->get_current_cell
      IMPORTING
        e_row = v_row
        e_col = v_col.
    LOOP AT pt_data INTO DATA(ps_data).   "插入的数据
      IF ps_data-fieldname = 'ZMPNID' AND ps_data-value IS NOT INITIAL.
      "fieldname这里直接输入内表列名
        wl_is_row_id-index = v_row.
        wl_is_column_id-fieldname = 'ZXMCARTONID'.
        wl_is_row_no-row_id = v_row .
        CALL METHOD wcl_alv2->set_current_cell_via_id
          EXPORTING
            is_row_id    = wl_is_row_id
            is_column_id = wl_is_column_id
            is_row_no    = wl_is_row_no.
      ELSEIF ps_data-fieldname = 'ZXMCARTONID' AND ps_data-value IS NOT INITIAL.
        wl_is_row_id-index = v_row.
        wl_is_column_id-fieldname = 'ZHU'.
        wl_is_row_no-row_id = v_row .
        CALL METHOD wcl_alv2->set_current_cell_via_id
          EXPORTING
            is_row_id    = wl_is_row_id
            is_column_id = wl_is_column_id
            is_row_no    = wl_is_row_no.
*      gs_data-zmpnid = ''.  "插入新的行项目
*      APPEND gs_data TO gt_data.
*      CALL METHOD wcl_alv2->refresh_table_display
*        EXCEPTIONS
*          finished = 1
*          OTHERS   = 2.
**      SET CURSOR FIELD 'ZSY_D_SD66-ZHU'.
      ENDIF.
    ENDLOOP.
  ENDIF.

感兴趣的小伙伴可以试试哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值