在做这些报表增强的时候通常会使用系统预留的ENHANCEMENT POINT类似(RM06EF00 FOR ME28)去解决。
当一个项目需要对大量的采购报表进行增强时,一个一个去找预留增强点去修改,首先是代码量比较大,而且容易出错。
BADI ME_CHANGE_OUTTAB_CUS很好解决了这个问题。
拿ME28来说:通过BADI创建了实施以后,我们可以声明一个字段符号参照入参IM_STRUCT_NAME,对于不同的事务代码
STURCT_NAME可能不一样。拿ME28来说,只需要完成以下几步就可以实现字段的增强,方便快捷而且比较安全。
◆在报表的输出结构中(ME28是MEREP_OUTTAB_PURCHDOC_REL) append 一个structure,激活。这个时候运行ME28已经可以看到增强的字段了,但是没有值。
◆在BADI里写入传值的代码,这个时候我们需要判断一下IM_STRUCT_NAME对应的是哪一个STRUCT.如果确实不记得,直接在增强里打个断点跟踪一下。
贴下部分测试代码:
IF im_struct_name EQ ‘MEREP_OUTTAB_PURCHDOC_REL’.
FIELD-SYMBOLS:<fs_tab> TYPE merep_outtab_purchdoc_rel.
LOOP AT ch_outtab ASSIGNING <fs_tab>.
<fs_tab>-groes = ‘test’.
ENDLOOP.
ENDIF.
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/19754.html