接着上一篇 MIGO屏幕增强,续写MB51 自定义字段增强,细节方面略有区别。
整体实现思路:
因为没有预留出口,所以选择隐式增强的方式。(隐式增强方式自行参悟)
1、给ALV内表结构加字段
2、完善取数逻辑
3、扩展ALV的Fieldcat
具体步骤如下:
1、给ALV内表结构加字段
SE93确定程序: RM07DOCS
包含程序 RM07DOCS_GENERATED 中 扩展内表itab
2、完善取数逻辑
完善包含程序RM07DOCS_GENERATED中 DATA_SELECTION_NEW取数逻辑
完善包含程序RM07DOCS_GENERATED中 DATA_SELECTION_VIA_MATNR取数逻辑
完善包含程序RM07DOCS_GENERATED中 DATA_SELECTION_VIA_BUDAT取数逻辑
应该已经发现了,取数逻辑其实都一样,只是地方不同而已。
LOOP AT itab.
SELECT SINGLE NAME1 INTO itab-NAME2 FROM LFA1 WHERE lifnr = itab-lifnr.
SELECT SINGLE REASON1 REASON2 INTO (itab-REASON1,itab-REASON2) FROM ZTMM017 WHERE MBLNR = itab-MBLNR AND MJAHR = itab-MJAHR.
IF itab-REASON1 IS NOT INITIAL.
SELECT SINGLE ZVALUE2 INTO itab-REASON1_DESC FROM ZTMM00 WHERE ZID = 'MM0006' AND ZVALUE1 = itab-REASON1.
ENDIF.
MODIFY itab TRANSPORTING NAME2 REASON1 REASON1_DESC REASON2.
ENDLOOP.
3、扩展ALV的Fieldcat
这里需要注意,如果是标准表(表名长度不大于5个字符)的字段,可直接在build_runtimetable中添加;如果是自定义表字段,则最好在build_fieldcatalog添加。