matinal:ABAP 自定义搜索帮助参数解析

ABAP 选择屏幕 自定义搜索帮助

物料号为例
如图展示的物料,是不经过自定义搜索帮助处理的,如果我只需要物料描述和物料号,且只限定20开头的物料,就需要用到自定义搜索帮助了

代码详解

构建选择屏幕

SELECTION-SCREEN BEGIN OF BLOCK blk1.
  PARAMETERS:
    p_matnr TYPE makt-matnr.
SELECTION-SCREEN END OF BLOCK blk1.

构建自定义帮助

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr. " 
  PERFORM frm_create_matnr_help. " 创建自定义帮助的例程

处理帮助字段

"在屏幕初始化前 构建用户自定义帮助的例程 
INITIALIZATION .
  PERFORM frm_get_matnr_f4.  "创建例程 例程里面是 需要的字段 也就啊是 20 开头的物料以及 物料描述

帮助字段的程逻辑

" 构建全局变量内表
TYPES:BEGIN OF ty_f4,
        matnr TYPE mara-matnr,
        maktx TYPE makt-maktx,
      END OF ty_f4.
      
DATA : gt_f4 TYPE STANDARD TABLE OF ty_f4.

"获取数据的例程
FORM frm_get_matnr_f4.
  SELECT
    from makt
  FIELDS
    makt~matnr,
    makt~maktx
  WHERE right( makt~matnr,8 ) LIKE '20%'
    AND makt~spras eq @sy-langu
  INTO CORRESPONDING FIELDS OF TABLE @gt_f4.  "此处取数逻辑按自己的业务需求来

ENDFORM.

创建自定义帮助

FORM frm_create_matnr_help .
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'MATNR'     " 参考的表字段
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'P_MATNR'  " 用于选择屏幕上的哪一个
      value_org       = 'S'
    TABLES
      value_tab       = gt_f4   " 自定义的表 需要全局变量 一般来说也是通过例程处理的 frm_get_matnr_f4
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
ENDFORM.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值