需求描述:在ME21NTECODE下增加订单号F4页签增强。
上图为增强后的效果。
以下为实现步骤:
1.F1查看该字段的表和字段名
2.双击进去。
查看输入帮助/检查。
3.双击进去查看。
在这里我们可以看到与前台的搜索帮助对应起来了,那大概就在这里动手脚了。
4.回到标准的orde,点击附加搜索帮助。
5.
输入名字,点击勾。
6.
创建这个搜索帮助。
7.搜索帮助如下:
8.函数具体内容:
代码部分:
FUNCTION ZJZFMMMSH001.
*"----------------------------------------------------------------------
*"*"本地接口:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCT
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
*"----------------------------------------------------------------------
RANGES: LR_AUFNR FOR AFPO-AUFNR,
LR_AUART FOR AUFK-AUART,
LR_KOKRS FOR AUFK-KOKRS,
LR_KTEXT FOR AUFK-KTEXT,
LR_ZYUL3 FOR ZJZSDT_OMS_ORD-ZYUL3,
LR_DWERK FOR AFPO-DWERK.
DATA:BEGIN OF LS_DATA,
AUFNR TYPE AFPO-AUFNR,
AUART TYPE AUFK-AUART,
KOKRS TYPE AUFK-KOKRS,
KTEXT TYPE AUFK-KTEXT,
ZYUL3 TYPE ZJZSDT_OMS_ORD-ZYUL3,
DWERK TYPE AFPO-DWERK,
END OF LS_DATA,
LT_DATA LIKE TABLE OF LS_DATA.
CHECK CALLCONTROL-STEP = 'SELECT'.
LOOP AT SHLP-SELOPT INTO DATA(LS_SELOPT).
CASE LS_SELOPT-SHLPFIELD.
WHEN 'AUFNR'.
LR_AUFNR = CORRESPONDING #( LS_SELOPT ).
APPEND LR_AUFNR.
WHEN 'AUART'.
LR_AUART = CORRESPONDING #( LS_SELOPT ).
APPEND LR_AUART.
WHEN 'KOKRS'.
LR_KOKRS = CORRESPONDING #( LS_SELOPT ).
APPEND LR_KOKRS.
WHEN 'KTEXT'.
LR_KTEXT = CORRESPONDING #( LS_SELOPT ).
APPEND LR_KTEXT.
WHEN 'ZYUL3'.
LR_ZYUL3 = CORRESPONDING #( LS_SELOPT ).
APPEND LR_ZYUL3.
WHEN 'DWERK'.
LR_DWERK = CORRESPONDING #( LS_SELOPT ).
APPEND LR_DWERK.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
*根据输入参数查询数据
SELECT
A~AUFNR
A~DWERK
B~AUART
B~KOKRS
B~KTEXT
C~ZYUL3
INTO CORRESPONDING FIELDS OF TABLE LT_DATA
FROM AFPO AS A
INNER JOIN AUFK AS B
ON A~AUFNR = B~AUFNR
INNER JOIN ZJZSDT_OMS_ORD AS C
ON A~KDAUF = C~VBELN
AND A~DWERK = C~VKORG
AND A~KDPOS = C~POSNR
WHERE A~AUFNR IN LR_AUFNR
AND B~AUART IN LR_AUART
AND B~KOKRS IN LR_KOKRS
AND B~KTEXT IN LR_KTEXT
AND C~ZYUL3 IN LR_ZYUL3
AND A~DWERK IN LR_DWERK.
SORT LT_DATA BY AUFNR.
DELETE ADJACENT DUPLICATES FROM LT_DATA COMPARING AUFNR.
*将查询结果回执到屏幕上来
CALL FUNCTION 'F4UT_RESULTS_MAP'
TABLES
SHLP_TAB = SHLP_TAB
RECORD_TAB = RECORD_TAB
SOURCE_TAB = LT_DATA
CHANGING
SHLP = SHLP
CALLCONTROL = CALLCONTROL
EXCEPTIONS
ILLEGAL_STRUCTURE = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*下一个时间点直接转到DISP,否则无法再屏幕上显示帮助列表
CALLCONTROL-STEP = 'DISP'.
ENDFUNCTION.
9.按照以上完成,由于我是做完才写文章的,所以顺序有点像倒叙。