QA32增强

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

为方便用户查看报表数据,需要将QA32报表中新增物料组、供应商、描述等字段,即增强标准报表QA32,增加上述几列字段,具体做法如下:

** 1、效果展示 **

运行QA32报表显示出新增字段

QA32增强 - 封面图
QA32增强 - 封面图

** 2、修改程序RQEEAL10 **

QA32报表程序对应的程序为RQEEAL10。在程序中找到报表展示的字段列的结构,在结构中增加上述字段

QA32增强 - 封面图
QA32增强 - 封面图

表新增字段

QA32增强 - 封面图
QA32增强 - 封面图

找到报表展示的子例程

QA32增强 - 封面图
QA32增强 - 封面图

找到程序RQEEAL10,子例程中新增隐式增强

QA32增强 - 封面图
QA32增强 - 封面图

隐式增强参考代码

"-----------------------------------------@斌将军--------------------------------------------ENHANCEMENT 1 Z101. "active version

DATA:LS_TAB LIKE LINE OF OBJECT_TAB.DATA:TMP_NAME TYPE THEAD-TDNAME.DATA:LT_LINE TYPE STANDARD TABLE OF TLINE, LS_LINE TYPE TLINE.LOOP AT P_OBJECT_TAB INTO LS_TAB. IF SY-TCODE = 'QA32' OR SY-TCODE = 'QA33'. SELECT SINGLE MARA~MATKL

T023T~WGBEZ FROM MARA LEFT JOIN T023T ON MARA~MATKL = T023T~MATKL AND T023T~SPRAS = SY-LANGU INTO CORRESPONDING FIELDS OF LS_TAB WHERE MARA~MATNR = LS_TAB-MATNR.

SELECT SINGLE NAME1 FROM LFA1 INTO CORRESPONDING FIELDS OF LS_TAB WHERE LIFNR = LS_TAB-LIFNR. ENDIF. MODIFY P_OBJECT_TAB FROM LS_TAB." TRANSPORTING EBELN_TEXT ZJGH ZLPH ZZBSH ZCLPH ZCJH ZVENDOR ZSCCJ ZGDH. CLEAR LS_TAB.ENDLOOP.ENDENHANCEMENT."-----------------------------------------@斌将军--------------------------------------------

** 需要将新增的栏位设置到布局中并保存,下次进入显示默认布局带出新增字段 **

** 如果未保存布局,查询出报表之后,再显示新增字段,发现字段没有值 **

如果想在ALV展示之后,再放开字段并保证有值,就要找到更改布局时,调用的子例程

QA32增强 - 封面图
QA32增强 - 封面图

在子例程的最后,加上查询逻辑

"-----------------------------------------@斌将军--------------------------------------------ENHANCEMENT 2 ZNHMME00101. "active version* \PR:RQEEAL10\FO:CALL_LISTVIEWER_F14\SE:DATA:h_fieldcat_wa TYPE slis_fieldcat_alv.

DATA:LS_TAB LIKE LINE OF OBJECT_TAB.DATA:TMP_NAME TYPE THEAD-TDNAME.DATA:LT_LINE TYPE STANDARD TABLE OF TLINE, LS_LINE TYPE TLINE.LOOP AT object_tab INTO LS_TAB. IF SY-TCODE = 'QA32' OR SY-TCODE = 'QA33'. SELECT SINGLE MARA~MATKL

T023T~WGBEZ FROM MARA LEFT JOIN T023T ON MARA~MATKL = T023T~MATKL AND T023T~SPRAS = SY-LANGU INTO CORRESPONDING FIELDS OF LS_TAB WHERE MARA~MATNR = LS_TAB-MATNR.

SELECT SINGLE NAME1 FROM LFA1 INTO CORRESPONDING FIELDS OF LS_TAB WHERE LIFNR = LS_TAB-LIFNR. ENDIF. MODIFY object_tab FROM LS_TAB." TRANSPORTING EBELN_TEXT ZJGH ZLPH ZZBSH ZCLPH ZCJH ZVENDOR ZSCCJ ZGDH. CLEAR LS_TAB.ENDLOOP.ENDENHANCEMENT."-----------------------------------------@斌将军--------------------------------------------

这样,即使进入时没有该字段,更改布局后,还是可以将字段值带出

斌将军

关于作者:斌将军

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

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