关于enhancement point的简单使用

  

http://2006057145.blog.163.com/blog/static/17472220220112223357512/

http://blog.csdn.net/iamah/article/details/7941534


这是一个普通的report,没有任何增强。(如图1)

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 
代码中插入一个增强点。(如图2,图3)

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 

关于enhancement point的简单使用 - 2006057145 - 原来为了你

ZENH_SPOT01相当于一个容器,创建一个增强点的必要条件是要有一个容器。每个增强点(如ZENH_POINT01)都可以创建到这个容器当中,也可以再创建一个容器。删除这个容器的方法:在本地对象或它的包中删除或在SE18中删除,激活程序,退出再进。
插入后的代码。(如图4)

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 

以上只是设置了一个enhancement point,而没有去实现它,这时执行程序输出的内容和插入enhancement point

之前没有变化。实际项目中我们要做的事情是:实现(implementation)SAP预留给我们的enhancement point。

具体操作如下:

1.切换到增强状态(如图5)

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 
点完后原有的代码不能编辑,只能对代码进行增强。

2.实现Enhancement point(如图6),光标要定位到这行代码上。

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 
弹出窗口(如图7)。

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 

3.增强之后的代码(如图8,图9),在增强状态下激活一次。

关于enhancement point的简单使用 - 2006057145 - 原来为了你
关于enhancement point的简单使用 - 2006057145 - 原来为了你
 

 

4.然后在非增强状态下激活一次。(如图10)

关于enhancement point的简单使用 - 2006057145 - 原来为了你

 

5.可以看到增强后的效果。(如图11)

关于enhancement point的简单使用 - 2006057145 - 原来为了你
ENHANCEMENT 1  ZENH_IMP01.    "active version
ENDENHANCEMENT.
增强的修改,edit->enhancement operations->change implementation.
 
对于ENHANCEMENT-SECTION, 定义和实现的方法与ENHANCEMENT-POINT一样。两者的区别是:enhancement-point
没有代码,只有一个预留点,允许在这个位置插入新代码(implementation).
而enhancement-section和end-enhancement-section.之间有代码,implementation之后,替换旧代码,只执行
新代码,原来的代码不再执行。
 
编辑状态下能create option.编辑状态下不能编辑增强块,只能编辑其它地方。
增强状态下能对某个option create implementation.增强状态下只能编辑增强块,不能编辑
其它地方.
"例:
REPORT  ztest_enhpoint.
ENHANCEMENT-SECTION ZENH_SECTION01 SPOTS ZENH_SPOT02 .
WRITE:/ 'SECTION 01'.
END-ENHANCEMENT-SECTION.
*$*$-Start: ZENH_SECTION01----------------------------------------------------------------------$*$*
ENHANCEMENT 2  ZENH_IMP01.    "active version
write:/ 'SECTION 02'.
ENDENHANCEMENT.
*$*$-End:   ZENH_SECTION01----------------------------------------------------------------------$*$*
WRITE:/ 'aaa'.
ENHANCEMENT-POINT ZENH_POINT01 SPOTS ZENH_SPOT01 .
*$*$-Start: ZENH_POINT01------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZENH_IMP01.    "active version
write:/ 'ENH,aaa'.
ENDENHANCEMENT.
ENHANCEMENT 1  ZENH_IMP02.    "active version
write:/ 'ENH,bbb'.
ENDENHANCEMENT.
*$*$-End:   ZENH_POINT01------------------------------------------------------------------------$*$*
WRITE:/ 'bbb'.

* 先创建一个enhancement point在容器spot01里,并创建它的2个实现;
* 又创建一个enhancement section在容器spot2里,在section中输出'section 01',再选中section01,创建implimentation,
* 在这里不创建新的imp,而是选择ZENH_IMP01.(这样也可以,说明一个程序中的imp可以随时用,id增加了1),修改imp,输出'section 01'.
* 执行结果,我发现Section 01不再输出了。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值