当业务场景为扫码枪输入的时候,我们如何实现该功能:
当输入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.
感兴趣的小伙伴可以试试哦!!!