需求:源系统中mb52无法满足,现在需要在原有的基础上对mb52所对应的程序进行修改增加字段

文章目录

  • 需求分析
  • 准备
  • 宏定义
  • 数据查询
  • 总结

需求分析

1.我们以面向对象的方式进行对MB52对应的程序分析
2.报表程序一本分为哪几部分
3.哪些字段是需要展示的

准备

首先我们操作一下MB52大致就会有个思路.
按照下面的选择(具体根据个人的业务需求来,这里只是演示)

然后呢就会出现alv报表.
注意:如果你在复制该RM07MLBS后发现没有alv显示


发现是这样显示的.
解决方案

我们MB52找到程序RM07MLBS
使用SE93

我们不在原程序RM07MLBS中进行修改,而是直接复制一份使用.
复制完成之后先以SE80那样的结构去熟悉一下程序代码,他有六千多行,没有必要每行都了解.挑重点就行.
熟悉之后你会发现我们主要使用的是就这几个子程序:如下

前一个是宏定义,后一个就是alv输出了
然后字段只需要在bestand中添加即可


到这里我们的字段就添加完成了,接下来就是宏定义了.

宏定义

找到macro_fill_fieldcat宏定义,我们主要看&1234这个对应的
&1:字段名
&2:表名
&3:字段可见性


然后就添加添加字段的宏定义即可

宏定义我们就添加完成,接下来就是数据查询.

数据查询

数据查询的话就是两大步 查询数据和修改数据.
注意:lv_index = sy-tabix 不需要加一

查询代码(根据个人业务去查询数据)

IF bestand[] IS NOT INITIAL.
*具体数据查询SQL逻辑SELECT  t134t~mtbez ,t134t~mtart FROM t134tINNER JOIN mara ON mara~mtart = t134t~mtartINTO TABLE @DATA(lt_mtbez)FOR ALL ENTRIES IN @bestandWHERE   t134t~mtart = @bestand-mtart .SELECT zbmcl ,zggxh ,groes ,matnrFROM maraINTO TABLE @DATA(lt_mara)FOR ALL ENTRIES IN @bestandWHERE matnr = @bestand-matnr.SELECT  wgbez,matkl FROM t023tINTO TABLE @DATA(lt_matkl)FOR ALL ENTRIES IN @bestandWHERE matkl = @bestand-matkl.SELECT  lgobe,lgort FROM t001lINTO TABLE @DATA(lt_lgobe)FOR ALL ENTRIES IN @bestandWHERE lgort = @bestand-lgort.SELECT  atwrt,mch1~charg FROM mch1INNER JOIN mchb ON mchb~charg = mch1~chargINNER JOIN ausp ON ausp~objek = mch1~cuobj_bmINTO TABLE @DATA(lt_atwrt)FOR ALL ENTRIES IN @bestandWHERE mch1~charg = @bestand-charg .SELECT sobkz FROM mkolINTO TABLE @DATA(lt_sobkz)WHERE sobkz = 0.LOOP AT lt_sobkz INTO DATA(ls_sobkz) WHERE sobkz = 0.SELECT  name1,lifnr FROM lfa1INTO TABLE @DATA(lt_name1)FOR ALL ENTRIES IN @bestandWHERE lifnr  = @bestand-lifnr.ENDLOOP.ENDIF.*把查询的数据修改到bestandLOOP AT bestand.lv_index = sy-tabix .
*读取查询出来的数据内表,读取条件READ TABLE lt_mtbez INTO DATA(ls_mtbez) WITH KEY mtart = bestand-mtart .IF sy-subrc = 0.bestand-mtbez = ls_mtbez-mtbez.ENDIF.READ TABLE lt_mara INTO DATA(ls_mara) WITH KEY matnr = bestand-matnr.IF  sy-subrc = 0.bestand-zbmcl = ls_mara-zbmcl.bestand-zggxh = ls_mara-zggxh.bestand-groes = ls_mara-groes.ENDIF.READ TABLE lt_matkl INTO DATA(ls_matkl) WITH KEY matkl = bestand-matkl.IF sy-subrc = 0.bestand-wgbez = ls_matkl-wgbez.ENDIF.READ TABLE lt_lgobe INTO DATA(ls_lgobe) WITH KEY lgort = bestand-lgort.IF  sy-subrc = 0.bestand-lgobe = ls_lgobe-lgobe.ENDIF.READ TABLE lt_atwrt INTO DATA(ls_atwrt) WITH KEY charg = bestand-charg.IF sy-subrc = 0.bestand-atwrt = ls_atwrt-atwrt.ENDIF.READ TABLE lt_name1 INTO DATA(ls_name1) WITH KEY lifnr = bestand-lifnr.IF sy-subrc = 0.bestand-name1 = ls_name1-name1.ENDIF.*把读取到的数据赋值给bestand具体字中MODIFY bestand INDEX lv_index.ENDLOOP.

总结

从理论上来讲,和我们开发的报表是一样的,只不过这个是系统给到功能比较强大
但我们在对他进行修改的时候,发开的逻辑思维是一样的.先看程序的结构然后再做
以上都是个人开发经验,欢迎留言区讨论!!!

MB52字段增加 显示物料库存报表相关推荐

  1. Reflex WMS入门系列二十二:物料库存报表

    Reflex WMS入门系列二十二:物料库存报表 在Reflex WMS系统上,我们可以通过物料号查询它的HD列表,或者IPG列表.通过在其HD/IPG信息得知其库存数据.当然还可以通过如下方式直接获 ...

  2. 「SAP技术」SAP MM MB5M报表不显示特殊库存数据

    SAP MM MB5M报表不显示特殊库存数据 比如如下物料号F000005451有特殊库存O库存, 该物料批次的有效期, MB5M,输入该物料号执行查询, 查询结果里,不显示O库存,只显示Normal ...

  3. K3 单据,单据体自定义字段显示及时库存

    --1.解决了显示可发数量的单据,且已经审核的单据,库存数据更新后,单据上的可发数量随库存变化,现在能实现当时的可发数量和件数保存到单据中 --2.解决了负库存数据显示为0的问题 --2011.09. ...

  4. 库存管理-历史库存和收发存系列-俄罗斯库存报表J3RFLVMOBVED1

    1.总揽: 俄罗斯库存报表J3RFLVMOBVED是针对俄罗斯开发的一张报表,属于SAP的标准报表,我们可以使用.与MB5B相比较,其更加明细,包括但不限于以下功能 业务需求 J3RFLVMOBVED ...

  5. PP实施经验分享(9)——SAP中Day’s supplyReceipt day’s supply及相关报表(可当物料短缺报表使用)

    PP实施经验分享(9)--SAP中Day's supply&Receipt day's supply及相关报表(可当物料短缺报表使用) 项目实施过程中会经常碰到计划物流部对于采购物料短缺情况提 ...

  6. SAP S4 MM配置详解之三:物料主数据-定义物料类型/物料状态/字段选择控制/物料组

    1.定义物料类型 概念及功能说明 物料类型是对物料进行分组的一种方式,每一种类型的物料有相同的基本属性,例如原材料.半成品和成品.创建物料主记录时,将物料分配到物料类型.物料类型属于物料的一般数据.控 ...

  7. php实现贴吧功能,PHPCMS V9万能字段增加单选功能,实现多条房产信息调用1个开发商信息等效果...

    用过PHPCMS V9万能字段的朋友应该知道,万能字段是个非常强大的功能,基本上可以实现任何复杂的字段逻辑调用,比如调用相关文章.调用相关房产信息等等.作者在帮一个客户做房产网站项目开发的时候,需要实 ...

  8. java oracle 图片_JAVA读取Oracle中的blob图片字段并显示

    JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...

  9. PR 审批界面增加显示项 解决方法

    摘自: https://www.cnblogs.com/wanghang/p/6299159.html Step 1:       进入审批界面: Step 2:       在上图中,点击左下角'A ...

最新文章

  1. 华为java安全编码规范_Java安全编码之SQL注入
  2. ubuntu20.04下安装Docker和NVIDIA Container Toolkit教程
  3. Python生成器与迭代器详细教程
  4. 【转】PowerShell入门(五):Cmd命令与PowerShell命令的交互
  5. 巅峰对决!Spring Boot VS .NET 6
  6. 博客迁移到github
  7. VSTO 3.0 for Office 2007 Programming
  8. HDU 1503 Advanced Fruits
  9. 在虚拟主机上部署ASP.NET AJAX 1.0 Beta的程序集
  10. 恢复触摸板功能的方法
  11. Picasa轻松浏览电脑全图片v3.9.138
  12. 1968:Misspelling
  13. 22071班华清远见(上海中心)
  14. mysql分隔符_在sql文件中设置MySQL分隔符
  15. 虚拟地址到物理地址的转换步骤
  16. redis学习——redis事务
  17. Windows 文本大文件查看工具
  18. linux ubuntu 命令行高亮
  19. 第二讲 HTML再识(一)
  20. 计算机程序设计c++ 8-6:数组指针相关应用

热门文章

  1. ①YOLO v1~v3、②YOLO v3 SPP、③IoU、GIoU、DIoU、CIoU、④Focal Loss的理论讲解
  2. 计算机房承重国家标准,机房承重标准及承重计算方法
  3. k近邻回归算法python_K-近邻回归算法的实用介绍(附Python代码)
  4. MFC容器MFC中容器类的使用
  5. 曼谷拉响雾霾警报 民众抢购口罩
  6. linux中rcs没有运行,求助大神:linux启动的时候执行完rc.sysinit就死在rcS上了
  7. 小米盒子3刷回老版本,安装32位18.9版本KODI
  8. ~30万 | 上海交大鲁洪中课题组2023年诚招系统生物学和合成生物学方向博士后2名...
  9. CyberController手机外挂番外篇:源代码的二次修改
  10. 程序设计第十题 数列有序