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

MB51报表是SAP查询物料凭证的标准报表,这报表使用频率非常高,涉及的使用部门非常广,基本上要使用SAP的部门都需要使用这报表,因此在实际项目中对这个报表的增强需求非常多,而且后期运维中也会不断有这方面增强的需求。在很多项目中,为更方便满足用户的不同需求,一般建议直接把这报表程序复制出来修改。

MB51报表增强不能使用1至3代增强,只能通过隐式增强实现,很多1至3代增强无法实施的,都需要隐式增强来实现,但隐式增强的实施难点在于不知道如何找到合适的隐式增强点,这对阅读源代码和Debug的能力较高,有些甚至还需要了解具体的业务逻辑才能找到正确增强点。

具体如何查找隐式增强点,不是文本重点,大家可以网上看看相关的博文,下面通过一个例子详细介绍下如何在MB51报表增加字段的增强实施步骤,大家在项目中如遇到这报表增强需求时可参考,可节省去找隐式增强点的时间。

这个例子业务需求如下:

要求MB51报表在查询工单相关的物料凭证时,需要能够查询到工单抬头的长文本中维护的信息(如下图)

3436afbbcd8ff4cf9b4ae526b6d80ab1.png

解决方案:
在SAP MB51的标准报表是没有此字段信息的,如果需增加此字段信息,必须实施增强才能实现。MB51报表的标准程序为RM07DOCS,增强做在这程序里面,具体实施步骤如下。

1.SE38进入程序,找到相关增强点。

acef6539ada482c0cdbb063e411a8359.png

2.在程序的包含文件RM07DOCS_GENERATED中定义增强字段。
按如下步骤实施隐式增强。

42a23909a44eb4a37018307566406be8.png
创建增强项目

9583b101df18e83bd61b803595b0e34e.png
在此增强点写定义数据的代码

00e8b493a2e82e5f9fcdc236ebaa8c87.png
写完上面代码点击保存,继续下面步骤
3.在子程序DETAI_LIST上实施增强写上增强字段的取值逻辑

b1206e6c0be43faecc854629c8109a15.png
了解这里声明和代码的差异可参考如下文章(本例选择声明和代码都行)
https://baijiahao.baidu.com/s?id=1733787956841622108&wfr=spider&for=pc

191e9b0d66a2002694489940c24153d6.png

具体代码如下

DATA: l_name  TYPE tdobname ,
      lt_lines LIKE TABLE OF tline ,
      l_text TYPE string ,
      ls_line  TYPE  tline .
FIELD-SYMBOLS : <FS_LIST> like  LIST.
IF LIST[] IS NOT INITIAL .
LOOP AT LIST ASSIGNING <FS_LIST> .
IF <FS_LIST>-aufnr IS NOT INITIAL .
"前置补0
call function 'CONVERSION_EXIT_ALPHA_INPUT'
    exporting
      input  =  <FS_LIST>-aufnr
    importing
      output =  <FS_LIST>-aufnr .
CONCATENATE sy-mandt <FS_LIST>-aufnr INTO l_name.
CALL FUNCTION 'READ_TEXT'
  EXPORTING
    id                      = 'KOPF'
    language                = sy-langu
    name                    = l_name
    object                  = 'AUFK'
  TABLES
    lines                   = lt_lines
  EXCEPTIONS
    id                      = 1
    language                = 2
    name                    = 3
    not_found               = 4
    object                  = 5
    reference_check         = 6
    wrong_access_to_archive = 7
    OTHERS                  = 8.
LOOP AT lt_lines INTO ls_line.
  CONCATENATE l_text ls_line-tdline INTO l_text.
ENDLOOP.
<FS_LIST>-LTEXT = l_text .
clear: l_text , ls_line , lt_lines.
ENDIF .
ENDLOOP.
ENDIF .

4.在BUILD_FIELDCATALOG增加上报表显示的字段信息

95e716a44dca4e734000314e7177ed23.png
具体代码如下:

CLEAR fc_flat.
fc_flat-fieldname = 'LTEXT' .
fc_flat-seltext_m = '工单长文本' .
APPEND fc_flat.

5.最后激活增强
854ff84919c3fec85269d56d66660a4f.png

以上就是MB51报表上增强字段的全部步骤,只要能按逻辑取到的值,都可以按上面步骤添加到MB51报表里面,满足不同业务部门的查询需求。

本例MB51报表增强增加字段后的效果如下:

cf08f2b47e161264d4382d9d93978c83.png


特别声明:以上纯属个人学习SAP软件应用的心得体会,不代表SAP官方和其它任何公司,仅可作为学习SAP参考,文中操作演示截图来源于SAP软件,相应著作权归SAP公司所有。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值