有没有办法关闭 SAP ABAP 中的嵌套弹出窗口 window 并返回到上一个?
Is there a way to close a nested pop up window in SAP ABAP and go back to the previous one?
所以我有一个 ABAP 模块池程序,我总共创建了 4 个不同的屏幕(屏幕 101、102、103、104)。虽然屏幕 101 是我的主屏幕,但其他三个按顺序弹出 windows,因此从 101 弹出 window 将屏幕 102 向前,从那里弹出 window 将 103 向前推进等。我的问题是,当我最终进入弹出窗口 window 104 时,我想查看一些正确执行的数据,然后退出此弹出窗口 window 并继续回到前一个,其中包含屏幕 103。我找不到任何解决我的问题的语句。我已经尝试过“离开屏幕”、“将屏幕设置为 0”、“离开程序”、“离开屏幕 0”以及几乎所有类似的操作,但大多数情况下都是返回到屏幕 103但是在同一个弹出窗口 window 中没有关闭它,所以我基本上以两个弹出窗口 windows 预览同一个屏幕 (103)。有谁知道我应该如何处理这个?希望我说清楚并提前致谢。
您需要在父屏幕的逻辑中实现某种控制器。无法简单地更改弹出窗口的内容,您需要使用 CALL SCREEN ... 打开它,当您想要更改内容时,您需要使用 LEAVE TO SCREEN 0 关闭它。将附加信息存储在全局变量(或用户指令)中,以便控制器知道接下来需要显示哪个屏幕。然后使用另一个 CALL SCREEN 显示下一个屏幕。
描述该方法的一个非常简单的示例:您的主 dynpro 中的控制器可能如下所示:
* This needs to be a global variable!
DATA next_screen TYPE SY-DYNNR VALUE '0101'.
...
WHILE next_screen IS NOT INITIAL.
CALL SCREEN next_screen STARTING AT 3 3.
ENDWHILE.
最初这会将屏幕 101 显示为弹出窗口。当popup 101决定跳转到屏幕102时,它执行下面的代码:
next_screen = '0102'.
LEAVE TO SCREEN 0.
关闭弹窗使用
CLEAR next_screen.
LEAVE TO SCREEN 0.
所以我有一个 ABAP 模块池程序,我总共创建了 4 个不同的屏幕(屏幕 101、102、103、104)。虽然屏幕 101 是我的主屏幕,但其他三个按顺序弹出 windows,因此从 101 弹出 window 将屏幕 102 向前,从那里弹出 window 将 103 向前推进等。我的问题是,当我最终进入弹出窗口 window 104 时,我想查看一些正确执行的数据,然后退出此弹出窗口 window 并继续回到前一个,其中包含屏幕 103。我找不到任何解决我的问题的语句。我已经尝试过“离开屏幕”、“将屏幕设置为 0”、“离开程序”、“离开屏幕 0”以及几乎所有类似的操作,但大多数情况下都是返回到屏幕 103但是在同一个弹出窗口 window 中没有关闭它,所以我基本上以两个弹出窗口 windows 预览同一个屏幕 (103)。有谁知道我应该如何处理这个?希望我说清楚并提前致谢。
您需要在父屏幕的逻辑中实现某种控制器。无法简单地更改弹出窗口的内容,您需要使用 CALL SCREEN ... 打开它,当您想要更改内容时,您需要使用 LEAVE TO SCREEN 0 关闭它。将附加信息存储在全局变量(或用户指令)中,以便控制器知道接下来需要显示哪个屏幕。然后使用另一个 CALL SCREEN 显示下一个屏幕。
描述该方法的一个非常简单的示例:您的主 dynpro 中的控制器可能如下所示:
* This needs to be a global variable!
DATA next_screen TYPE SY-DYNNR VALUE '0101'.
...
WHILE next_screen IS NOT INITIAL.
CALL SCREEN next_screen STARTING AT 3 3.
ENDWHILE.
最初这会将屏幕 101 显示为弹出窗口。当popup 101决定跳转到屏幕102时,它执行下面的代码:
next_screen = '0102'.
LEAVE TO SCREEN 0.
关闭弹窗使用
CLEAR next_screen.
LEAVE TO SCREEN 0.