MB52 报表增加批次相关字段

目录

需求

分析

显示ALV程序

显示字段fieldcat定义:

字段内容赋值过程

实现

增加字段

字段内容赋值

增加显示


需求

MB52非层次表述时:
(1)增加显示批次生产日期; MCH1-HSDAT
(2)增加显示批次过期日期;MCH1-VFDAT
(3)增加显示供应商批次号;MCH1-LICHA

可以在检查库存时查询到相关的批次信息,方便生产仓库的库存批次管理。

分析

显示ALV程序

MB52系统标准程序:RM07MLBS

Debug过程先从,显示开始。

end-of-selection 设断点调试。最终ALV呈现在子例程list_output完成。

list_output子例程进行同样的调试。ALV呈现在下述语句完成。 (非层次表述)

显示使用的内表为: bestand表,显示字段设置表未fieldcat[]表。

显示字段fieldcat定义:

在end-of-selection的断点调试:fiedldcat表在F0300_FIELDCAT_FLAT子例程中完成。

在子例程f0300_fieldcat_flat中通过宏的方式增加fieldcat字段。

新增加的字段可以参照 “批次”charg字段的方式来进行。

字段内容赋值过程

在end-of-selection 之前,bestand表已经赋值。需要在start-of-selection事件中寻找对应的子例程:data_selection_new。

调试后确认data_selection_new为需要增强的子例程。

实现

隐式增强方式如:

网络参考文章:做隐式增强。

SAP软件MM模块项目实施中常用增强之二:MB51报表增加字段-CSDN博客

增加字段

在bestand内表字段定义提供的隐式增强点增加字段。

增加内容如下:

    DATA hsdat TYPE mch1-hsdat.
    DATA vfdat TYPE mch1-vfdat.
    DATA licha TYPE mch1-licha.
    DATA zzbatch TYPE mch1-zzbatch.

字段内容赋值

MB52数据量并不会太多,直接通过loop内的select single语句完成更新。

在子例程data_selection_new的尾部增加循环,添加MCH1表中的数据。

增加内容如下:

代码如下:

IF  xmchb = 'X'.
    LOOP AT bestand ASSIGNING FIELD-SYMBOL(<data_mch1>).
      IF NOT bestand-matnr IS INITIAL.
        SELECT SINGLE licha vfdat hsdat 
            INTO CORRESPONDING FIELDS OF <data_mch1> 
            FROM mch1 
            WHERE matnr = <data_mch1>-matnr AND charg = <data_mch1>-charg.
      ENDIF.
    ENDLOOP.
ENDIF.

增加的xmchb判断:如果不对显示批次库存进行选择,则不运行相关的loop语序。

增加显示

子例程f0300_fieldcat_flat尾部进行隐式增强。参照批次charg字段的方式进。

内容如下:

代码如下:

  IF xmchb = 'X'.
    macro_fill_fieldcat 'HSDAT'  'MCH1'   c_out.
    macro_fill_fieldcat 'VFDAT'  'MCH1'   c_out.
    macro_fill_fieldcat 'LICHA'  'MCH1'   c_out.
    macro_fill_fieldcat 'ZZBATCH'  'MCH1'   c_out.

  ENDIF.

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值