这是一个普通的report,没有任何增强。(如图1)代码中插入一个增强点。(如图2,图3)ZENH_SPOT01相当于一个容器,创建一个增强点的必要条件是要有一个容器。每个增强点(如ZENH_POINT01)都可以创建到这个容器当中,也可以再创建一个容器。删除这个容器的方法:在本地对象或它的包中删除或在SE18中删除,激活程序,退出再进。插入后的代码。(如图4)以上只是设置了一个enhancementpoint,而没有去实现它,这时执行程序输出的内容和插入enhancementpoint之前没有变化。实际项目中我们要做的事情是:实现(implementation)SAP预留给我们的enhancementpoint。具体操作如下:1.切换到增强状态(如图5)点完后原有的代码不能编辑,只能对代码进行增强。2.实现Enhancementpoint(如图6),光标要定位到这行代码上。弹出窗口(如图7)。3.增强之后的代码(如图8,图9),在增强状态下激活一次。4.然后在非增强状态下激活一次。(如图10)5.可以看到增强后的效果。(如图11)ENHANCEMENT1ZENH_IMP01."activeversionENDENHANCEMENT.增强的修改,edit->enhancementoperations->changeimplementation.对于ENHANCEMENT-SECTION,定义和实现的方法与ENHANCEMENT-POINT一样。两者的区别是:enhancement-point没有代码,只有一个预留点,允许在这个位置插入新代码(implementation).而enhancement-section和end-enhancement-section.之间有代码,implementation之后,替换旧代码,只执行新代码,原来的代码不再执行。编辑状态下能createoption.编辑状态下不能编辑增强块,只能编辑其它地方。增强状态下能对某个optioncreateimplementation.增强状态下只能编辑增强块,不能编辑其它地方."例:REPORTztest_enhpoint.ENHANCEMENT-SECTIONZENH_SECTION01SPOTSZENH_SPOT02.WRITE:/'SECTION01'.END-ENHANCEMENT-SECTION.*$*$-Start:ZENH_SECTION01----------------------------------------------------------------------$*$*ENHANCEMENT2ZENH_IMP01."activeversionwrite:/'SECTION02'.ENDENHANCEMENT.*$*$-End:ZENH_SECTION01----------------------------------------------------------------------$*$*WRITE:/'aaa'.ENHANCEMENT-POINTZENH_POINT01SPOTSZENH_SPOT01.*$*$-Start:ZENH_POINT01------------------------------------------------------------------------$*$*ENHANCEMENT1ZENH_IMP01."activeversionwrite:/'ENH,aaa'.ENDENHANCEMENT.ENHANCEMENT1ZENH_IMP02."activeversionwrite:/'ENH,bbb'.ENDENHANCEMENT.*$*$-End:ZENH_POINT01------------------------------------------------------------------------$*$*WRITE:/'bbb'.*先创建一个enhancementpoint在容器spot01里,并创建它的2个实现;*又创建一个enhancementsection在容器spot2里,在section中输出'section01',再选中section01,创建implimentation,*在这里不创建新的imp,而是选择ZENH_IMP01.(这样也可以,说明一个程序中的imp可以随时用,id增加了1),修改imp,输出'section01'.*执行结果,我发现Section01不再输出了