前言
这篇文章给大家介绍一下SAP 中调用界面的方式以及这些调用方式有什么区别。各种方式的优缺点以及在什么情况下改使用那种方式。
一、案例介绍
下面操作演示的这些案例都是在我之前文章案例的基础上进行操作,这篇文章不会讲述程序的创建基础代码编写的一些操作只会讲述到我们屏幕调用这些关键字的核心。
二、屏幕调用的常见方式
以下先列出所有常用的屏幕调用方式以及给出说明解释。在后续会给出运行效果例子供大家参考。这些屏幕条用事务切换的方式最主要的一点就是会不会返回到原程序或者说是原屏幕。
a.
SET SCREEN <屏幕编号>
用于设置下一个将要显示的屏幕。
执行 SET SCREEN 后,必须执行 LEAVE SCREEN 以实际导航到指定屏幕。SET SCREEN 后不会立即离开当前屏幕,而是在当前屏幕的PAI处理完成后转移。
b.
CALL SCREEN <屏幕编号>
用于调用另一个屏幕。
与 SET SCREEN 不同,CALL SCREEN 会立即导航到新屏幕,并且在新屏幕结束后,可以通过 LEAVE TO SCREEN 0 返回到调用屏幕。
c.
CALL TRANSACTION < T-Code >
启动一个新的事务。
这通常会结束当前程序,并导航到指定的事务代码。通过使用 AND SKIP FIRST SCREEN
,您可以跳过初始屏幕。
d.
LEAVE SCREEN
一般配合 SET SCREEN 使用
用于离开当前屏幕并导航到由最近的 SET SCREEN 指定的屏幕。
e.
LEAVE TO SCREEN <屏幕编号>
跳转到指定屏幕
直接导航到指定的屏幕,不返回到原始屏幕。
f.
LEAVE TO TRANSACTION < T-Code >
跳转到指定事务
直接导航到指定的事务代码,不返回到原始程序或屏幕。
三、案例效果演示
这里我用之前的Dialog程序基础上做演示,如果没有Dialog程序的话可以看我之前的文章创建一个也很快的。
设置触发的按钮
1.设置触发的按钮
这里我们不采用绘制按钮了直接在GUI Status中设置一个EXIT按钮即可,Fctcode也设置为EXIT。
2.逻辑代码编写
这里我们返回一个消息测试按钮功能是否有效。
3.运行效果
可以看到我们按钮功能是没问题的。
4.设置两个屏幕的标准按钮
我们这个Dialog程序创建有2个屏幕,这样方便我们演示屏幕的跳转,现在我们将两个屏幕的标准按钮都设置,并编写功能。
0200屏幕设置
0100屏幕设置
a.
SET SCREEN <屏幕编号>
SET这里有两种情况一个是写在PBO里面一个是写在PAI下面。
1.写在PAI下面
这里我们将SET写在了PAI下面并使用了LEAVE SCREEN配合跳转,但其实这里我们不写 LEAVE SCREEN 程序也可以直接进行跳转:
,这是因为SET跳转屏幕的前提就是执行完了当前当前程序的PAI代码之后,Dial程序运行先是PBO然后PAI,所以当PAI逻辑执行完之后可以说程序是执行完毕了可以去下一个屏幕了,这就是为什么当我们触发了PAI之后程序就会自动跳转到由SET最近设置的屏幕,因此 即使没有明确地调用 LEAVE SCREEN,屏幕跳转也会发生。
要是感觉是因为按钮原因我们也可以写在按钮功能外面,然后采用回车触发PAI发现屏幕也可以跳转。因为PAI代码块的结束本身就意味着离开当前屏幕。因此,即使没有明确地调用 LEAVE SCREEN,屏幕跳转也会发生。
2.写在PAI下面运行效果演示
这里的核心就是我们点击绿色返回按钮后程序并没有回到原始屏幕而是直接返回了SAP的首页。
3.写在PBO下面
写在PBO取数里面并不使用LEAVE SCREEN我们会发现程序执行过程并不会跳转屏幕。然后我们给EXIT按钮设置一个功能就是使用LEAVE SCREEN离开当前屏幕.当我们点点击EXIT的时候发现可以跳转到在取数界面SET的屏幕0100。
给EXIT按钮设置使用LEAVE SCREEN离开当前屏幕,再次运行查看效果。
如果我们直接在PBO界面再配合LEAVE SCREE发现程序就可以直接去到0100屏幕。根本不会显示0200屏幕,这就是LEAVE SCREEN发挥了明显作用了。
3.写在PBO下面运行效果
这里只演示在PBO直接配合LEAVE SCREEN的运行效果。可以看到程序执行后直接来到了0100屏幕。并且点击绿色返回按钮后直接就到了SAP首页
b.
CALL SCREEN <屏幕编号>
CALL屏幕的话写在哪里都无所谓都直接会去到CALL的屏幕,并且点击绿色返回按钮之后可以回到原始屏幕。感觉CALL 和 SET配合LEAVE SCREEN只有一个区别就是返回不返回原始屏幕。
1.写在PAI下
下面这个就是当我们触发了EXIT这个按钮功能之后程序就会跳转到0100屏幕,点击绿色返回按钮可以回到原始屏幕。
2.写在PAI下运行效果
效果根据编号看着走。
3.写在PBO下运行效果
不详细演示了。
c.
CALL TRANSACTION < T-Code >
这个调用屏幕方式的语句有一个后缀叫 AND SKIP FIRST SCREEN下面为了方便演示我将调用SMOD这个事务码。这样就能明显看出来AND SKIP FIRST SCREEN的作用了。首先我们看一下SMOD的情况。
1.这是SMOD初始界面
当我们输入事务码SMOD后会首先来到一个初始界面让我们进行选择输入之后点击再进入下一个画面。
2.这是SMOD后续界面
输入选择条件点击Display都可以进入第二个画面,我们会发现这样的T-code会有很多,它们都是有逻辑顺序上的一些画面调用。
3.使用 CALL TRANSACTION 不加后缀
这里就只写在PAI中演示了PBO中大家可以自己去试,这里我们直接调用事务码SMOD
4.不加后缀运行效果
5.使用 CALL TRANSACTION 添加后缀
如果要加后缀的话程序就会省略SMOD的第一个界面从而直接进入第二界面但是前提我们必须得给SMOD中的选择框输入值才能跳转,在有些事务是不用给第一个界面赋值也可以直接进入第二界面的比如SM12大家可以试一试。刚才在做案例的时候发现就算给第一界面选择框赋值之后也并不能直接跳转到第二页面这里我还是用SM12做演示吧。
5.添加后缀运行效果
这个后缀主要就是可以跳过一些事务码的第一个界面直接到第二界面
d.
LEAVE SCREEN
这个就是离开当前屏幕不过多解释了上面已经使用过了。
e.
LEAVE TO SCREEN <屏幕编号>
感觉这个和CALL SCREEN差不多主要区别就是能不能返回原来的屏幕。
1.代码效果演示
不过多解释了。
f.
LEAVE TO TRANSACTION < T-Code >
感觉这个和CALL TRANSACTION差不多主要区别就是能不能返回原来的屏幕。
1.代码效果演示
不过多解释了。
四、总结
以上就是今天要讲的内容,本文仅仅简单介绍SAP屏幕调用切换的几种方式,感觉笔者讲的好对自己有帮助的还麻烦点个免费的赞赞制作不易谢谢谢谢!!!如果有说错或者不好的地方还望大家提出来见谅。感觉笔者写的好的别忘了关注点赞加评论哦,也欢迎大家一起来讨论。谢谢!