如何给ME2LME2MME3M标准采购报表增加查询字段
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何给ME2L/ME2M/ME3M标准采购报表增加查询字段
ME2L/ME2M/ME3M是SAP/MM模块中非常重要三个标准报表,ME2L/ME2M报表是用来查询采购订单和计划协议这两种采购单据,ME3M是用来查询采购合同和计划协议这两种类型的采购单据,需要经常使用这三报表的部门除了采购外,仓库、PMC、财务等部门也经常要使用,因此在实际项目中对这三个报表增加查询字段的增强需求非常多。
下面通过一个实际项目案例来详细介绍下如何给这三报表增加字段
ME2L/ME2M报表增加字段的具体实施步骤和ME3M一样,下面就以ME3M报表增加字段为例进行说明。
具体业务需求:
某公司的业务需求要将合同里如下2个字段增加到标准合同查询报表(ME3M)中可以供用户查询。
下图是ME3M查询采购合同的报表,这个报表能够查询采购合同的大部分重要信息,但这标准报表也不是采购合同里面的所有字段都能查询到,如果一些特别字段也要在这个报表显示,需要进行增强开发才能实现。
这增强开发也并不复杂,如果增加的字段是在表EKPO和EKKO里面存在的字段,即使不懂开发也能实施,下面详细介绍下具体实施步骤。
增加字段的增强实施步骤
步骤1:在结构MEREP_OUTTAB_PURCHDOC增加字段
在如下维护界面增加2个字段ZZTEXT1和IDNLF
其中IDNLF为表EKPO存在字段,ZZTEXT1字段是表EKPO和EKKN都不存在的字段。
组件类型:ZZTEXT可以通过SE11先定义好(如下图),如果没有定义,直接在附加结构自定义数据类型,则在报表里面可能显示不出字段描述来。
如果报表ME3M报表增加的字段是表EKKO和EKPO里面已存在的字段,那么上面步骤完成后就OK了,标准报表里面就会显示出来。
比如上面字段IDNLF(供应商使用的物料编码)在表EKPO中存在如下图,就不需要再写该字段的取值的增强代码。
但增加字段是不在表EKKO和EKPO里面的字段,则还需要写该字段的取值的增强代码,这就需要懂点开发才能实施,比如上面ZZTEXT1(合同文本-项目)。
下面详细介绍下这字段ZZTEXT1取值的增强的实施步骤(实施隐式增强)步骤2:增强字段的取值逻辑增强点:在程序:LMEREPI02的方法
BUILD_BASE_LIST中实施隐式增强
在程序中找到方法BUILD_BASE_LIST的最后实施隐式增强
创建隐式增强的项目,在如下界面写上取值的增强代码
最后激活增强即可。
增强源代码:
DATA ZLINE TYPE TLINE.
DATA ZLINES TYPE TABLE OF TLINE.
DATA TMP_NAME TYPE THEAD-TDNAME.
DATA TMP_EBELN TYPE MATNR.
DATA TMP_EBELP TYPE EBELP.
CONCATENATE RE_OUTTAB_PURCHDOC-EBELN RE_OUTTAB_PURCHDOC-EBELP INTO TMP_NAME.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'K01'
LANGUAGE = '1'
NAME = TMP_NAME
OBJECT = 'EKPO'
TABLES
LINES = ZLINES EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0 .
LOOP AT ZLINES INTO ZLINE.
RE_OUTTAB_PURCHDOC-ZZTEXT1 = ZLINE-TDLINE.
IF SY-SUBRC = 0 .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
上面步骤完成后增强效果如下(ME3M)。