Search Help无疑是SAP技术的一大亮点,即简化了用户的输入也增强了数据的准确性,SAP的标准屏幕字段几乎全部应用了Search Help技术,由于习惯问题现在很多客户都都要求自开发程序也要有search help,所以以后开发程序尽量像SAP标准靠齐吧,闲话不多说了下面说说search help在程序的应用。
在选择屏幕(或者Dialog)字段应用Search Help主要有两种方法
1、直接参考数据表的相关字段
比如: parameters p_01 like zstud-stunum.
parameters p_02 like zstud-stuname.
这种参考数据字典的方式首先必须要创建一个Search Help,然后将表字段链接到这SH也有两种方法
A.直接在SE11的表字段上(这种方式按F4键可能会带出多个值,具体要看SH的参数而定),如图:
B.通过数据元素实现Search help,如图:
2、通过POV事件代码实现Search help功能
data: begin of gtd_stu occurs 0,
stunum like zstud-stunum,
stuname like zstud-stuname,
stugrade like zstud-stugrade,
end of gtd_stu.
parameters p_03 type P decimals 2. (注意这里的P_03没有参考表字段)
at selection-screen on value-request for p_03.
DATA: WLS_RETURN TYPE DDSHRETVAL,
WLT_RETURN LIKE TABLE OF WLS_RETURN.
CLEAR gtd_stu.
REFRESH gtd_stu.
SELECT stunum stuname stugrade
INTO CORRESPONDING FIELDS OF TABLE gtd_stu
FROM zstud.
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
RETFIELD = ‘STUDGRADE’
VALUE_ORG = ‘S’
TABLES
VALUE_TAB = gtd_stu
RETURN_TAB = WLT_RETURN
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
READ TABLE WLT_RETURN INDEX 1 INTO WLS_RETURN.
IF SY-SUBRC EQ 0.
p_03 = WLS_RETURN-FIELDVAL.
ENDIF.
最后介绍一下Search help的相关特性,IMP表示输入,EXP表示输出,如图:
可以看出有蓝色背景的字段是会输出到屏幕字段上的。
调用SAP标准的Search Help:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR aufnr-LOW.
CALL FUNCTION ‘F4IF_FIELD_VALUE_REQUEST’
EXPORTING
TABNAME = ‘COAS’
FIELDNAME = ‘AUFNR’
SEARCHHELP = ‘ORDE’
TABLES
RETURN_TAB = LS
EXCEPTIONS
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
NO_VALUES_FOUND = 4
OTHERS = 5.
IF SY-SUBRC = 0.
READ TABLE LS INDEX 1.
aufnr-LOW = LS-FIELDVAL.
ENDIF.