如何回到通话画面?

How to get back to the calling screen?

我当前的屏幕构建如下所示:

但是当我尝试从屏幕 250(调用屏幕)返回到 100(调用屏幕) 时,它就离开了程序。

    CASE OK_CODE.
*Navigation back to the calling screen
    WHEN 'BACK'.
      SET SCREEN 0.

希望大家能帮帮我。谢谢!

您可能想尝试 LEAVE TO SCREEN 100 而不是 SET SCREEN 0

This post 给出了详细信息。

已解决

ok_code = sy-ucomm.
*updating the value of the ok_code
CASE OK_CODE.
*Navigation back to the calling screen
    WHEN 'BACK'.
         SET SCREEN 0.
*all not applicable conditions        
    WHEN OTHERS.
  ENDCASE.
ENDMODULE.

必须设置 ok_code = sy-ucomm 因为 ok_code 值没有改变。

将屏幕 250 中的 OK 代码字段分配给 OK_CODE。在屏幕画家中,将屏幕中的 OK 代码(它是类型为 OK 的底部属性)设置为 OK_CODE,您的原始代码应该可以工作。

leave to screen 0

set screen 0

两种变体都适用于 return 到上一个屏幕,但重要的是您 调用 后续屏幕

call screen '1234'

所以它的行为就像一堆屏幕。

而不是

set screen '1234'

(后者会用新屏幕替换当前屏幕,所以不可能有"pop from screen stack")