今天刚做完一个ALV的report,逻辑结构比较简单,其中一个要求是实现ALV中双击某一字段调用一个Tcode。
改功能比较简单,google一下相关的过程,例子介绍比较详细,我实现该过程也算是比较顺利,但是其中一个小问题,让我花费了较多的时间。
下面就copy和说明一下我的实现过程。通过VBAK-VBELN(这里Document Type是B:Quotation),调用VA22,并且直接进入该Quoatation 的change details界面。
1.调用Standard FM
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = sy-repid
i_save = 'A'
it_fieldcat = v_fieldcat
"USER_COMMAND是Double Click Subroutine Form
i_callback_user_command = 'USER_COMMAND'
tables
t_outtab = i_output[]
exceptions
program_error = 1
others = 2.
2. 实现Subroutine Form
form user_command using r_ucomm like sy-ucomm re_selfield type slis_selfield.
case r_ucomm.
"这里的 '&IC1'是Standard double click event,直接使用就可以了 when '&IC1'.
if re_selfield-fieldname = 'VBELN'.
read table i_output index re_selfield-tabindex.
if sy-subrc = 0.
"这里的parameter id的比较快捷的方式是google一下,当然在VA22界面在Quotation 输入框F1就出来了
set parameter id 'AGN' field re_selfield-value.
call transaction 'VA22' and skip first screen.
endif.
endif.
endcase.
endform.
下面附上常用的parameter id值:
- AFN - Inquiry number
- AGN - Quotation number
- AUN - Order number
- LPN - Scheduling agreement number
- KTN - Contract number
- AMN - Assortment number
本文介绍了如何在ALV报告中实现双击某字段调用Transaction VA22,通过VBAK-VBELN获取Quotation并直接进入修改详情界面。详细步骤包括调用标准FM和实现子程序,以及常见参数ID的说明。
515

被折叠的 条评论
为什么被折叠?



