物料主数据屏幕增强1——自建表方式

文摘   2024-12-02 18:04   北京  



1

文档说明

本文档通过创建自建表存储增强字段的方式,对物料主数据进行增强,使其能通过前台屏幕维护数据。



2

实现方法



2.1

创建自建表

创建存放增强字段的表,并根据放入物料主数据的相关视图,定义主键。本文档要在物料的工厂下增强字段,所以主键加入工厂



2.2

实现增强函数

运行SPRO,找到路径。或运行事务代码OMT3C

创建函数组

在函数组的0001屏幕中画上增强字段

实现屏幕流

DISABLE_FIELDS

"--------------------@斌将军--------------------MODULE disable_fields OUTPUT.  IF sy-tcode = 'MM03'.    LOOP AT SCREEN.      screen-input = '0'.      MODIFY SCREEN.    ENDLOOP.  ENDIF.
ENDMODULE."--------------------@斌将军--------------------

GET_DATA

"--------------------@斌将军--------------------TABLES:zmmt_marc01.
DATA:ls_rmmg1 TYPE rmmg1, lv_matnr TYPE mara-matnr, lv_werks TYPE marc-werks.
FIELD-SYMBOLS: TYPE rmmg1.
IF sy-tcode = 'MM02' OR sy-tcode = 'MM03'. GET PARAMETER ID 'MAT' FIELD lv_matnr. GET PARAMETER ID 'WRK' FIELD lv_werks.
IF lv_werks IS INITIAL.
"因工厂的参数ID获取不到,可以直接用指针方式获取 ASSIGN ('(SAPLMGD1)RMMG1') TO. MOVE-CORRESPONDING TO ls_rmmg1 . lv_werks = ls_rmmg1-werks. ENDIF. zmmt_marc01-matnr = lv_matnr. zmmt_marc01-werks = lv_werks. SELECT SINGLE * FROM zmmt_marc01 WHERE matnr = zmmt_marc01-matnr AND werks = zmmt_marc01-werks. ENDIF."--------------------@斌将军--------------------

ASSIGN_DATA

"--------------------@斌将军--------------------MODULE assign_data INPUT."抛内存到存表位置  EXPORT zmmt_marc01 TO MEMORY ID zcl_mm_memory_id=>mm001.
ENDMODULE."--------------------@斌将军--------------------



2.3

CMOD增强

实施出口ZXMG0U02,存储数据

"--------------------@斌将军--------------------TABLES: zmmt_marc01.  IMPORT zmmt_marc01 FROM MEMORY ID zcl_mm_memory_id=>mm001.  IF zmmt_marc01 IS NOT INITIAL.    MODIFY zmmt_marc01 FROM zmmt_marc01.  ENDIF.
FREE MEMORY ID zcl_mm_memory_id=>mm001. CLEAR:zmmt_marc01."--------------------@斌将军--------------------



2.4

分配增强字段到页签

运行SPRO,找到路径。或运行事务代码OMT3B

 配置函数组和屏幕到对应子屏幕



2.5

特定物料增强

如果需要将字段增强到特定行业领域和物料类型的界面时,需要首先查看特定类型的屏幕信息

运行SPRO,或通过事务代码OMT3E

例如:行业领域1零售,物料类型HERB

事务代码对应的屏幕参照

 找到对应的屏幕顺序

对应的屏幕顺序15



3

效果展示

保存之后,存表


码农干货铺
永远要保持一种无论何时何地都逼着自己更努力更优秀来享受更好生活的学习状态
 最新文章