ME21N/ME22N/ME23Ncustomer Screen Enhancement

Enhancement for ME21N/ME22N/ME23N customer Screen Enhancement.

Purpose:SAP 中使用ME21N/ME22N/ME23N创建/修改/查看采购订单时,

需要在屏幕的头信息中增加以下字段以及相关按钮。

因此利用屏幕增强增加字段,以便用户输入内容并保存至自定义中。

 

触发时间:

ME21N/ME22N/ME23N点击‘客户数据’标签页时触发

选中“创建”按钮进入界面以后,为新建的增强项目分配增强出口MM06E005并回车。

 

对出口中的相关组件进行实施。

首先向数据表中增加需要新建的字段,

具体操作为在包含表CI_EKKODB上双击,然后新增增强字段。

新增字段最好以ZZ_开头(如果要增强行项目,双击CI_EKPODB)。

 

双击“CI_EKKODB”进行新增字段。

 

使增强屏幕显示,在Screen exit中,双击要增强的SAPMM06(头信息增强屏幕编号为0101,行信息增强屏幕为0111),

进入以后即可绘制屏幕显示,查找要显示的CI_EKKODB中的字段显示到屏幕上。

查找字段(f6),输入表或字段名(ekko_ci),找到显示的字段。

在定义屏幕的PBO和PAI中分别增加如下代码:

 

PROCESS BEFORE OUTPUT.
MODULE CHANGE_CUSTOM_TAB.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0101.

 

 

==========================

MODULE CHANGE_CUSTOM_TAB OUTPUT.
IF BUKRS+0(2) = ’83’ OR BUKRS = ‘5140’ OR  BUKRS+0(2) = ’81’
OR BUKRS+0(2) = ’82’.
IF GV_STATUS = CV_SHOW.
LOOP AT SCREEN.
IF SCREEN-NAME <> ‘HTWB’
AND SCREEN-NAME <> ‘HTMB’
AND SCREEN-NAME <> ‘PRVW’ .
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

==========================

MODULE USER_COMMAND_0101 INPUT.

DATA: ACT TYPE SYUCOMM.

DATA: Z001_HEAD LIKE THEAD.

RANGES: LR_EBELN  FOR EKKO-EBELN.

ACT = SY-UCOMM.
CLEAR SY-UCOMM.

CASE ACT.
WHEN ‘HTWB’.
 

====================

输入合同文本的FORM如下:

FORM FRM_PURORD_CONTRACT_TEXT  USING HEAD TYPE THEAD.

CALL FUNCTION ‘EDIT_TEXT’
EXPORTING
*     DISPLAY             = ‘ ‘
EDITOR_TITLE        = TEXT-ZH1
HEADER              = HEAD
*     PAGE                = ‘ ‘
*     WINDOW              = ‘ ‘
*     SAVE                = ‘X’
*     LINE_EDITOR         = ‘ ‘
*     CONTROL             = ‘ ‘
*     PROGRAM             = ‘ ‘

 

 

在功能退出去,双击EXIT_SAPMM06E_006,

进入包含文件ZXM06U36 ,即Pbo中增加如图所示代码(显示和更新编辑状态):

*&———————————————————————*
*&  包含                ZXM06U36
*&———————————————————————*
MOVE-CORRESPONDING I_CI_EKKO TO EKKO_CI.
BUKRS = I_EKKO-BUKRS.

EKORG = I_EKKO-EKORG.
EBELN = I_EKKO-EBELN.
GV_STATUS = I_TRTYP.

 

其中,变量BUKRS和GV_STATUS分别用来存储格式代码和屏幕的编辑和显示情况。

其定义在FUNCTION组的ZXM06TOP中定义,实现代码如下:

CONSTANTS CV_SHOW TYPE C VALUE ‘A’.

DATA: GV_STATUS TYPE C,
BUKRS TYPE EKKO-BUKRS,
EKORG TYPE EKKO-EKORG,
MENGE TYPE EKBE-MENGE,
TDNAME TYPE THEAD-TDNAME,
EBELN  TYPE EKKO-EBELN,
FLAG   TYPE CHAR1.

 

双击EXIT_SAPMM06E_008,进入INCLUDE ZXM06U37,

即 Import Data from Customer Subscreen for Purchasing Document Header中(修改后提示保存),增加如下所示代码:

 

*&——————————————-*
*&  包含                ZXM06U37
*&—————————————--*

MOVE-CORRESPONDING EKKO_CI TO E_CI_EKKO.

 

最后逐个激活增强组件即可。使用ME21N创建采购订单的时候,头部信息的“客户数据”页不可编辑。

 

使用ME22N修改采购订单的时候,头部信息的“客户数据”页可编辑。

 

点击保存按钮时便可将数据保存到标准表EKKO中。

 

MODULE CHANGE_CUSTOM_TAB OUTPUT.
IF BUKRS+0(2) = ’83’ OR BUKRS = ‘5140’ OR  BUKRS+0(2) = ’81’
OR BUKRS+0(2) = ’82’.
IF GV_STATUS = CV_SHOW.
LOOP AT SCREEN.
IF SCREEN-NAME <> ‘HTWB’
AND SCREEN-NAME <> ‘HTMB’
AND SCREEN-NAME <> ‘PRVW’ .
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

ELSEIF MENGE > 0 AND SY-UNAME <> ‘HANDPANSW’.
LOOP AT SCREEN.
IF SCREEN-NAME = ‘EKKO_CI-ZHTBH’.
SCREEN-INPUT = 0.
MODIFY SCREEN.

ENDIF.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT SCREEN.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.

ENDMODULE.

 

MODULE USER_COMMAND_0101 INPUT.

DATA: ACT TYPE SYUCOMM.

DATA: Z001_HEAD LIKE THEAD.

RANGES: LR_EBELN  FOR EKKO-EBELN.

ACT = SY-UCOMM.
CLEAR SY-UCOMM.

CASE ACT.
WHEN ‘HTWB’.
BREAK HANDQIUY.

CLEAR Z001_HEAD.
Z001_HEAD-TDOBJECT   = ‘ZDQ_MM_001’.
Z001_HEAD-TDNAME     = TDNAME.
Z001_HEAD-TDID       = ‘Z001’.
Z001_HEAD-TDSPRAS    = SY-LANGU.
Z001_HEAD-TDLINESIZE = ‘072’.

PERFORM FRM_PURORD_CONTRACT_TEXT USING Z001_HEAD.

WHEN ‘HTMB’.
*      CALL SCREEN 9001 STARTING AT 5 5 ENDING AT 50 10.
WHEN ‘PRVW’.
*      MESSAGE I001(00) WITH ‘打印预览’.
*      IF EBELN IS NOT INITIAL.
LR_EBELN-SIGN = ‘I’.
LR_EBELN-OPTION = ‘EQ’.
LR_EBELN-LOW    = EBELN.
APPEND LR_EBELN.
EXPORT LR_EBELN[]
GT_LINES[] TO MEMORY ID ‘ZDQ_MM_014’.

CALL TRANSACTION ‘ZDQMM014’ AND SKIP FIRST SCREEN.
*      ENDIF.
WHEN OTHERS.
ENDCASE.
CLEAR ACT.

ENDMODULE.                 ” USER_COMMAND_0101  INPUT

 

我的微信公众号【 hot583 】 或者在这个链接联系我

本文链接 http://www.hot583.com/2022/06/27/mm06e005-ci_ekkodb

本文为作者原创,如果这篇文章对您有用,欢迎转载,

转载请务必注明来源《今日热点在看》http://www.hot583.com/

微信原文《全文完》

今日热点在看SAP HOT583