SAP参数输入字段默认不可直接编辑,需通过F4搜索功能带入值:1)在PARAMETERS中,使用AT SELECTION-SCREEN OUTPUT设置屏幕属性为不可输入,并通过F4IF_FIELD_VALUE_REQUEST函数实现F4帮助;2)在Dialog屏幕中,通过MF4模块调用相同函数实现F4搜索功能。两种方式均强制显示搜索帮助界面(display='F'),用户需通过搜索选择值而非直接输入。
1、PARAMETERS,代码与展示效果如下:
PARAMETERS: p_date TYPE SY-DATUM MODIF ID d2,
p_bukrs TYPE zficot064-bukrs MODIF ID d2.
*--------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
CASE screen-name.
WHEN 'P_DATE' OR 'P_BUKRS'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
*--------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'T001'
fieldname = 'BUKRS'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P_BUKRS'
display = 'F'. " <-- Force
2、Dialog屏幕
*&---------------------------------------------------------------------*
*& Module MF4 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE mf4 INPUT.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'T001'
fieldname = 'BUKRS'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'ZFICOT063-BUKRS'
display = 'F'. " <-- Force
ENDMODULE.
展示效果: