SAP 自定义信息类型-字段搜索帮助方法

一、涉及引用标准字段的搜索帮助

例:自定义一个信息类型,对应储备岗位要做搜索帮助,效果如下图

方法:在2000屏逻辑流中代码处理

module  values_plans

* 生成者 TNIT-LTT 2020.11.13  12:59:14
INCLUDE MP901110.                      " Data Definitions
INCLUDE MPPDAT00.                      " Global Data     - Do not change
INCLUDE FP50PPSB.                      " Buffer          - Do not change
INCLUDE MPPERS00.                      " Standard Modules- Do not change
INCLUDE MP901120.                      " Output Modules
INCLUDE MP901130.                      " Input Modules
INCLUDE MP901140.                      " Subroutines

INCLUDE MP901150.

INCLUDE mp901100_values_plansi01.
*&---------------------------------------------------------------------*
*&      Module  VALUES_PLANS  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUES_PLANS INPUT.//把从这往下的代码粘贴进去就OK,上面的自动生成。
DATA: fl_select VALUE ' '.           "XFYP30K115404
  DATA: dummy    LIKE pspar-plans.     "XFYP30K115404
  DATA: or_repid LIKE sy-repid,
        or_dynnr LIKE sy-dynnr.
  DATA: or_objec LIKE objec.           "XFYAHRK013689
  or_repid = sy-repid.
  or_dynnr = sy-dynnr.
  or_objec-realo = P9011-Z_DYCBGW.        "XFYAHRK013689
  fl_select = space.                   "XFYP30K115404
  LOOP AT SCREEN.                      "XFYP30K115404
    CHECK screen-name = 'P9011-Z_DYCBGW'. "XFYP30K115404
    IF screen-input = '1'.             "XFYP30K115404
      fl_select = 'X'.                 "XFYP30K115404
    ENDIF.                             "XFYP30K115404
  ENDLOOP.                             "XFYP30K115404
  IF fl_select = 'X'.                  "XFYP30K115404
*----------- begin --------- XFYAHRK013689 ----------------------------
    CALL FUNCTION 'RH_OBJID_REQUEST'
         EXPORTING
              plvar             = '01'
              otype             = 'S'
              seark_begda       = P9011-begda
              seark_endda       = P9011-endda
              dynpro_repid      = or_repid
              dynpro_dynnr      = or_dynnr
              dynpro_searkfield = 'P9011-Z_DYCBGW'
*             no_seark_popup    = ' '              "XMKAL0K093206
         IMPORTING
              sel_object        = or_objec
         EXCEPTIONS
              cancelled         = 1
              wrong_condition   = 2
              nothing_found     = 3
*             illegal_mode      = 4                "XMKAL0K093206
              internal_error    = 5
              OTHERS            = 6.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    MOVE or_objec-realo TO P9011-Z_DYCBGW.
*   perform objid_request(rhobidf4) using
*                         ''
*                         planvar
*                         'S'
*                         or_repid
*                         or_dynnr
*                         ''
*                         ''
*                         ''
*                           P9011-Z_DYCBGW.
*   endif.
*------------ end ---------- XFYAHRK013689 ----------------------------
  ELSE.                                "XFYP30K115404
*----------- begin --------- XFYAHRK013689 ----------------------------
    CALL FUNCTION 'RH_OBJID_REQUEST'
         EXPORTING
              plvar             = '01'
              otype             = 'S'
              seark_begda       = P9011-begda
              seark_endda       = P9011-endda
              dynpro_repid      = or_repid
              dynpro_dynnr      = or_dynnr
              dynpro_searkfield = 'P9011-Z_DYCBGW'//字段名,可以把字段名统一替换成自定义的字段
*             no_seark_popup    = ' '                    "XMKAL0K093206
         IMPORTING
              sel_object        = or_objec
         EXCEPTIONS
              cancelled         = 1
              wrong_condition   = 2
              nothing_found     = 3
*             illegal_mode      = 4                      "XMKAL0K093206
              internal_error    = 5
              OTHERS            = 6.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
*   perform objid_request(rhobidf4) using                "XFYP30K115404
*                         ''
*                         planvar
*                         'S'
*                         or_repid
*                         or_dynnr

目录

一、涉及引用标准字段的搜索帮助

二、员工号-SAP标准搜索帮助

三、域值字段得文本展示:


*                         ''
*                         ''
*                         ''
*                         dummy.
*------------- end --------- XFYAHRK013689 ----------------------------
  ENDIF.                               "XFYP30K115404
ENDMODULE.

二、员工号-SAP标准搜索帮助

 直接在2000屏上,该字段维护搜索帮助--PREM

屏幕上工号后面姓名展示:

代码:

DATA: GV_NACHN TYPE PA0002-NACHN.

  CLEAR: GV_NACHN.
  IF P9022-Z_PDR IS NOT INITIAL.
    SELECT SINGLE NACHN INTO GV_NACHN FROM PA0002 WHERE PERNR = P9022-Z_PDR.
  ENDIF.

三、域值字段得文本展示:

1、可以设置为下来选择框

2、域值后面显示文本

DATA: gv_Z_JYQX TYPE dd07t-ddtext.

  CLEAR: gv_Z_JYQX.
  IF p9022-Z_JYQX IS NOT INITIAL.
    SELECT SINGLE ddtext INTO gv_Z_JYQX FROM dd07t WHERE domname = 'ZJYQX' AND ddlanguage = sy-langu AND domvalue_l = p9022-Z_JYQX.
  ENDIF..

四:组织架构搜索帮助:

2000屏幕逻辑流处理:

process on value-request.
  field P9026-Z_YJQZFBZ module values_ORGEH.

具体代码:

module values_orgeh input.
  data: fl_select value ' '.           "XFYP30K115404
  data: dummy    like pspar-plans.     "XFYP30K115404
  data: or_repid like sy-repid,
        or_dynnr like sy-dynnr.
  data: or_objec like objec.           "XFYAHRK013689
  or_repid = sy-repid.
  or_dynnr = sy-dynnr.
  or_objec-realo = P9026-Z_YJQZFBZ.        "XFYAHRK013689
  fl_select = space.                   "XFYP30K115404
  loop at screen.                      "XFYP30K115404
    check screen-name = 'P9026-Z_YJQZFBZ'. "XFYP30K115404
    if screen-input = '1'.             "XFYP30K115404
      fl_select = 'X'.                 "XFYP30K115404
    endif.                             "XFYP30K115404
  endloop.                             "XFYP30K115404
  if fl_select = 'X'.                  "XFYP30K115404
*----------- begin --------- XFYAHRK013689 ----------------------------
    call function 'RH_OBJID_REQUEST'
      exporting
        plvar             = '01'
        otype             = 'O'
        seark_begda       = p9026-begda
        seark_endda       = p9026-endda
        dynpro_repid      = or_repid
        dynpro_dynnr      = or_dynnr
        dynpro_searkfield = 'P9026-Z_YJQZFBZ'
*       no_seark_popup    = ' '              "XMKAL0K093206
      importing
        sel_object        = or_objec
      exceptions
        cancelled         = 1
        wrong_condition   = 2
        nothing_found     = 3
*       illegal_mode      = 4                "XMKAL0K093206
        internal_error    = 5
        others            = 6.
    if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    move or_objec-realo to P9026-Z_YJQZFBZ.
*   perform objid_request(rhobidf4) using
*                         ''
*                         planvar
*                         'S'
*                         or_repid
*                         or_dynnr
*                         ''
*                         ''
*                         ''
*                           P9023-Z_PZZZ.
*   endif.
*------------ end ---------- XFYAHRK013689 ----------------------------
  else.                                "XFYP30K115404
*----------- begin --------- XFYAHRK013689 ----------------------------
    call function 'RH_OBJID_REQUEST'
      exporting
        plvar             = '01'
        otype             = 'O'
        seark_begda       = p9026-begda
        seark_endda       = p9026-endda
        dynpro_repid      = or_repid
        dynpro_dynnr      = or_dynnr
        dynpro_searkfield = 'P9026-Z_YJQZFBZ'
*       no_seark_popup    = ' '                    "XMKAL0K093206
      importing
        sel_object        = or_objec
      exceptions
        cancelled         = 1
        wrong_condition   = 2
        nothing_found     = 3
*       illegal_mode      = 4                      "XMKAL0K093206
        internal_error    = 5
        others            = 6.
    if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
*   perform objid_request(rhobidf4) using                "XFYP30K115404
*                         ''
*                         planvar
*                         'S'
*                         or_repid
*                         or_dynnr
*                         ''
*                         ''
*                         ''
*                         dummy.
*------------- end --------- XFYAHRK013689 ----------------------------
  endif.                               "XFYP30K115404
endmodule.

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值