一般来说,标准的字段都可以用SE11来创建搜索帮助,但是有时候这里的满足不了需求或者,相同的数据元素需要用不同的搜索帮助类型,就需要用别的方式实现
1、用函数:F4IF_INT_TABLE_VALUE_REQUEST 来传递内表显示
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_kunnr2.
PERFORM show_f4.
FORM show_f4.
TYPES: BEGIN OF t_kunnrhelp,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
stras TYPE kna1-stras,
END OF t_kunnrhelp.
DATA:wa_kunnrhelp TYPE t_kunnrhelp,
it_kunnrhelp LIKE TABLE OF wa_kunnrhelp.
SELECT kna1~kunnr kna1~name1 kna1~stras INTO CORRESPONDING FIELDS OF TABLE it_kunnrhelp
FROM kna1 INNER JOIN knvv ON kna1~kunnr = knvv~kunnr
WHERE knvv~vkorg = '1006' AND kna1~name1 LIKE '%湖南省%'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KUNNR'
dynpprog = sy-cprog
dynpnr = '1000'
dynprofield = 'S_KUNNR2'
value_org = 'S'
TABLES
value_tab = it_kunnrhelp
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR it_kunnrhelp.
FREE: it_kunnrhelp.
ENDFORM.
知识兔2、还有一种,可以更改显示新的搜索帮助,适用于同一个数据元素想显示多种搜索帮助样式。
好像是这个函数:F4IF_FIELD_VALUE_REQUEST