SAP 屏幕增强示例之物料
-MM01/MM02/MM03 步骤
增强字段存储的位置(数据库表)
屏幕增强程序配置
增强程序处理数据
屏幕分配
操作
增强字段存储的位置(数据库表)
SE11创建数据库表< ZMBEW>
屏幕增强程序配置
SPRO->后勤-常规->物料主数据->配置物料主记录->创建定制屏幕的程序
双击
函数组”ZCS1”(后面会生成屏幕程序:SAPL+ZCS1)
SE80显示这个函数组
MODULE DISABLE_FIELD:通过判断如果是MM03,则自定义字段为只读,代码如下:MODULE GET_DATA:读取ADD-ON 表中相应物料的数据,在自定义屏幕中显示出来。MODULE ASSIGN_DATA:将自定义屏幕中各字段的值传入内存ID 中.
PBO:处理初始
PAI:处理后续
程序代码
*----------------------------------------------------------------------*
***INCLUDE LZCS1O01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module DISABLE_FIELD OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DISABLE_FIELD OUTPUT.
IF SY-TCODE = 'MM03'.
LOOP AT SCREEN.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE. " DISABLE_FIELD OUTPUT
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE GET_DATA OUTPUT.
TABLES:ZMBEW.
DATA:P_MATNR TYPE MATNR.
IF SY-TCODE = 'MM02'OR SY-TCODE = 'MM03'.
GET PARAMETER ID'MAT'FIELD P_MATNR.
SELECT SINGLE * FROM ZMBEW
WHERE MATNR = P_MATNR.
ENDIF.
ENDMODULE. " GET_DATA OUTPUT
*&---------------------------------------------------------------------*
*& Module ASSIGN_DATA INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE ASSIGN_DATA INPUT.
EXPORT ZMBEW TO MEMORY ID'ZMBEW'.
ENDMODULE. " ASSIGN_DATA INPUT
保存并激活此程序
屏幕“0001”
“ZMBEW”为屏幕的数据来源,这里屏幕要用结构的形式即前面的程序TABLES:ZMBEW. 这里的屏幕编号,将成为后续配置的了屏幕号
PAI数据保存程序处理
这里利用增强的来保存数据
CMOD,使用出口MGA00001
配置了屏幕分配
SPRO->后勤-常规->物料主数据->配置物料主记录->定义每个屏幕序列的数据屏幕的结构
这里定义了一个屏幕组:ZM,选中,点击数据屏幕
进入上图选择在哪个视图中增强,选中"会计1"双击子屏幕
在程序中填入上面我们的"SAPL+函数"即:SAPLZCS1,屏幕号为”0001”
最终结果显示为(MM03):