ABAP 交货单屏幕增强

news/2024/12/29 17:53:57/

需求描述:

在内向交货单(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.

http://www.ppmy.cn/news/492914.html

相关文章

两个字符串的最大公共子串(七)

东家蝴蝶西家飞&#xff0c;白骑少年今日归。 愿&#xff0c;所有迷茫的人&#xff0c;都不再迷茫的&#xff0c;愿&#xff0c;所有努力工作的人&#xff0c;都可以得到应有的回报&#xff0c;愿&#xff0c;所有的人&#xff0c;都可以找到回家的方向&#xff0c;愿&#xff…

STM32F429 21. LTDC 液晶屏幕

显示器的参数 像素 像素是组成图像的最基本单元要素&#xff0c;显示器的像素指它成像最小的点&#xff0c;液晶原理中提到的一个显示单元。 分辨率 一些嵌入式设备的显示器常常以“行像素值 x 列像素值”表示屏幕的分辨率。如分辨率800x480 表示该显示器的每一行有 800 个…

fg命令

fg命令用于将后台作业&#xff08;在后台运行的或者在后台挂起的作业&#xff09;放到前台终端运行。与bg命令一样&#xff0c;若后台任务中只有一个&#xff0c;则使用该命令时&#xff0c;可以省略任务号。 语法: fg(参数) 参数: 作业标识&#xff…

如何选择爬虫代理?

1. 什么是代理服务器&#xff1f; 摘自百度百科&#xff1a;https://baike.baidu.com/item/http%E4%BB%A3%E7%90%86/7689519?fraladdin 代理服务器英文全称是Proxy Server&#xff0c;其功能就是代理网络用户去取得网络信息。形象的说&#xff1a;它是网络信息的中转站。在一…

Linux的bg和fg命令

我们都知道&#xff0c;在 Windows 上面&#xff0c;我们要么让一个程序作为服务在后台一直运行&#xff0c;要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令&#xff0c;让我们轻松调度正在运行的任务。 假设你发现前台运行的一个程序需要很…

Linux 中的 jobs、fg 与 bg 命令

一、jobs jobs 命令主要用于显示系统中的任务列表及其运行状态。 命令参数如下&#xff1a; 命令参数参数含义-l显示作业列表时包括进程号-n显示上次使用 jobs 命令后状态发生变化的作业-p仅显示作业对应的进程号-r仅显示运行中的作业-s仅显示已暂停的作业 我们写一个死循环…

linux 任务后台bg和fg命令

Linux的bg和fg命令 我们都知道&#xff0c;在 Windows 上面&#xff0c;我们要么让一个程序作为服务在后台一直运行&#xff0c;要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令&#xff0c;让我们轻松调度正在运行的任务。 www.2cto.com …

linux bg和fg命令

linux bg和fg命令 linux下我们如果想一个任务或者程序还后台执行可以使用&&#xff0c;实际上linux还提供了其他任务调度的命令。 bg: 将一个在后台暂停的命令&#xff0c;变成继续执行;【background后景;背景;不显眼的位置;底色】fg: 将后台中的命令调至前台继续运行&am…