最近做了一些ABAP的TABLE-CONTROL的开发,在实现SEARCH HELP时花费了一些精力。
特根据自己的经验和从网上找了一些资料总结如下。
情况一:使用标准的字段的搜索帮助
情况二:只需要一个或者几个固定值
在process after input处理里面用values实现
代码如下
PROCESS AFTER INPUT.
field p_user values ('用户一','用户二','用户三').
实现效果如下
上面的用法还可以和NOT,BETWEEN...AND连用,比如公司代码在'AR01''AU01'之间的公司代码
代码:
PROCESS AFTER INPUT.
field p_user values ('用户一','用户二','用户三').
FIELD P_BUKRS values VALUES ('1000', NOT '2000', BETWEEN 'AR01' AND
'AU01').
实现效果:
情况三 如果该字段可以从数据库中唯一确定,可以用select方法实现
代码:
PROCESS AFTER INPUT.
FIELD P_BUKRS select * from t001 where bukrs = 'AR01'.
实现效果
该方法对TC里面的字段同样有效。
示例:
PROCESS AFTER INPUT.
FIELD P_BUKRS select * from t001 where bukrs = 'AR01'.
LOOP AT G_TC_TEST_ITAB.
CHAIN.
FIELD T001-BUKRS select * from t001 where bukrs = 'AR01'.
ENDCHAIN.
ENDLOOP.
二使用函数'F4IF_INT_TABLE_VALUE_REQUEST' 实现
代码示例:
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BUKRS'
dynpprog = lv_repid
dynpnr = lv_dynnr
dynprofield = 'I_ITEM-BUKRS'
value_org = 'S'
TABLES
value_tab = it_tbukrs
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
注意:上面的内表使用时必须用用已经存在的数据元素进行定义。否则系统找不到该字段的文本描述,在F4界面将不会显示。
三对于日期型的字段的搜索帮助的实现
并且把下面的可能条目选择"1"
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10350860/viewspace-663220/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10350860/viewspace-663220/