区别CALL SCREEN/SET SCREEN/LEAVE TO SCREEN
1,CALL SCREEN XXXX將在Screen調(diào)用棧(CALL STACK)上面添加一層調(diào)用(進棧),調(diào)用XXXX的PBO和PAI,如果XXXX的Next Screen不為0,那么將繼續(xù)其Next Screen的PBO和PAI,如此繼續(xù)~~~當(dāng)最后碰到Next Screen為0時,該層調(diào)用將從調(diào)用棧中退出(出棧),然后系統(tǒng)將繼續(xù)執(zhí)行CALL SCREEN XXXX之后的語句。
?
? ? ? 2,SET SCREEN XXXX,設(shè)置調(diào)用棧當(dāng)前層次的Next Screen為XXXX,它并不影響調(diào)用棧的層數(shù),除非XXXX為0,那將導(dǎo)致調(diào)用棧退掉一層(出棧)。要注意的是,PAI中SET SCREEN XXXX后的語句,系統(tǒng)將照樣執(zhí)行。只有執(zhí)行完畢該PAI整個邏輯后,才考慮Next Screen的PBO和PAI。
?
? ? ? 3,LEAVE TO SCREEN與SET SCREEN比較類似,所不同的是,LEAVE TO SCREEN XXXX將強行中斷當(dāng)前SCREEN的PAI,直接執(zhí)行XXXX的PBO和PAI。換言之,PAI中LEAVE TO SCREEN XXXX后的語句,系統(tǒng)將不會執(zhí)行到。
?
? ? ? ?在ABAP中,CALL TRANSACTION和SUBMIT report_name AND RETURN語句,也都是在調(diào)用棧上添加一層調(diào)用,與CALL SCREEN有點類似。而LEAVE TO TRANSACTION以及SUBMIT report_name則是在調(diào)用棧當(dāng)前層次的一個跳轉(zhuǎn),與LEAVE TO SCREEN類似。
轉(zhuǎn)載于:https://www.cnblogs.com/zhjkill/archive/2011/12/21/2295796.html
總結(jié)
以上是生活随笔為你收集整理的区别CALL SCREEN/SET SCREEN/LEAVE TO SCREEN的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GridView 激发了未处理的事件“R
- 下一篇: C语言中的结构体,联合,链表和枚举,位域