假设我事先创建一个0100的界面如下,要对下面的学校ID设置搜索帮助。
1、静态实现Search Help
首先在数据字典中创建Search Help对象:
保存后激活。
如果是用在数据库内容查询上就要跟Data Element进行关联:
关联后进行数据查询时,ZSCHOOL就会出现搜索帮助,效果如下:
如果是用在界面上的Input/Output Field上,直接在下面指定Search Help对象名就可以了:
效果如下:
此外Domain的固定值/数据库表的Check table等也会实现F4帮助,就不举例了。
2、动态实现Search Help
界面0100下添加如下代码:
PROCESS ON VALUE-REQUEST.
FIELD GV_ZSCHOOL MODULE F4_ZSCHOOL.
此时界面上已经出现了F4的效果:
不过此时是没有效果的。
然后创建MODULE F4_ZSCHOOL:
MODULE F4_ZSCHOOL INPUT.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'ZSCHOOL'
DYNPPROG = 'ZGML_DIALOG'
DYNPNR = '0100'
DYNPROFIELD = 'GV_ZSCHOOL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = GT_SCHOOL
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE.
这里主要是借助函数F4IF_INT_TABLE_VALUE_REQUEST实现的,效果如下: