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
目录
* ''
* ''
* ''
* 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.
文章来自于网络,如果侵犯了您的权益,请联系站长删除!