经常用户会有需求,比如在自开发的报表中双击物料凭证号就可以进入到系统标准的物料凭证界面去,下面就是实现代码:
例子1:
FORM link_mb03 USING p_mblnr.
IF p_mblnr IS NOT INITIAL.
SET PARAMETER ID 'MBN' FIELD p_mblnr.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM.
例子2:
FORM layout_init CHANGING is_layout TYPE slis_layout_alv.
is_layout-colwidth_optimize = 'X'. " ALV¸ width
is_layout-f2code = 'ZDET'.
ENDFORM. " layout_init
FORM eventtab_build CHANGING it_events TYPE slis_t_event .
DATA: ls_event TYPE slis_alv_event.
MOVE 'USER_COMMAND' TO ls_event-name.
MOVE 'USER_COMMAND' TO ls_event-form.
APPEND ls_event TO it_events.
CLEAR ls_event.
ENDFORM. "eventtab_build
FORM user_command USING rf_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE rf_ucomm.
WHEN 'ZDET'.
CASE rs_selfield-fieldname.
WHEN 'LIFNR'.
READ TABLE it_result INTO wa_result INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'LIF' FIELD wa_result-lifnr .
SET PARAMETER ID 'BUK' FIELD wa_result-bukrs .
SET PARAMETER ID 'EKO' FIELD wa_result-ekorg .
CALL TRANSACTION 'XK03'.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM. "user_command
如何知道PARAMETER ID 的名字,及有几个PARAMETER ID ?
手工键入TCODE,在屏幕可能是或者需要PARAMETER ID 的地方(文本框等)按F1, 在其中的技术信息中如果有PARAMETER ID 一栏,说明有此PARAMETER ID ,那么文本框里的就是他的名字,在程序中直接给他赋值就好了。