用户希望点击ALV报表上某个字段值跳转到详情界面,如点击工单号跳转到CO03工单详情界面,点击采购编号跳转到ME23N查看采购订单详情界面
步骤
1.在fieldcat设置热点效果,不设置也行
为AUFNR字段的热点属性赋值
实现效果:
2.点击跳转事件
在USER_COMMAND事件中设置断点
点击工单号进入DEBUG,可以看到p_ucomm参数的值
2.编写用户操作
p_rs_selfield-fieldname 赋值为字段名称;
进入co03在需要的字段处按F1,查看技术信息中该字段的参数ID;
AND SKIP FIRST SCREEN能够跳过输入工单号直接执行程序
代码如下:
FORM frm_user_command USING p_ucomm TYPE sy-ucomm
p_rs_selfield TYPE slis_selfield.
DATA:
ls_grid TYPE REF TO cl_gui_alv_grid. "GRID定义
* 取得屏幕更新数据
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ls_grid.
CALL METHOD ls_grid->check_changed_data.
CASE p_ucomm.
WHEN '&IC1'."用户在表格上做了操作
IF p_rs_selfield-fieldname = 'AUFNR'.
SET PARAMETER ID 'ANR' FIELD p_rs_selfield-value.
CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE .
*-同时内表中的数据也随之刷新
p_rs_selfield-col_stable = 'X' . " 行
p_rs_selfield-row_stable = 'X' . " 列
p_rs_selfield-refresh = 'X' . " 当用户在显式界面上对数据进行修改时,
ENDFORM.