ABAP 选择屏幕添加F4搜索帮助

本文介绍了如何在SAP中通过F4IF_INT_TABLE_VALUE_REQUEST函数来实现自定义搜索帮助。代码示例展示了如何在选择屏幕的工厂字段P_WERKS上添加搜索帮助,从数据库获取工厂数据并显示在搜索帮助窗口中,以便用户能方便地进行选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文以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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值