• 通过出口函数创建搜索帮助


    SAP提供了预定义函数F4IF_SHLP_EXIT_EXAMPLE,创建搜索帮助。

    1.

    2.复制SAP的预定义函数F4IF_SHLP_EXIT_EXAMPLE创建函数ZFVBELN_FIND_EXIT

    参数和预定义函数一致,这里我们调用‘SELECT’这个时间点来进行数据的查询输出,自定义的帮助出口函数中的具体代码如下:

     1 FUNCTION zfvbeln_find_exit.
     2 *"----------------------------------------------------------------------
     3 *"*"Local interface:
     4 *"  TABLES
     5 *"      SHLP_TAB TYPE  SHLP_DESCT
     6 *"      RECORD_TAB STRUCTURE  SEAHLPRES
     7 *"  CHANGING
     8 *"     VALUE(SHLP) TYPE  SHLP_DESCR
     9 *"     VALUE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL
    10 *"----------------------------------------------------------------------
    11   DATA:BEGIN OF lt_tab OCCURS 0,
    12     vbeln TYPE vbeln_vl,
    13     lfdat TYPE lfdat_v,
    14     wbstk TYPE wbstk,
    15     END OF lt_tab.
    16 
    17   DATA:r_vbeln TYPE RANGE OF vbeln_vl WITH HEADER LINE,
    18         r_lfdat TYPE RANGE OF lfdat_v WITH HEADER LINE,
    19         r_wbstk TYPE RANGE OF wbstk WITH HEADER LINE,
    20         ddshselops TYPE ddshselopt.
    21   IF callcontrol-step = 'SELECT'.
    22     LOOP AT shlp-selopt INTO ddshselops.
    23       CASE ddshselops-shlpfield.
    24         WHEN 'VBELN'.
    25           MOVE-CORRESPONDING ddshselops TO r_vbeln.
    26           APPEND r_vbeln.
    27         WHEN 'LFDAT'.
    28           MOVE-CORRESPONDING ddshselops TO r_lfdat.
    29           APPEND r_lfdat.
    30         WHEN 'WBSTK'.
    31           MOVE-CORRESPONDING ddshselops TO r_wbstk.
    32           APPEND r_wbstk.
    33       ENDCASE.
    34     ENDLOOP.
    35 
    36 *根据输入参数查询数据
    37     SELECT likp~vbeln likp~lfdat INTO CORRESPONDING FIELDS OF TABLE lt_tab FROM likp
    38       INNER JOIN vbuk
    39       ON likp~vbeln = vbuk~vbeln
    40       WHERE likp~vbeln IN r_vbeln
    41       AND likp~lfdat IN r_lfdat
    42       AND vbuk~wbstk IN r_wbstk.
    43 
    44 *将查询结果回执到屏幕上来
    45       CALL FUNCTION 'F4UT_RESULTS_MAP'
    46 *       EXPORTING
    47 *         SOURCE_STRUCTURE         =
    48 *         APPLY_RESTRICTIONS       = ' '
    49         TABLES
    50           shlp_tab                 = SHLP_TAB
    51           record_tab               = RECORD_TAB
    52           source_tab               = LT_TAB
    53         changing
    54           shlp                     = SHLP
    55           callcontrol              = CALLCONTROL
    56        EXCEPTIONS
    57          ILLEGAL_STRUCTURE        = 1
    58          OTHERS                   = 2
    59                 .
    60       IF sy-subrc <> 0.
    61  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    62          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    63       ENDIF.
    64 *下一个时间点直接转到DISP,否则无法再屏幕上显示帮助列表
    65             callcontrol-step = 'DISP'.  ""
    66 
    67   ENDIF.
    68 
    69 
    70 
    71 
    72 ENDFUNCTION.

    激活函数和搜索帮助,允许测试搜索帮助结果如下:

  • 相关阅读:
    calcite 概念和架构
    在vscode中快速生成vue模板
    curl发送post请求
    【vue】chrome已安装Vue Devtools在控制台却无显示
    java(第一天)
    小游戏之莫交叉
    再谈成麻结账程序2.0
    成麻结账程序
    倍福Twincat2 常用快捷键及部分注意事项
    IP地址,子网掩码、默认网关,DNS服务器之间的联系与区别
  • 原文地址:https://www.cnblogs.com/caizjian/p/3712804.html
Copyright © 2020-2023  润新知