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

本文分析了一位网友在SAP SCREEN编程中遇到的堆栈溢出问题,指出错误使用CALLSCREEN语句是造成问题的原因,并提供了使用静态下一屏幕和动态下一屏幕的方法来避免产生新的SCREENSEQUENCE。
摘要由CSDN通过智能技术生成

最近一个网友提到他在做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/15232529/viewspace-586631/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15232529/viewspace-586631/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值