MB52增强

作者:斌将军 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
MB52增强 - 封面图
MB52增强 - 封面图

** 1、在MB52报表中新增字段 **

实现如图效果

MB52增强 - 封面图
MB52增强 - 封面图

** 2、增强实现 **

MB52程序为RM07MLBS,在程序中找到定义的内表结构bestand,在最后创建隐式增强,加入增强字段,该内表为将来展示的ALV数据

MB52增强 - 封面图
MB52增强 - 封面图

设置ALV列,在子例程最后创建隐式增强,加入列字段,在子例程fieldcatalog和f0300_fieldcat_flat中都添加

MB52增强 - 封面图
MB52增强 - 封面图

"-----------------------------------------@斌将军--------------------------------------------"-----------------------------fieldcatalog-------------------------------ENHANCEMENT 2 ZMB52. "active version CLEAR fieldcat. fieldcat-fieldname = 'ZKHMC'. fieldcat-seltext_l = fieldcat-seltext_s = fieldcat-seltext_m = '客户名称'. APPEND fieldcat.

CLEAR fieldcat. fieldcat-fieldname = 'POST1'. fieldcat-seltext_l = fieldcat-seltext_s = fieldcat-seltext_m = 'WBS名称'. APPEND fieldcat.

CLEAR fieldcat. fieldcat-fieldname = 'PSPHI'. fieldcat-seltext_l = fieldcat-seltext_s = fieldcat-seltext_m = '项目号'. APPEND fieldcat.

CLEAR fieldcat. fieldcat-fieldname = 'ZXMMC'. fieldcat-seltext_l = fieldcat-seltext_s = fieldcat-seltext_m = '项目名称'. APPEND fieldcat.

ENDENHANCEMENT.

*$*$-End: (2)---------------------------------------------------------------------------------$*$*ENDFORM. " FELDKATALOG_AUFBAUEN

"-----------------------------------------@斌将军--------------------------------

显示字段

"-----------------------------------------@斌将军--------------------------------------------"-----------------------------f0300_fieldcat_flat----------------------- fieldcat-seltext_l = '客户名称'. macro_fill_fieldcat 'ZKHMC' '' c_out. fieldcat-seltext_l = 'WBS名称'. macro_fill_fieldcat 'POST1' '' c_out. fieldcat-seltext_l = '项目号'. macro_fill_fieldcat 'PSPHI' '' c_out. fieldcat-seltext_l = '项目名称'. macro_fill_fieldcat 'ZXMMC' '' c_out.ENDENHANCEMENT.*$*$-End: (4)---------------------------------------------------------------------------------$*$*ENDFORM. "f0300_fieldcat_flat"-----------------------------------------@斌将军--------------------------------------------

获取数据,在子例程list_output中加入隐式增强,查询字段的数据

"-----------------------------------------@斌将军--------------------------------FORM list_output."""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(3) Form LIST_OUTPUT, Anfang A*$*$-Start: (3)---------------------------------------------------------------------------------$*$*ENHANCEMENT 3 ZMB52. "active version data:l_index type i. DATA:LT_CHAR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR WITH HEADER LINE. IF bestand[] IS NOT INITIAL. SELECT KUNNR, NAME1 FROM KNA1 INTO TABLE @DATA(LT_KNA1) FOR ALL ENTRIES IN @bestand WHERE KUNNR = @bestand-KUNNR.

SELECT PRPS~PSPNR, PRPS~POST1,"WBS名称 PRPS~PSPHI,"项目号 PROJ~POST1 AS ZXMMC"项目名称 FROM PRPS INNER JOIN PROJ ON PRPS~PSPHI = PROJ~PSPNR INTO TABLE @DATA(LT_PRPS) FOR ALL ENTRIES IN @bestand WHERE PRPS~PSPNR = @bestand-PSPNR. ENDIF. LOOP AT bestand . l_index = sy-tabix. "客户名称 READ TABLE lt_kna1 INTO DATA(ls_kna1) WITH KEY kunnr = bestand-kunnr. IF sy-subrc EQ 0. bestand-zkhmc = ls_kna1-name1. ENDIF. READ TABLE LT_PRPS INTO DATA(LS_PRPS) WITH KEY PSPNR = bestand-PSPNR. IF SY-SUBRC EQ 0. bestand-POST1 = LS_PRPS-POST1. bestand-PSPHI = LS_PRPS-PSPHI. bestand-ZXMMC = LS_PRPS-ZXMMC. ENDIF. MODIFY bestand INDEX l_index. ENDLOOP.ENDENHANCEMENT.*$*$-End: (3)---------------------------------------------------------------------------------$*$** set pf-status 'STANDARD'.ENHANCEMENT-SECTION rm07mlbs_09 SPOTS es_rm07mlbs."-----------------------------------------@斌将军--------------------------------
斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「MB52增强.md」整理生成,仅用于内部技术分享与学习交流。