需求描述:

在内向交货单(VL31N / VL32N / VL33N) 与外向交货单(VL01N / VL02N / VL03N) 的抬头和行项目增加”自定义字段“页签,如下图所示

实现方法:

1. 往表LIKP和LIPS增加自定义字段

2. 新建函数组ZFG_SD002,定义增强子屏幕,以便增强使用

2.1 交货单抬头增强子屏幕9100

MODULE STATUS_9100设置了是否可以输入,判断逻辑如下:

① SAP根据Tcode在T180里配置了界面是否可编辑,故获取变量(SAPMV50A)T180-TRTYP的值,A为显示,其余为编辑

② 已发货过账完成的交货单为仅显示,判断条件为LIKP-WBSTK = 'C'

MODULE STATUS_9100 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 = 'G1'.SCREEN-INPUT = '1'.ELSE.SCREEN-INPUT = '0'.ENDIF.ELSE.SCREEN-INPUT = '1'.ENDIF.ENDIF.MODIFY SCREEN.ENDLOOP.ENDIF.ENDMODULE.

2.2  交货单行项目增强子屏幕9200

MODULE TEXTEDIT_9200是定义了一个文本框,将自建表数据拼接显示在文本框中,此功能在另一篇博客中,请参考https://blog.csdn.net/ROYHAO/article/details/119894307

MODULE STATUS_9200同抬头屏幕设置了是否可以输入

MODULE STATUS_9200 OUTPUT.LOOP AT SCREEN.IF GS_LIPS-WBSTA = 'C'.SCREEN-INPUT = '0'.IF GC_EDITOR IS NOT INITIAL.GC_EDITOR->SET_READONLY_MODE( 1 ).ENDIF.ELSE.ASSIGN ('(SAPMV50A)T180-TRTYP') TO <FS_ANY>.IF <FS_ANY> IS ASSIGNED.IF <FS_ANY> = 'A'.SCREEN-INPUT = '0'.IF GC_EDITOR IS NOT INITIAL.GC_EDITOR->SET_READONLY_MODE( 1 ).ENDIF.ELSE.SCREEN-INPUT = '1'.IF GC_EDITOR IS NOT INITIAL.GC_EDITOR->SET_READONLY_MODE( 0 ).ENDIF.ENDIF.ENDIF.ENDIF.MODIFY SCREEN.ENDLOOP.ENDMODULE.

3. 在上述函数组ZFG_SD002,创建屏幕和数据交互函数,以便增强使用

3.1 新建函数ZSD_SHP_HEAD_FROM_SUBSCREEN,将交货单抬头屏幕回传数据

3.2 新建函数ZSD_SHP_HEAD_TO_SUBSCREEN,将交货单抬头数据传到屏幕

3.3  新建函数ZSD_SHP_ITEM_FROM_SUBSCREEN,将交货单行项目屏幕回传数据

3.4 新建函数ZSD_SHP_ITEM_TO_SUBSCREEN,将交货单行项目数据传到屏幕

4. 交货单抬头屏幕增强BADI:LE_SHP_TAB_CUST_HEAD

4.1 修改方法ACTIVATE_TAB_PAGE添加页签

  METHOD IF_EX_LE_SHP_TAB_CUST_HEAD~ACTIVATE_TAB_PAGE.EF_CAPTION     = '自定义字段'(001).EF_POSITION    = 20.EF_PROGRAM     = 'SAPLZFG_SD002'.EF_DYNPRO      = '9100'.CS_V50AGL_CUST = 'X'.ENDMETHOD.

其中EF_PROGRAM是函数组名字,EF_DYNPRO是屏幕号

4.2 修改方法TRANSFER_DATA_TO_SUBSCREEN,调用函数ZSD_SHP_HEAD_TO_SUBSCREEN,将交货单抬头数据传到屏幕

  METHOD IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_TO_SUBSCREEN.CALL FUNCTION 'ZSD_SHP_HEAD_TO_SUBSCREEN'EXPORTINGIS_LIKP = IS_LIKP.ENDMETHOD.

4.3 修改方法TRANSFER_DATA_FROM_SUBSCREEN,调用函数ZSD_SHP_HEAD_FROM_SUBSCREEN,将交货单抬头屏幕回传数据

  METHOD IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_FROM_SUBSCREEN.CALL FUNCTION 'ZSD_SHP_HEAD_FROM_SUBSCREEN'IMPORTINGES_LIKP = CS_LIKP.ENDMETHOD.

5. 交货单行项目屏幕增强BADI:LE_SHP_TAB_CUST_ITEM

S/4里显示该BADI已迁移至增强点LE_SHP_TAB_CUST_ITEM,故此情形需增强该增强点

5.1 修改方法ACTIVATE_TAB_PAGE添加页签

  METHOD IF_EX_LE_SHP_TAB_CUST_ITEM~ACTIVATE_TAB_PAGE.EF_CAPTION     = '自定义字段'(001).EF_POSITION    = 20.EF_PROGRAM     = 'SAPLZFG_SD002'.EF_DYNPRO      = '9200'.CS_V50AGL_CUST = 'X'.ENDMETHOD.

其中EF_PROGRAM是函数组名字,EF_DYNPRO是屏幕号

5.2 修改方法TRANSFER_DATA_TO_SUBSCREEN,调用函数ZSD_SHP_ITEM_TO_SUBSCREEN,将交货单行项目数据传到屏幕

  METHOD IF_EX_LE_SHP_TAB_CUST_ITEM~TRANSFER_DATA_TO_SUBSCREEN.CALL FUNCTION 'ZSD_SHP_ITEM_TO_SUBSCREEN'EXPORTINGIS_LIPS = IS_LIPS.ENDMETHOD.

5.3 修改方法TRANSFER_DATA_FROM_SUBSCREEN,调用函数ZSD_SHP_ITEM_FROM_SUBSCREEN,将交货单行项目屏幕回传数据

  METHOD IF_EX_LE_SHP_TAB_CUST_ITEM~TRANSFER_DATA_FROM_SUBSCREEN.CALL FUNCTION 'ZSD_SHP_ITEM_FROM_SUBSCREEN'IMPORTINGES_LIPS = CS_LIPS.ENDMETHOD.

ABAP 交货单屏幕增强相关推荐

  1. SAP ABAP QA11屏幕增强 BADI QEVA_SUBSCREEN_1101

    QA11屏幕增强: 效果图: BADI: QEVA_SUBSCREEN_1101 SE11添加客制化字段:QALS或者决策表. 创建自定义函数组,添加屏幕信息: 全局定义: FUNCTION-POOL ...

  2. ABAP ME21N屏幕增强

    ME21N屏幕增强 XM06函数组 加屏幕 ZXM06ZZZ

  3. SAP ABAP QA01屏幕增强 SMOD QPL10004

    效果图如下: QALS添加客制化字段. CMOD创建增强实施. 根据不同的检验类型,显示不同的屏幕信息. 全局变量定义: TABLES: qals_cust. CONSTANTS: BEGIN OF  ...

  4. 【三代增强干货一枚】外向交货单Delivery (VL01N)Header屏幕增强

    先了解一下内向交货与外向交货: 1.外向交货:VL03N:内向交货:VL33N 2.外向与内向相对于库存来说的,一个出库,一个入库 场景:我们做一个外向交货单Header Level的一个屏幕增强. ...

  5. [ABAP] VF01/VF02/VF03 发票字段增强总结(BAPI赋值屏幕增强)

    最近接到需求需要对销售发票(VBRK/VBRP)做字段增强,下面做一下实现这个增强功能的总结. 该功能的主要需求点是通过BAPI:BAPI_BILLINGDOC_CREATEMULTIPLE对增强附加 ...

  6. ABAP:增强篇-CJ20N屏幕增强

    CJ20N的屏幕增强,如下所示 实现方法:CMOD->CNEX0006 600屏幕如下   代码如下 *&---------------------------------------- ...

  7. SAP ABAP 物料主数据(MM01/MM02/MM03)屏幕增强

    增强步骤 1.为主表添加一个附加结构 根据业务需求新建一个结构,结构中放入需要增强的屏幕字段并激活. 打开事务代码SE11,在需要保存的主表中添加这个附加结构并激活. 注:根据业务需求及屏幕增强的视图 ...

  8. MIGO 行项目屏幕增强创建实例

    本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系. 1.首先创建一张自建表用于存放客制化信息 2.建立结构,在屏幕数据交换时使用 3.建立表类型 4.给之前创 ...

  9. 【SAP Abap】SAP增强开发总结

    SAP增强开发总结 1.概述 1.1.增强的概念 1.2.增强的类型 1.3.增强的发展 2.第一代增强(Form Exit) 2.1.简介 2.2.查找方法 2.3.实现方式 3.第二代增强(Fun ...

最新文章

  1. [整理]ADB命令行学习笔记
  2. Maven开发web项目的搭建
  3. Android之解决卸载app后再次安装提示room数据库错误
  4. 《操作系统真象还原》——0.23 操作系统是如何识别文件系统的
  5. Lombok注解使用详解
  6. java main传入参数_Main方法中传入参数
  7. 译稿:软件工程师不可不知的10个概念
  8. Oracle 创建表空间借鉴 保留,占版权留言告知
  9. canvas 从ondraw中获取_C# 在PDF中绘制多样风格的文本
  10. 【Java web 项目】医院药品管理系统
  11. 【例6-19】求字符串长度函数strlen()
  12. Matlab坐标修改 gca
  13. 安卓面试中高级安卓开发工程师总结之——如何写一份让HR主动邀请你面试的简历
  14. 苹果胜三星震惊国产手机
  15. Transformer25
  16. Houdini地形创建
  17. android仿照网易新闻源代码
  18. 阿里云推出“通达云OA”办公系统 基于钉钉的移动OA应用
  19. MAT400安全帽标签
  20. linux 备份iphone,备份苹果硬盘的数据

热门文章

  1. 华为Android面试真题解析,大厂直通车!
  2. 全球与中国多模光纤束市场现状及未来发展趋势
  3. git push 成功后如何撤销回退
  4. 解决win10\win11与jmeter5.1.1界面兼容问题
  5. IEEE 802.1Q VLAN技术原理
  6. 2022年全球市场人工智能平台总体规模、主要企业、主要地区、产品和应用细分研究报告
  7. 华为全联接2021:持续创新,深耕数字化
  8. 【解决方案】公用微波炉安全难管理?资产监测设备可保障微波炉使用安全
  9. 项目之利用 V4L2应用程序框架 进行视频录制
  10. git的添加git add、更新git pull、删除git rm 、克隆git clone