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” 最终结果显示为(M M 03):