本文介绍了SAP交货单的屏幕增强实现方案包含抬头和行项目两部分增强。在交货单抬头部分ZCL_IM_E_BADI_SHP_HEAD_001通过创建9001屏幕并编写PBO逻辑实现根据不同条件控制字段可编辑性并调用自定义函数ZFG_SDVL01N进行数据传递。行项目增强ZLE_SHP_CUST_ITEM采用类似方法创建9002屏幕并实现字段控制逻辑。两个增强都通过全局变量实现屏幕数据的保存和输出最终完成了交货单界面的定制化功能扩展。一、交货单抬头屏幕增强 LE_SHP_TAB_CUST_HEAD交货单抬头增强实现的效果SE19创建增强实施ZCL_IM_E_BADI_SHP_HEAD_0011、调用自定义函数创建的9001屏幕创建交货单抬头子屏幕创建PBO模块MODULE status_9001 OUTPUT. FIELD-SYMBOLS fs_any. ASSIGN ((SAPMV50A)T180-TRTYP) TO fs_any. IF fs_any IS ASSIGNED. LOOP AT SCREEN. IF fs_any A. screen-input 0. ELSE. IF gs_likp-wbstk C. IF screen-group1 ZG1. screen-input 1. ELSE. screen-input 0. ENDIF. ELSE. screen-input 1. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP. ENDIF. ENDMODULE.2、自定义的函数ZFG_SDVL01N输出全局变量到屏幕保存屏幕数据到全局变量3、在实施增强中调用函数组ZFG_SDVL01N的9001屏幕4、交货单抬头输出全局变量到屏幕数据5、交货单抬头保存屏幕数据到全局变量二、交货单行项目增强交货单行项目增强实现的效果SE19创建增强实施 ZLE_SHP_CUST_ITEM1、调用自定义函数创建的9002屏幕创建交货单行项目子屏幕创建PBO模块MODULE status_9002 OUTPUT. FIELD-SYMBOLS fs_any2. ASSIGN ((SAPMV50A)T180-TRTYP) TO fs_any2. IF fs_any2 IS ASSIGNED. LOOP AT SCREEN. IF fs_any2 A. screen-input 0. ELSE. screen-input 1. ENDIF. MODIFY SCREEN. ENDLOOP. ENDIF. ENDMODULE.2、自定义的函数ZFG_SDVL01N定义全局变量输出全局变量到屏幕保存屏幕数据到全局变量3、在增强实施中调用函数组ZFG_SDVL01N的9002屏幕4、交货单行项目输出全局变量到屏幕数据5、交货单行项目保存屏幕数据到全局变量