MM模塊增強:MB51報表增加字段
MB51報表是SAP查詢物料憑證的標準報表,這報表使用頻率非常高,涉及的使用部門非常廣,基本上要使用SAP的部門都需要使用這報表,因此在實際項目中對這個報表的增強需求非常多,而且后期運維中也會不斷有這方面增強的需求。在很多項目中,為更方便滿足用戶的不同需求,一般建議直接把這報表程序復制出來修改。MB51報表增強不能使用1至3代增強,只能通過隱式增強實現,很多1至3代增強無法實施的,都需要隱式增強來實現,但隱式增強的實施難點在于不知道如何找到合適的隱式增強點,這對閱讀源代碼和Debug的能力較高,有些甚至還需要了解具體的業務邏輯才能找到正確增強點。
具體如何查找隱式增強點,不是文本重點,大家可以網上看看相關的博文,下面通過一個例子詳細介紹下如何在MB51報表增加字段的增強實施步驟,大家在項目中如遇到這報表增強需求時可參考,可節省去找隱式增強點的時間。這個例子業務需求如下:要求MB51報表在查詢工單相關的物料憑證時,需要能夠查詢到工單抬頭的長文本中維護的信息(如下圖)
解決方案:
在SAP MB51的標準報表是沒有此字段信息的,如果需增加此字段信息,必須實施增強才能實現。MB51報表的標準程序為RM07DOCS,增強做在這程序里面,具體實施步驟如下。
具體如何查找隱式增強點,不是文本重點,大家可以網上看看相關的博文,下面通過一個例子詳細介紹下如何在MB51報表增加字段的增強實施步驟,大家在項目中如遇到這報表增強需求時可參考,可節省去找隱式增強點的時間。這個例子業務需求如下:要求MB51報表在查詢工單相關的物料憑證時,需要能夠查詢到工單抬頭的長文本中維護的信息(如下圖)

解決方案:
在SAP MB51的標準報表是沒有此字段信息的,如果需增加此字段信息,必須實施增強才能實現。MB51報表的標準程序為RM07DOCS,增強做在這程序里面,具體實施步驟如下。
1.SE38進入程序,找到相關增強點。

2.在程序的包含文件RM07DOCS_GENERATED中定義增強字段。
按如下步驟實施隱式增強。

創建增強項目

在此增強點寫定義數據的代碼

寫完上面代碼點擊保存,繼續下面步驟
3.在子程序DETAI_LIST上實施增強寫上增強字段的取值邏輯

了解這里聲明和代碼的差異可參考如下文章(本例選擇聲明和代碼都行)
https://baijiahao.baidu.com/s?id=1733787956841622108&wfr=spider&for=pc

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增加上報表顯示的字段信息

具體代碼如下:
CLEAR fc_flat. fc_flat-fieldname = 'LTEXT' . fc_flat-seltext_m = '工單長文本' . APPEND fc_flat.
5.最后激活增強

以上就是MB51報表上增強字段的全部步驟,只要能按邏輯取到的值,都可以按上面步驟添加到MB51報表里面,滿足不同業務部門的查詢需求。
本例MB51報表增強增加字段后的效果如下:

引用:https://mp.weixin.qq.com/s/rypNFH01pE1Yxy6oEYognA

浙公網安備 33010602011771號