SAP中如何建立F4搜索帮助
2011-08-22 14:07
621 查看
在写ABAP代码的时候,我们经常会遇到这样的问题,当你自己在数据字典中建立了一个配置表时,你在屏幕上引用了表中的某个字段.同时你想要在屏幕上提供选择,让用户可以直接选择而不用输入内容.这时我们就会用到-F4搜索帮助.接下来我将给大家介绍两种建立搜索帮助的方法.
方法一:在ABAP数据字段中直接建立相关字段的搜索帮助.
具体步骤:
1.事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.
2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.
3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.
4.保存,激活.
5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.
6.保存,激活表.
7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.
注:此方法比较直观,但是有相关的前提:要添加搜索帮助的表中的字段,必须要有参照的数据元素. 没有数据元素无法建立搜索帮助.所以前提就是我们要事先维护好数据元素.
方法二:在ABAP程序中直接写相关代码来实现.
具体步骤:
1.添加VALUE-REQUEST事件.
示例代码:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.
PERFORM FRM_XILEI_SELECT.
2.在子程序中实现搜索帮助功能.
示例代码:
FORM FRM_XILEI_SELECT .
*细类的搜索帮助
DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_XILEI OCCURS 0,
XILEI LIKE ZSFQ10-XILEI,
END OF IT_XILEI.
SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'XILEI'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_XILEI-LOW'
VALUE_ORG = 'S'
CALLBACK_PROGRAM = SY-REPID
TABLES
VALUE_TAB = IT_XILEI
RETURN_TAB = RT_TAB
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.
ENDFORM. " FRM_XILEI_SELECT
3.保存,激活程序后,即可在屏幕上使用搜帮助了.
注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.
总结:两种实现方法,均可以实现搜索帮助的功能,各有特点,可以视具体情况使用.
方法一:在ABAP数据字段中直接建立相关字段的搜索帮助.
具体步骤:
1.事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.
2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.
3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.
4.保存,激活.
5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.
6.保存,激活表.
7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.
注:此方法比较直观,但是有相关的前提:要添加搜索帮助的表中的字段,必须要有参照的数据元素. 没有数据元素无法建立搜索帮助.所以前提就是我们要事先维护好数据元素.
方法二:在ABAP程序中直接写相关代码来实现.
具体步骤:
1.添加VALUE-REQUEST事件.
示例代码:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.
PERFORM FRM_XILEI_SELECT.
2.在子程序中实现搜索帮助功能.
示例代码:
FORM FRM_XILEI_SELECT .
*细类的搜索帮助
DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_XILEI OCCURS 0,
XILEI LIKE ZSFQ10-XILEI,
END OF IT_XILEI.
SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'XILEI'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_XILEI-LOW'
VALUE_ORG = 'S'
CALLBACK_PROGRAM = SY-REPID
TABLES
VALUE_TAB = IT_XILEI
RETURN_TAB = RT_TAB
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.
ENDFORM. " FRM_XILEI_SELECT
3.保存,激活程序后,即可在屏幕上使用搜帮助了.
注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.
总结:两种实现方法,均可以实现搜索帮助的功能,各有特点,可以视具体情况使用.
相关文章推荐
- 【转载】如何建立SAP F4搜索帮助
- sap 搜索帮助的建立
- SAP F4搜索帮助的高级版
- 搜索帮助的建立一(基于维护视图或者参考表)
- SAP 搜索帮助
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE
- 请博友们帮助一下,为什么自己的博客找不到 搜索功能呀,我的博文多了,如何进行搜索呀
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE
- SAP ABAP ALV(LVC)的一个自定义事件(F4帮助事件,回车ENTER按钮事件)的一个实例
- sap自定义搜索帮助
- ABAP--如何在'REUSE_ALV_GRID_DISPLAY'使用自定义F4帮助,返回多个字段以及计算修改其他字段
- 使用matchcode object + 搜索帮助 实现F4
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE
- F4搜索帮助 F4IF_INT_TABLE_VALUE_REQUEST
- F4搜索帮助
- ABAP--如何在'REUSE_ALV_GRID_DISPLAY'使用自定义F4帮助,返回多个字段以及计算修改其他字段
- 如何通过程序实现搜索帮助
- SAP ABAP F4的检索帮助(包括自定义检索帮助)
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE