屏幕增强

如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/12/06/4952544.aspx

SAP设计的东西挺好的,可以让我们自己做平面增强,菜单增强,嵌入自己写的代码,而且对它原有的东西又没有影响。最近做了两个子屏幕的增强,总结下。

1. 什么是子屏幕

SAP中有标准的例子程序DEMO_DYNPRO_SUBSCREENS,短小精悍很容易看懂。当然很多标准的程序都有子屏幕,不过较为复杂。子屏幕其实就是嵌入到屏幕中的屏幕,我感觉设计的和函数一样,写好了之后可以被不同的主屏幕调用。

PBO主屏幕调用子屏幕的语句如下:

CALL SUBSCREEN: AREA1 INCLUDING SY-REPID NUMBER1,
                  AREA2 INCLUDING SY-REPID NUMBER2.

AREA1和AREA2都是在主屏幕中定义好的custom control,NUMBER1和NUMBER2就是子屏幕号,可以用变量,所以可以动态的调用不同的子屏幕。当然你得先建立好子屏幕。程序运行到这里会自动运行子屏幕的PBO事件。

PAI中调用子屏幕语句如下:

CALL SUBSCREEN: AREA1,
                             AREA2.

和PBO中有点不同,程序运行到这里也会自动运行子屏幕的PAI事件,然后再返回。

有几点需要注意:

  • A. 同一程序的子屏幕命名空间是同一个,所以得保证不同子屏幕的元素名称不同
  • B. 子屏幕不能有自己的OK_CODE
  • C. 子屏幕的处理逻辑不能有MODULE ... AT EXITCOMMAND,这个TYPE 为E的函数只能在主屏幕中处理
  • D. 子屏幕同样也不能有SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN, or LEAVE TO SCREEN.否则会报错

2. 如何做增强

理解了子屏幕的概念,做增强就十分好做了.其实就做两件事:在子屏幕上添加你想要的效果, 写好PAI和PBO的处理逻辑.

3. 实例

A. VA01附加数据B子屏幕增强

image

通过添加一个字段,把多余的信息存进VBAK中,当然VBAK表要做一个APPEND 增强.

这里其实是SAP留好的接口,

CALL SUBSCREEN 8309 INCLUDING 'SAPMV45A' '8309'.

程序SAPMV45A中屏幕4312就调用了8309子屏幕,我们只管在里面做任何想做的事情就好了.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值