1、外挂表创建
2、给表MSEG增强字段KDMAT
3、SPRO-IMG-物料管理-库存管理和实际库存-报表-定义物料凭证列表的字段选择 这里添加刚新增的字段
4、包含程序RM07DOCS_GENERATED增强
5、在子程序DATA_SELECTION_NEW中增强筛选逻辑
IF SY-TCODE = 'MB51'.
IF KDMAT IS NOT INITIAL.
"如何客户物料筛选条件存在值,则需要做筛选逻辑处理
DATA:GT_ZMMTMIGOFLD_D TYPE TABLE OF ZMMTMIGOFLD_D,
GS_ZMMTMIGOFLD_D TYPE ZMMTMIGOFLD_D.
SELECT
*
FROM ZMMTMIGOFLD_D
INTO TABLE GT_ZMMTMIGOFLD_D
WHERE ZMMTMIGOFLD_D~KDMAT IN KDMAT.
"进行对应的筛选条件赋值,即MBLNR、MJAHR、ZEILE
LOOP AT GT_ZMMTMIGOFLD_D INTO GS_ZMMTMIGOFLD_D.
MBLNR-LOW = GS_ZMMTMIGOFLD_D-MBLNR.
MBLNR-SIGN = 'I'.
MBLNR-OPTION = 'EQ'.
APPEND MBLNR.
CLEAR MBLNR.
MJAHR-LOW = GS_ZMMTMIGOFLD_D-MJAHR.
MJAHR-SIGN = 'I'.
MJAHR-OPTION = 'EQ'.
APPEND MJAHR.
CLEAR MJAHR.
ZEILE-LOW = GS_ZMMTMIGOFLD_D-ZEILE.
ZEILE-SIGN = 'I'.
ZEILE-OPTION = 'EQ'.
APPEND ZEILE.
CLEAR ZEILE.
CLEAR GS_ZMMTMIGOFLD_D.
ENDLOOP.
"清空客户物料字段值
CLEAR KDMAT[].
ENDIF.
ENDIF.
6、在子程序DATA_SELECTION中增强筛选逻辑
7、在子程序DATA_SELECTION_VIA_MATNR中增强筛选逻辑
8、在子程序DATA_SELECTION_VIA_BUDAT 中增强筛选逻辑
9、在子程序build_runtimetable赋值逻辑
IF SY-TCODE = 'MB51'.
DATA:GT_ZMMTMIGOFLD_D2 TYPE TABLE OF ZMMTMIGOFLD_D,
GS_ZMMTMIGOFLD_D2 TYPE ZMMTMIGOFLD_D.
IF ITAB[] IS NOT INITIAL.
SELECT
*
FROM ZMMTMIGOFLD_D
INTO TABLE GT_ZMMTMIGOFLD_D2
FOR ALL ENTRIES IN ITAB[]
WHERE MBLNR = ITAB-MBLNR
AND MJAHR = ITAB-MJAHR
AND ZEILE = ITAB-ZEILE.
LOOP AT ITAB.
READ TABLE GT_ZMMTMIGOFLD_D2 INTO GS_ZMMTMIGOFLD_D2 WITH KEY MBLNR = ITAB-MBLNR MJAHR = ITAB-MJAHR ZEILE = ITAB-ZEILE.
IF SY-SUBRC = 0.
ITAB-KDMAT = GS_ZMMTMIGOFLD_D2-KDMAT.
ENDIF.
MODIFY ITAB.
CLEAR ITAB.
ENDLOOP.
ENDIF.
ENDIF.
10、实现结果截图: