自定义SAP搜索帮助记录-代码实现

一般来说,标准的字段都可以用SE11来创建搜索帮助,但是有时候这里的满足不了需求或者,相同的数据元素需要用不同的搜索帮助类型,就需要用别的方式实现

1、用函数:F4IF_INT_TABLE_VALUE_REQUEST 来传递内表显示

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_kunnr2.
      PERFORM show_f4.

    FORM show_f4.

      TYPES: BEGIN OF t_kunnrhelp,
              kunnr TYPE kna1-kunnr,
              name1 TYPE kna1-name1,
              stras TYPE kna1-stras,
            END OF t_kunnrhelp.

      DATA:wa_kunnrhelp TYPE t_kunnrhelp,
           it_kunnrhelp LIKE TABLE OF wa_kunnrhelp.

      SELECT kna1~kunnr kna1~name1 kna1~stras INTO CORRESPONDING FIELDS OF TABLE it_kunnrhelp
        FROM kna1 INNER JOIN knvv ON kna1~kunnr = knvv~kunnr
        WHERE knvv~vkorg = '1006' AND kna1~name1 LIKE '%湖南省%'.


      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = 'KUNNR'
          dynpprog        = sy-cprog
          dynpnr          = '1000'
          dynprofield     = 'S_KUNNR2'
          value_org       = 'S'
        TABLES
          value_tab       = it_kunnrhelp
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.

      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.

      CLEAR it_kunnrhelp.
      FREE: it_kunnrhelp.
    ENDFORM. 

2、还有一种,可以更改显示新的搜索帮助,适用于同一个数据元素想显示多种搜索帮助样式。

好像是这个函数:F4IF_FIELD_VALUE_REQUEST

 

posted @ 2019-10-08 15:02  不渡之人  阅读(643)  评论(0编辑  收藏  举报