函数F4IF_INT_TABLE_VALUE_REQUEST的使用
业务场景:选择屏幕字段的搜索帮助只显示特定的值
PERFORM f4_rprct IN PROGRAM zrcsr001 USING ‘S_QYBM-LOW’ CHANGING s_qybm-low.
FORM f4_rprct USING iv_dynprofield TYPE help_info-dynprofld
CHANGING p_rprct TYPE any.
SELECT setname, descript
FROM setheadert
INTO TABLE @DATA(lt_values)
WHERE setclass = '0106'
AND subclass = 'PALM'
AND langu = @sy-langu.
* 创建基于以上内表的搜索帮助
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'SETNAME'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = iv_dynprofield
value_org = 'S'
TABLES
value_tab = lt_values[].
ENDFORM.
例子说明:只显示满足条件的lt_values在选择屏幕中作为用户的输入。
iv_dynprofield:表示选择屏幕字段的输入值,例如S_QYBM-LOW(需要单引号+大写 );
p_rprct:表示返回值对应的字段
参数说明:
RETFIELD:FIELD_TAB中返回字段的名称
DYNPPROG:当前的项目
DYNPNR:屏幕编号
DYNPROFIELD:返回值的屏幕字段名称
VALUE_ORG:返回值 C:一个一个字段返回 S:整个结构一次返回
VALUE_TAB:返回值对应的表