ABAP 关联搜索帮助

  1. 搜索帮助函数:F4IF_INT_TABLE_VALUE_REQUEST
    如果搜索帮助展示有多列信息数据,我们要根据选中的一行数据,把对应的的值都带到屏幕上面,这时候就需要使用关联搜索帮助
    在这里插入图片描述
    2.在入参callback*填写参数
    在这里插入图片描述
    3.代码示例
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield         = 'BANKN'
      dynpprog         = sy-repid
      dynpnr           = sy-dynnr
      dynprofield      = 'GS_HEAD-BANKN'
      window_title     = '银行账号选择'
      value_org        = 'S' "Structure
      callback_program = sy-repid
      callback_form    = 'FRM_RELATION_F4'
    TABLES
      value_tab        = lt_bnnk
      return_tab       = l_ddshretval[]
    EXCEPTIONS
      parameter_error  = 1
      no_values_found  = 2
      OTHERS           = 3.
  IF sy-subrc <> 0.
  ELSE.

    LOOP AT l_ddshretval INTO DATA(ls_value).
      CASE ls_value-retfield.
        WHEN 'GS_HEAD-BANKN'.
          gs_head-bankn = ls_value-fieldval.
        WHEN 'GS_HEAD-BKREF'.
          gs_head-bankn = gs_head-bankn && ls_value-fieldval.
        WHEN 'GS_HEAD-BANKL'.
          gs_head-bankl = ls_value-fieldval.
        WHEN 'GS_HEAD-KOINH'.
          gs_head-koinh = ls_value-fieldval.
        WHEN 'GS_HEAD-ACCNAME'.
          gs_head-accname = ls_value-fieldval.
        WHEN OTHERS.
      ENDCASE.
    ENDLOOP.

  ENDIF.

4.关联FORM代码

FORM frm_relation_f4 TABLES record_tab STRUCTURE seahlpres
                    CHANGING shlp TYPE shlp_descr_t
                             callcontrol LIKE ddshf4ctrl.
  DATA: interface LIKE LINE OF shlp-interface.
  READ TABLE shlp-interface INTO interface INDEX 1.
  interface-shlpfield+4(1) = '2'. "注意点解析"
  interface-valfield = 'GS_HEAD-BKREF'.
  APPEND interface TO shlp-interface.
  interface-shlpfield+4(1) = '3'. "注意点解析"
  interface-valfield = 'GS_HEAD-BANKL'.
  APPEND interface TO shlp-interface.
  interface-shlpfield+4(1) = '4'. "注意点解析"
  interface-valfield = 'GS_HEAD-KOINH'.
  APPEND interface TO shlp-interface.
  interface-shlpfield+4(1) = '5'. "注意点解析"
  interface-valfield = 'GS_HEAD-ACCNAME'.
  APPEND interface TO shlp-interface.
ENDFORM.
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值