ABAP SE11 搜索帮助增强(出口) search help exit(二)2021

上一篇文章大概介绍了一下SE11 SEACH EHLP EXIT的用法,这篇文章来介绍一下SE11 SEACH HELP EXIT 在函数‘F4IF_FIELD_VALUE_REQUEST’中的应用。

  1. 调用函数具体参数填写示例
    CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
      EXPORTING
        tabname           = 'EKKO'       "数据库表名称
        fieldname         = 'EBELN'      "数据库表字段  
        searchhelp        = 'ZSH_EBELN'  "SE11搜索帮助
        dynpprog          = sy-repid     "当前程序名称
        dynpnr            = sy-dynnr     "当前程序屏幕号
        dynprofield       = 'EKKO-EBELN'  "屏幕字段名称
        callback_program  = sy-repid      "返回程序
        callback_form     = 'SUB_CALLBACK_F4_EBELN'   "返回程序调用form
      EXCEPTIONS
        field_not_found   = 1
        no_help_for_field = 2
        inconsistent_help = 3
        no_values_found   = 4
        OTHERS            = 5.

<1. 调用 F4IF_FIELD_VALUE_REQUEST,使用callback_form时,建立的form一定要使用接口传输字段

FORM <NAME> TABLES RECORD_TAB STRUCTURE SEAHLPRES
            CHANGING SHLP TYPE SHLP_DESCR
                      CALLCONTROL LIKE DDSHF4CTRL.

form的接口传输具体参数和上一章文章参数一致

这里的

  • RECORD_TAB没有实际的意义
  • CALLCONTROL 用来限制点击次数、关闭排序、关闭ActiveX控件等。
  • SHLP_DESCR 参数可以过滤数据、更改搜索帮助描述等等,是实际场景中应用的参数
类型SHLP_DESCR包括一下部分:
•SHLPNAME:搜索帮助的名字(必需的)。
•SHLPTYPE:搜索帮助的类型(必需的)。对于在ABAP字典中定义的搜索帮助来说其类型是SH。
•INTDESCR:深层次搜索帮助属性的组合。
•FIELDPROP: 描述搜索帮助参量统计属性的网表。包括接口属性,如,它是否是一个导入或输出参量,以及对话框属性,如命中清单中字段的位置。
•INTERFACE:描述搜索帮助到屏幕字段的附件的网表。该表包括搜索帮助参量的屏幕字段分配和可能的屏幕上存在的字段内容的屏幕字段分配情况。关于屏幕字段的一些状态信息也被通过(例如,是否它是一个输入值)。
•FIELDDESCR: 选择方法的字段的描述。例如,该描述用来将一个重建命中表分成各个单独列。命中清单的列台头和选择字段的字段文本也能在这儿找到。
•SELOPT: 限制选择的选项。该表和RANGES表有同样的结构,但是,它将表和字段名作为深层次的关键字,因此选择选项就可以为不同的字段定义。

  1. 具体form示例
*&---------------------------------------------------------------------*
*&      Form  SUB_CALLBACK_F4_EBELN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RECORD_TAB   text
*      -->SHLP         text
*      -->CALLCONTROL  text
*----------------------------------------------------------------------*
FORM sub_callback_f4_bzp TABLES   record_tab STRUCTURE seahlpres
                           CHANGING shlp        TYPE shlp_descr
                                    callcontrol LIKE ddshf4ctrl.

  DATA:LS_DDSHSELOPT TYPE DDSHSELOPT.

  FIELD-SYMBOLS: <fs_interface> TYPE ddshiface.
  READ TABLE shlp-interface ASSIGNING <fs_interface> WITH KEY shlpfield = 'IWERK'.
  IF sy-subrc EQ 0.
  " Dynpro 中的字段内容
    <fs_interface>-value   = gs_yxdq001-iwerk.
*-------------------------------------------------------*
* 过滤具体的信息
      CLEAR:LS_DDSHSELOPT.
      LS_DDSHSELOPT-SHLPNAME    = 'ZSH_EBELN'.
      LS_DDSHSELOPT-SHLPFIELD   = 'TXT30'.
      LS_DDSHSELOPT-SIGN        = 'E'.
      LS_DDSHSELOPT-OPTION      = 'EQ'.

      append LS_DDSHSELOPT to shlp-SELOPT.
*------------------------------------------------*
  ENDIF.

ENDFORM.                  

" Dynpro 中的字段内容指的是红框所示
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值