12.18.             屏幕跳转

LEAVE SCREEN.

or

LEAVE TO SCREEN <next screen>.

LEAVE SCREEN语句会结束当前屏幕并调用下一屏幕,next scree可以是static next screen,或者是dynamic next screen,如果是动态的,你必须在使用LEAVE SCREEN语句前使用SET SCREEN语句来重写static next screen

LEAVE TO SCREEN语句会结束当前屏幕并跳转到指定的下一屏幕<next screen>,其作用等效于下面两条语句:

SET SCREEN <next screen>.

LEAVE SCREEN.

这两个语句不会结束屏幕序列,它们仅仅是转向同一屏幕序列中的另一屏幕。屏幕序列是否结束要看<next screen>是否为0或者屏幕的next screen属性是否设置为0

可以用LEAVE TO SCREEN 0来结束当前SCREEN SEQUENCE

12.18.1.      CALL SCREEN误用

每次碰到CALL SCREEN语句就会产生新的SCREEN SEQUENCE,而且SAP系统设置了SCREEN SEQUENCE堆栈不能超过50个,一旦超过就会出溢出错误,所以不要使用 CALL SCREEN 进行屏幕的切换

为了避免产生新的SCREEN SEQUENCE,针对上图,可以使用LEAVE...SCREEN进行屏幕切换,而不是CALL SCREEN:

SET SCREEN 110."该语句只是动态制定下一个屏幕,但不结束当前屏幕处理(即不立即跳转下一屏幕),只有LEAVE SCREEN才会结束屏幕的处理(后面的语句才不会执行)
LEAVE SCREEN.

或者使用:LEAVE TO SCREEN 110.相当于上面两包的组合:SET SCREEN 110.  LEAVE SCREEN.

使用SET SCREEN XXX / LEAVE SCREEN,LEAVE TO SCREEN XXX来在同一屏幕序列里动态的进行屏幕切换跳转,而不要使用CALL SCREEN XXX进行屏幕序列的跳转与切换

12.18.2.      CALL SCREEN/SET SCREEN/LEAVE TO SCREEN区别

CALL SCREEN XXXX将在Screen调用栈(CALL STACK)上面添加一层调用(进栈,即重新开启一个新的屏幕序列),调用XXXX的PBO和PAI,如果XXXX的Next Screen不为0,那么将继续其Next Screen的PBO和PAI,如此继续~~~当最后碰到Next Screen为0时,该层调用将从调用栈中退出(出栈),然后系统将继续执行CALL SCREEN XXXX之后的语句。

SET SCREEN XXXX设置调用栈当前层次的Next Screen为XXXX,它并不影响调用栈的层数(即不会重新开启一个新的屏幕序列,只做屏幕之间的切换,而不是屏幕序列之间的切换),除非XXXX为0,那将导致调用栈退掉一层(出栈)。要注意的是,PAI中SET SCREEN XXXX后的语句,系统将照样执行,只有执行完毕该PAI整个逻辑后,才考虑Next Screen的PBO和PAI。

LEAVE TO SCREEN XXXSET SCREEN XXX比较类似(也不会重新开启一个新的屏幕序列,只做屏幕之间的切换,而不是屏幕序列之间的切换),所不同的是,LEAVE TO SCREEN XXXX将强行中断当前SCREEN的PAI,直接执行XXXX的PBO和PAI。换言之,PAI中LEAVE TO SCREEN XXXX后面的语句,系统将不会执行到

LEAVE SCREEN.后面的语句也不会执行

注:上面语句的XXX也可以是选择屏幕的屏幕号,而不只是对话屏幕号

CALL SCREEN是将正在运行的画面挂起,进入所调用的画面,当使用LEAVE TO SCREEN 0时,能够返回原主调画面,可理解为嵌套调用;而LEAVE TO SCREEN是立即结束本画面的执行,调用所指定的画面,在调用画面中,无法再返回原主调画面。

转载于:https://www.cnblogs.com/jiangzhengjun/p/4265431.html

[SAP ABAP开发技术总结]屏幕跳转相关推荐

  1. 【整理】ABAP开发中的屏幕跳转

    ABAP开发中的屏幕跳转 这里介绍常见的几种在开发中常用到的事务代码跳转功能. 1.最常用到的是"SET PARAMETER"语句赋值,然后再使用"CALL TRANSA ...

  2. [SAP ABAP开发技术总结]选择屏幕——SELECT-OPTIONS

    12.4.         SELECT-OPTIONS. 89 12.4.1.     输入ABAP程序默认值时,需要加上"=". 89 12.4.2.     选择条件内表多条 ...

  3. [SAP ABAP开发技术总结]SD销售订单定价过程

    16.3.2.     定价过程 16.3.2.1.           条件技术七要素 16.3.2.2.           条件表V/03.V/04.V/05 16.3.2.3.         ...

  4. SAP ABAP 开发创建 DIALOG 屏幕程序

    在 SAP 创建 DIALOG 屏幕程序的详细步骤如下(这里是 SAP HANA 版本,其他版本在界面和一些术语上存在一些差异): 需求:界面通过选项栏可以对学生信息进行查询,新增,删除,修改功能.学 ...

  5. [SAP ABAP开发技术总结]EXIT-COMMAND

    12.8.     EXIT-COMMAND 12.8.1.           MODULE <mod> AT EXIT-COMMAND 对话屏幕中,对于E类型的Function Cod ...

  6. [SAP ABAP开发技术总结]ABAP调优——Open SQL优化

    11.1.     数据库编程方面优化 1.   不要使用 SELECT * ...,选择需要的字段, SELECT * 既浪费CPU,又浪费网络带宽资源,还需占用大量的ABAP内存 2.   不要使 ...

  7. [SAP ABAP开发技术总结]动态语句、动态程序

    在ABAP中写动态的程序,灵活的程序,一定要知道的 1.13.         动态语句 1.13.1.     内表动态访问 1.13.2.     动态类型 1.13.3.     动态SQL 1 ...

  8. [SAP ABAP开发技术总结]ABAP读写、解析XML文件

    20.6.         XML. 236 20.6.1.     生成... 237 20.6.2.     解析... 240 20.6.     XML if_ixml if_ixml_doc ...

  9. [SAP ABAP开发技术总结]ABAP调优——代码优化

    11.2.     程序 1.   READ TABLE ...WITH [TABLE] KEY...BINARY SEARCH读取标准内表使用二分查找 2.   在循环(LOOP AT ...WHE ...

最新文章

  1. 云栖大会的最后,阿里巴巴数据安全放了个大招!
  2. 大数据实践的 6 个阶段
  3. 万字长文带你了解蚁群算法及求解复杂约束问题【源码实现】
  4. Redis源码剖析(二)io多路复用函数及事件驱动流程
  5. ArcGIS Server安装的几个问题
  6. React Navigation 导航栏样式调整+底部角标消息提示
  7. 按照层次序列创建二叉树,并判断二叉树是否为二叉搜索树
  8. 评测 | 千元以下的扫拖一体机器人,到底值不值得买?
  9. 不懂自学还想去大厂?快醒醒吧!
  10. 给我一段《巫师3》的核心代码
  11. vue element Pagination分页组件二次封装
  12. 股票ctp交易接口是什么?
  13. 华为耳机5根线怎么接线图解_【技能】小白耳机维修入门--各种耳机插头接线图--耳机维修汇总贴...
  14. MySQL简介以及简单的下载和安装
  15. Mysql资料博文收藏
  16. 逆向工程---IA32寄存器
  17. 符号_EPLAN~符号库及符号的新建
  18. VC++ cpp-httplib
  19. IBM 混合数据仓库架构介绍
  20. restful api http动词含义

热门文章

  1. NLTK 学习笔记(1)
  2. Kubernetes Deployment控制器(二十)
  3. SEO黑帽技术只多少
  4. 主题为吉他的html,HTML5 吉他标签生成器
  5. 鹏业安装算量软件2021渠道大会暨授牌仪式成功举办
  6. 详解编码器和解码器电路:定义,工作原理,应用,真值表
  7. 学习三部曲之(一):学生为什么学习不好?
  8. 追求卓越:想成为优秀的领导者吗?
  9. unity3d导入xlua
  10. C语言 生成集合的幂集