ABAP:區別CALL SCREEN/SET SCREEN/LEAVE TO SCREEN

1,CALL SCREEN XXXX將在Screen調用棧(CALL STACK)上面添加一層調用(進棧),調用XXXX的PBO和PAI,
若是XXXX的Next Screen不爲0,那麼將繼續其Next Screen的PBO和PAI,如此繼續~~~當最後碰到Next Screen
爲0時,該層調用將從調用棧中退出(出棧),而後系統將繼續執行CALL SCREEN XXXX以後的語句。

2,SET SCREEN XXXX,設置調用棧當前層次的Next Screen爲XXXX,它並不影響調用棧的層數,除非XXXX爲0,
那將致使調用棧退掉一層(出棧)。要注意的是,PAI中SET SCREEN XXXX後的語句,系統將照樣執行。只有執行完
畢該PAI整個邏輯後,才考慮Next Screen的PBO和PAI。

3,LEAVE TO SCREEN與SET SCREEN比較相似,所不一樣的是,LEAVE TO SCREEN XXXX將強行中斷當前SCREEN
的PAI,直接執行XXXX的PBO和PAI。換言之,PAI中LEAVE TO SCREEN XXXX後的語句,系統將不會執行到。

在ABAP中,CALL TRANSACTION和SUBMIT report_name AND RETURN語句,也都是在調用棧上添加一層調用,
與CALL SCREEN有點相似。而LEAVE TO TRANSACTION以及SUBMIT report_name則是在調用棧當前層次的一個
跳轉,與LEAVE TO SCREEN相似。spa

相關文章
相關標籤/搜索