[英]ABAP: Open Popup2 in Popup1 - Closing Popup2 should return to Popup1
我正在打開一個 Popup(1) - Screen_0300
CASE sy-ucomm.
WHEN 'POPUP1'.
CALL SCREEN 0300 STARTING AT 10 08 ENDING AT 70 15.
ENDCASE.
在此 Popup 中,我調用另一個屏幕 Popup(2) - Screen_0400。
MODULE user_command_0300 INPUT.
CASE sy-ucomm.
WHEN 'POPUP2'.
CALL SCREEN 0400 STARTING AT 10 08 ENDING AT 70 15.
ENDCASE.
ENDMODULE.
現在,當我關閉 Popup(2) 時,我想返回到 Popup(1)。 目前兩個彈出窗口同時關閉。 我已經嘗試使用Leave to Screen
或Set Screen
在 Popup(2) 的 PAI 中調用 Popup(1) 。 有什么辦法可以做到這一點?
要使用CALL SCREEN
保留顯示的屏幕,請在 PAI ( MODULE... INPUT
) 執行期間使用SET SCREEN 0
,程序將在語句CALL SCREEN
之后繼續。
0
是離開當前“屏幕調用序列”的特殊值。
我自己找到了答案,並將其發布,以便其他人可以更快地找到答案。 這似乎是與此相同的問題。
用以下方法修復它:
data next_screen type sy-dynnr.
CASE sy-ucomm.
WHEN 'POPUP1'.
next_screen = '0300'.
while next_screen is not INITIAL.
CALL SCREEN next_screen STARTING AT 10 08 ENDING AT 70 15.
endwhile.
ENDCASE.
在第二個彈出窗口中:
MODULE user_command_0300 INPUT.
CASE sy-ucomm.
WHEN 'CANCEL' OR 'ENTER'
CLEAR next_screen.
WHEN 'POPUP2'.
CALL SCREEN 0400 STARTING AT 10 08 ENDING AT 70 15.
ENDCASE.
ENDMODULE.
這樣,每當使用 sy-ucomm CANCEL
或EXIT
關閉第一個 Popup 時,next_screen 將被清除並且主程序再次成為焦點。 否則 next_screen 一直是 300 並且會一直被調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.