MB52增强增加过滤条件,增加字段

网上找到的代码并不多,本人写SAP代码也不太久,分享一下思路,大佬们有更好的方法可以提出来。

MB52增加过滤条件

用户需求

MB52界面上的筛选条件不够满足要求,需要通过物料的某项特征值筛选。

程序分析

查看MB52的源码,与我们正常写的report逻辑差不多,取数的逻辑写在start-of-selection里。由于通过特征值筛选物料,则在查询时直接根据用户填的特征值修改matnr即可,无需关注他的取值逻辑。
在这里插入图片描述在这里插入图片描述

代码修改

  1. 选择屏幕增加特征值字段
    在这里插入图片描述
  2. 查询时根据特征值修改matnr中的内容
    在这里插入图片描述
    3.对了,查询时如果不填物料这些信息的话,会提示一个"限制选择",非得再多一个回车的操作,经调试后发现是下图这里的程序,刚好预留了增强点,可以把这个提示去掉。
    在这里插入图片描述

MB52增加字段,客户名称

程序分析

  1. 首先在end-of-selection 找到alv展示的部分,发现他展示的是bestand这个内表
  2. 再去start-of-selection 中找到bestand的赋值过程,我们也无需关注他的取值逻辑,直接在最后运算完的地方找一个隐式增强的点,loop一下这个内表,对新加的字段赋值即可。
  3. 最后fieldcat还要加上这个字段

代码修改

  1. 内表增加字段
    在这里插入图片描述
  2. 字段赋值
    在这里插入图片描述
    3.fieldcat 增加展示的字段
    在这里插入图片描述

总结

  1. 其他的一些复杂逻辑的标准报表修改也可以用这个思路:
    对于筛选,可以在查询前修改标准的字段
    对于增加字段,可以在标准的查询后,再去修改给新增的字段赋值
    这样就无需研究他的取数逻辑了
  2. 由于本人比较菜,写的增强基本上都是直接去找的隐式增强,不太会找badi,大佬们有没有其他的思路也可以分享。

感谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值