您的位置:首页 > 其它

SAP ABAP F4的检索帮助(包括自定义检索帮助)

2014-02-12 09:17 477 查看
abap开发中,检索帮助的方法大概有4种,下面进行简单描述下。

1. 参照数据库字段,用数据字典自带的检索帮助,或者参照字段的定义域实现F4检索帮助。也是最简单的方法,参照字段定义即可。

2. SE11里面创建一个检索帮助ID(search_help),然后再定义的时候,使用MATCHCODE OBJECT search_help 绑定即可。

3. 使用函数'F4IF_INT_TABLE_VALUE_REQUEST'实现。

具体方法如下:

3-1.添加VALUE-REQUEST事件

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s1-low.

* 检索帮助(年/月)

PERFORM frm_s1_low_f4.

3-2.在子程序中实现检索帮助

FORM frm_s1_low_f4.

DATA lt TYPE STANDARD TABLE OF dd07v.

**************************************************

* 如果要获取某字段的定义域的值作为检索帮助的话,可以使用以下函数。

CALL FUNCTION 'DD_DOMVALUES_GET'

EXPORTING

domname = 'ZZLZT' "有定义域的字段

text = 'X' "要获取该定义域对应的文本

TABLES

dd07v_tab = lt

EXCEPTIONS

WRONG_TEXTFLAG = 1

OTHERS = 2

.

IF sy-subrc <> 0.

* Implement suitable error handling here

ENDIF.

* 把上面获取到的值,绑定到S1-LOW字段上

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'DOMVALUE_L' "lt内表里面的字段

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S1-LOW' "画面上绑定字段

value_org = 'S'

callback_program = sy-repid

TABLES

value_tab = lt "需要显示帮助的值内表

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS
= 3.

IF sy-subrc <> 0.

* Implement suitable error handling here

ENDIF

4. 使用函数'F4IF_FIELD_VALUE_REQUEST'实现。

F4 help for fields that are only known at runtime这是这个函数的描述,即运行时使用。

在日常的工作中,其实都是在运行时使用,所以就当正常的函数使用就可以了。

实现方法如下:

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname
= gs_selfields-tabname “数据字典中的表明

fieldname =
gt_Selfields-fieldname ”数据字典中的字段名

* value
= selval

TABLES

return_tab
= return_tab

EXCEPTIONS

FIELD_NOT_FOUND =
1

NO_HELP_FOR_FIELD =2

INCONSISTENT_HELP =3

NO_VALUES_FOUND
= 4

OTHERS =
5.

运行这个函数就会弹出F4帮助界面的值选择窗口,

窗口中的值就是tabname中字段fieldname的所有可选值,当选择某个值后,

那么这个值和其相关的属性就会存放到表return_tab中。这里不详细列举,请developer们自行测试。

深入研究发现,这个函数隶属于函数组SDHI(外部应用程序 F4 界面模块),

在这个函数组中有很多可用的允许开发者自定义帮助的函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐