ABAP--关于ABAP的屏幕编程的SCREEN SEQUENCE的说明ABAP--关于ABAP的屏幕

最近一个网友提到他在做SCREEN编程时,一旦屏幕之间切换次数过多就会出现堆栈溢出的错误。经过分析他提供的信息,我得出错误的原因是他错误地使用CALL SCREEN语句来做屏幕之间的切换。由于SAP系统每次碰到CALL SCREEN语句就会产生新的SCREEN SEQUENCE(参见下图),而且SAP系统设置了SCREEN SEQUENCE堆栈不能超过50个,一旦超过就会出溢出错误。网友就是错误的使用CALL SCREEN 100 和 CALL SCREEN 200进行屏幕切换,不断地产生新的SCREEN SEQUENCE,可想而知溢出是必然的。在SCREEN调用碰到下一屏幕为0时,SCREEN SEQUENCE的才会结束,程序就回到CALL SCREEN的调用之处(也就是说我们可以用LEAVE TO SCREEN 0来结束当前SCREEN SEQUENCE)。

 

 为了避免产生新的SCREEN SEQUENCE,我们常常使用静态下一屏幕或动态下一屏幕来进行屏幕之间的切换。

方法如下:

1)静态制定下一屏幕

在进行屏幕设计是制定下一个屏幕;

2)动态设置下一屏幕

SET SCREEN 200. "该语句只是动态制定下一个屏幕,但不结束当前屏幕处理,只有LEAVE SCREEN才会结束屏幕的处理
LEAVE SCREEN.

或者

LEAVE TO SCREEN 200.

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15232446/viewspace-591305/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15232446/viewspace-591305/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值