ABAP 选择屏幕添加F4搜索帮助
本文以WERKS举例,但实际中,WERKS这种,选择字段直接参照数据库内标准字段,系统会自带F4选择帮助。如果没有直接可参考的标准字段,需通过函数: F4IF_INT_TABLE_VALUE_REQUEST来实现。此功能很简单,下面贴出代码,看看就明白了。
"存放搜索帮助显示的内容
TYPES:BEGIN OF TY_TAB,
WERKS TYPE MARC-WERKS,
END OF TY_TAB.
DATA:GT_TAB TYPE TABLE OF TY_TAB WITH HEADER LINE.
SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN COMMENT 1(31) TEXT-003.
PARAMETERS:
P_WERKS TYPE CHAR4.
SELECTION-SCREEN:END OF BLOCK B1.
INITIALIZATION.
"选择屏幕输入框右侧加上搜索帮助图标
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_WERKS.
"取数(工厂)
SELECT WERKS INTO CORRESPONDING FIELDS OF TABLE GT_TAB FROM MARC.
SORT GT_TAB BY WERKS.
DELETE ADJACENT DUPLICATES FROM GT_TAB COMPARING ALL FIELDS.
*将取到的值通过函数显示在搜索帮助显示框中
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
RETFIELD = '' "这个参数为帮助表中返回到选择屏幕的字段的参数
* PVALKEY = ' '
DYNPPROG = SY-REPID "当前程序,不写会有问题
DYNPNR = SY-DYNNR "当前屏幕,不写会有问题
DYNPROFIELD = 'P_WERKS' "选择屏幕上需要加F4帮助的字段
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
VALUE_ORG = 'S' "默认为C但是此处不用S不行
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
VALUE_TAB = GT_TAB "F4帮助值的表
* FIELD_TAB =
* RETURN_TAB =
* DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
*Implement suitable error handling here
ENDIF.
START-OF-SELECTION.
PERFORM FRM_GET_DATA.
PERFORM FRM_DIS_DATA.
END-OF-SELECTION.
FORM FRM_GET_DATA.
ENDFORM.
FORM FRM_DIS_DATA.
ENDFORM.
"GUI状态
FORM FRM_STATUS USING LT_EXTAB.
SET PF-STATUS 'STANDARD'.
ENDFORM.
post SAP-Garson
原文链接:https://blog.csdn.net/qq_42080586/article/details/123551976文章来自于网络,如果侵犯了您的权益,请联系站长删除!