ABAP marc表字段增强及屏幕增强

网上关于mara表字段及屏幕增强的文章已经有很多了,但关于marc表字段及屏幕增强的例子不多且不够详细,这里用一个示例希望能帮到大家

一、marc表字段增强

在marc表附加结构里添加自定义结构,并在结构里添加自定义字段即可。
在这里插入图片描述

二、定制自定义屏幕

1、路径:事务码spro->物料-常规->物料主数据->配置物料主记录->创建定制子屏幕的程序
在这里插入图片描述
2、这时会让你自定义一个函数组,后续的屏幕创建就会放在这个函数组里。函数组里自带0001及0002屏幕,可以用0001屏幕,也可以自建一个屏幕,这里以自建0003屏幕示例:
在这里插入图片描述
3、点击上方布局按钮,进入屏幕绘制,按照图示绘制屏幕
在这里插入图片描述
在这里插入图片描述

这里注意:屏幕字段需要用自定义结构ZMARCENH里的自定义字段,而不能直接用marc的自定义字段,否则MM03是不会显示我们画的屏幕的

4、在屏幕逻辑流里面添加如下代码:
在这里插入图片描述

PROCESS BEFORE OUTPUT.
  MODULE init_sub.
  MODULE get_daten_sub.
  MODULE feldauswahl.
  MODULE sonderfaus.
  MODULE sonfausw_in_fgruppen.
  MODULE bildstatus.
  MODULE zusref_vorschlagen_b.
  MODULE refdaten_vorschlagen.
  MODULE zusref_vorschlagen_a.
  MODULE set_daten_sub.

*    MODULE status_0003.
  MODULE get_data.

PROCESS AFTER INPUT.
  MODULE get_daten_sub.

  FIELD: zmarcenh-zjcf.
  MODULE assign_data.

  MODULE set_daten_sub.

在PBO get_data里面给ZMARCENH赋值

MODULE get_data OUTPUT.
  MOVE-CORRESPONDING marc TO zmarcenh.
ENDMODULE.

在PAI assign_data里面给marc赋值

MODULE assign_data INPUT.
  MOVE-CORRESPONDING zmarcenh TO marc.
ENDMODULE.

在TOP文件里面添加全局变量:ZMARCENH
在这里插入图片描述

5、屏幕画好后,按如下路径:spro->物料-常规->物料主数据->配置物料主记录->定义每个屏幕序列的数据屏幕的结构,配置我们画的屏幕放在屏幕的哪个视图及哪个位置
在这里插入图片描述
6、选择图示屏幕双击‘’数据屏幕’,我这里是放的采购视图,具体视图可根据业务需求制定,双击子屏幕进入采购视图配置,我放在第6行,也就是视图最下方
程序名是:SAPL+你的函数组名字
屏幕号:即你绘制的屏幕编号

点击旁边的’视图数据屏幕’可看到整个视图的屏幕情况,选中单行点击’视图子屏幕’可查看子屏幕情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7、此时还需要给字段分配字段组,否则MM02也是不会更新到表里面的,路径:spro->物料-常规->物料主数据->字段选择->给字段选择组分配字段
在这里插入图片描述
8、可直接复制现有字段创建,维护状态根据视图不同可不同,我这里用采购视图所以是E,注意这里要维护正确的维护状态值,否则在调用函数更新视图的时候可能不会成功,ALE字段组一定要选择GR_GLOB
在这里插入图片描述
在这里插入图片描述

至此我们的屏幕绘制以及屏幕配置已经完成

三、给物料修改保存增强EXIT_SAPLMGMU_001添加更新逻辑

1、此函数出口只有给mara表更新的cmara参数,所以我们需要在我们的函数组里创建一个更新函数,并且创建一个c_maru参数,给c_maru参数赋值
在这里插入图片描述
2、在增强里调用此函数,让屏幕值更新到底表里
在这里插入图片描述
至此,我们的marc表字段增强以及marc表字段屏幕增强就大功完成啦!用MM01,MM02,MM03进行数据验证吧!下图是屏幕实现效果
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP 中,你可以使用屏幕增强技术来对 MM01 事务的基本数据2屏幕进行定制和扩展。以下是一些步骤,可以帮助你实现这个目标: 1. 打开 SE51 事务代码并创建一个屏幕集(Screen Painter)。 2. 在屏幕集中,选择一个屏幕编号,例如2000,并为其定义一个合适的名称。 3. 在屏幕集的屏幕2000中,使用屏幕元素工具栏添加所需的字段和标签。你可以根据需要添加输入字段、输出字段、文本标签等。 4. 使用适当的布局来设置屏幕上的字段和标签的位置。 5. 添加逻辑和功能代码来处理新增字段的输入和输出。你可以在 PBO(Process Before Output) 和 PAI(Process After Input) 事件中添加相应的逻辑处理。 6. 保存并激活你的屏幕集。 7. 然后,通过以下步骤将自定义屏幕集与 MM01 事务的基本数据2屏幕相关联: a. 打开 SE80 事务代码,并导航到对应的程序(例如 SAPLXCSD)。 b. 在程序中找到合适的屏幕号码(例如0201),这是 MM01 的基本数据2屏幕。 c. 在屏幕号码处,选择菜单路径 Edit -> Enhancement Operations -> Show Implicit Enhancement Options。 d. 选择一个合适的隐式增强选项,例如 "Append",并按照提示进行操作。 8. 在增强点的实现中,调用你刚刚创建的自定义屏幕集。这将把你的自定义屏幕集嵌入到 MM01 事务的基本数据2屏幕中。 9. 保存并激活你的增强实现。 现在,当你使用 MM01 事务时,你将看到基本数据2屏幕上的自定义字段和标签,以及你为这些字段添加的逻辑和功能。请注意,这只是一种方法,你可以根据自己的需求和实际情况进行适当的调整和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值