FavoriteLoading
0

如何在物料主数据(MM01/MM02/MM03)中创建屏幕增强

[隐藏]

物料主数据(MM01\MM02\MM03)的屏幕增强比一般的屏幕增强稍微复杂一点,下面详细一步一步讲解一下。

1,在MARA添加自定义字段

把屏幕增强中用到的字段通过tcode SE11 append到MARA表中,如下,append 一个ZMM_MARAA,里面有一些自定义字段

2,创建自定义屏幕

这个自定义屏幕就是要添加到物料主数据中的,tcode:SPRO

后勤-常规-->物料主数据-->创建定制子屏幕的程序,也可以通过Tcode OMT3C

其实是创建一个函数组,这个自定义屏幕保存在函数组下的

在函数组下创建自定义屏幕,比如说下图中的9001和9002

下图是9001屏幕,上面的字段都在步骤一中append到MARA中的

9001逻辑流中按照一般的dialog程序写入代码,

注意:在PAI中要有如下一句,也就是把屏幕字段保存起来,将来会在出口MGA0001中用到,zmm_maraa是函数组ZMGD1中定义的全局变量,也就是通过全局变量传值。

3,user-exit MGA0001

CMOD中创建一个基于MGA0001的用户增强,用来把自定义屏幕上的字段值保存到MARA表中

屏幕字段值通过CMARA来更新到表MARA中

代码如下:zmm_maraa就是屏幕9001逻辑流PAI中的那个全局变量,怎么会是同一个全局变量?其实很简单也就是在函数组ZMGD1中再创建一个FM,然后在exit_saplmgmu_001中调用,这样就实现了通过全局变量传值了。

下面代码中的C_mara就是新创建FM的changing参数

4,定义自定义屏幕的位置

SPRO

后勤-常规-->物料主数据-->配置物料主数据-->定义每个屏幕序列的数据屏幕的结构,也可以通过Tcode OMT3B

新建一个屏幕顺序Z1

选择Z1后点击数据屏幕,这个例子中决定把自定义屏幕放到物料主数据的基本数据2视图中,选中然后点击子屏幕

把9001屏幕放到顺序第三位,也就是基本数据2视图上排第三个的子屏幕,

点击视图数据屏幕按钮可以看到屏幕的内容,如下:

5,定义增强屏幕上字段选择组

SPRO

后勤-常规-->物料主数据-->字段选择-->给字段选择组分配字段 ,也可以通过tcode OMSR

以上。