SAP搜索帮助实现代码


前言

开发报表的过程中,查询界面有时候会使用到搜索帮助,这里记录下。


1、F4IF_INT_TABLE_VALUE_REQUEST

此例子是是SAP用户的搜索帮助。

在这里插入图片描述

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ERNAM-LOW.
  DATA:BEGIN OF IT_USER OCCURS 0,
         BNAME      LIKE USER_ADDR-BNAME,
         NAME_TEXTC LIKE USER_ADDR-NAME_TEXTC,
       END OF IT_USER.
  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE IT_USER
    FROM USER_ADDR.
  SELECT WESUSER AS BNAME WESNAME AS NAME_TEXTC
    APPENDING TABLE IT_USER
    FROM ZWES_UNAME.
  SORT IT_USER BY BNAME.
  DELETE ADJACENT DUPLICATES FROM IT_USER COMPARING BNAME.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD         = 'BNAME'
      DYNPPROG         = SY-REPID
      DYNPNR           = SY-DYNNR
      DYNPROFIELD      = 'S_ERNAM-LOW'
      VALUE_ORG        = 'S'
      CALLBACK_PROGRAM = SY-REPID
    TABLES
      VALUE_TAB        = IT_USER
    EXCEPTIONS
      PARAMETER_ERROR  = 1
      NO_VALUES_FOUND  = 2
      OTHERS           = 3.

2、F4各个字段作用

RETFIELD = ‘BNAME’ "大写,可选值内表的字段名

DYNPPROG = SY-REPID "返回的输入框所在的main program

DYNPNR = SY-DYNNR "返回的输入框所在屏幕

DYNPROFIELD = ‘S_ERNAM-LOW’

VALUE_ORG = ‘S’ "就写’S’

TABLES
VALUE_TAB = IT_USER "可选值的内表

3、自定义搜索帮助HELP_VALUES_GET_WITH_TABLE

有时候需要自定义搜索帮助里面的内容,如图

在这里插入图片描述

定义字段

DATA:BEGIN OF t_value OCCURS 0,
       field(40) TYPE c,
     END OF t_value.
DATA:gt_fields LIKE TABLE OF help_value WITH HEADER LINE.
*-------------------------------------自定义交易类型通用帮助-------------------------------------------*
FORM init.
  gt_fields-tabname = 'ZTFDT'.
  gt_fields-fieldname = 'PAYTYPECODE'.
  gt_fields-selectflag = 'X'.
  APPEND gt_fields.
  gt_fields-tabname = 'ZTFDT'.
  gt_fields-fieldname = 'V_TEXT'.
  gt_fields-selectflag = space.
  APPEND gt_fields.
  gt_fields-tabname = 'ZTFDT'.
  gt_fields-fieldname = 'STRAS'.
  gt_fields-selectflag = space.
  APPEND gt_fields.

  SELECT * FROM ztfdt.
    t_value-field = ztfdt-paytypecode.
    APPEND t_value.
    t_value-field = ztfdt-v_text.
    APPEND t_value.
  ENDSELECT.

ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ype.
  PERFORM get_tfdt USING s_ype text-001.
FORM get_tfdt USING s_ype p_text.
  CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
    EXPORTING
      fieldname            = 'PAYTYPECODE'
      tabname              = 'ZTFDT'
      title_in_values_list = p_text
    IMPORTING
      select_value         = s_ype
    TABLES
      fields               = gt_fields
      valuetab             = t_value.
ENDFORM.

gt_fields-tabname = ‘ZTFDT’. "表的名称
gt_fields-fieldname= ‘PAYTYPECODE’. "表字段名称

在这里插入图片描述


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值