ABAP开发基础知识:11)子程序的建立与调用
ABAP子程序(Subrouting)是包含在程序中的一段具有一定功能的代碼,能夠?qū)⒛硞€(gè)功能作為一個(gè)小程序包含在主程序中,以方便程序分析及閱讀。特別是一此程序中多次用到的功能,可以簡(jiǎn)化代碼,增加程序的可讀性且便于維護(hù)。
1.子程序的定義
通過(guò)FORM...ENDFORM語(yǔ)名可以實(shí)現(xiàn)子程序的定義,通過(guò)PERFORM語(yǔ)句來(lái)實(shí)現(xiàn)子程序的調(diào)用。
[For Example]
PERFORM welcome. "調(diào)用子程序
FORM welcome. "定義子程序
WRITE / 'subrouting'.
ENDFORM.
2.子程序接口參數(shù)的定義及使用
子程序?qū)崿F(xiàn)了將某段功能的封裝處理,那么子程序怎樣實(shí)現(xiàn)與ABAP程序中其它變量的數(shù)值的交換呢?可以通過(guò)定義子程序接口來(lái)實(shí)現(xiàn),該方法共包括3種模式。
1)FORM TABLES itab2...itabn:以表的方式傳輸數(shù)據(jù)。
[For Example]
DATA:BEGIN OF staff OCCURS 0,
name(10) TYPE C,
END OF staff.
staff-name = 'jack'.
APPEND staff. "對(duì)內(nèi)表賦值
PERFORM u TABLES staff. "輸出jack.
FORM u TABLES x STRUCTURE staff.
WRITE:/ x-name.
ENDFORM
2)FORM TABLES USING [VALUE(p1)...pn]:向子程序中直接傳輸參數(shù),該傳輸值在子程序中不改變。
[For Example]
DATA:str1(10) TYPE C,
str2(10) TYPE C.
str1 = 'Hello'.
str2 = 'SAP'.
PERFORM CON_STR USING str1 str2.
FORM CON_STR USING s1 s2.
DATA:str_all(20) TYPE C.
CONCATENATE s1 s2 INTO str_all.
WRITE:/ str_all.
ENDFORM.
3)FORM CHANGING [value(p1...pn)]:向子程序傳輸表或參數(shù),程序執(zhí)行結(jié)果可通過(guò)該表或參數(shù)返回給供主程序。
[For Example]
DATA:num TYPE I VALUE 10.
PERFORM add_value CHANGING num.
WRITE:num. "調(diào)用子程序,輸出值為20.
FORM add_value CHANGING num.
num = num + 10.
ENDFORM.
3)調(diào)用指定程序中的子程序
不同的ABAP程序中的子程序是可以共用的,通過(guò)ABAP語(yǔ)句PERFORM form IN PROGRAM prog能夠調(diào)用指定程序中的子程序,并執(zhí)行子程序中包含的功能。
[For Example]
*例如一程序名:ZTEST,它包含一個(gè)子程序ADD_VALUE與上例結(jié)構(gòu)一致
DATA:num2 TYPE I VALUE 10.
PERFORM ADD_VALUE CHANGING num2 IN PROGRAM ZTEST.
WRITE:num2."調(diào)用子程序加10,輸出值為20.
4)通過(guò)TCode調(diào)用指定程序中的子程序
在SAP業(yè)務(wù)中,通常會(huì)將程序與TCode綁定以方便記憶。同樣,在ABAP中可以通過(guò)語(yǔ)句CALL來(lái)實(shí)現(xiàn)對(duì)某TCode中相對(duì)應(yīng)的子程序的調(diào)用,相關(guān)語(yǔ)法請(qǐng)參考以下代碼:CALL TRANSACTION TCode。
[For Example]
CALL TRANSACTION 'ICON' and skip first screen. "調(diào)用TCODE:ICON并展開(kāi)初始界面。
5)使用SUBMIT方法調(diào)用另一個(gè)程序
在ABAP中可以直接調(diào)用具體程序來(lái)實(shí)現(xiàn)該程序的所有功能。使用語(yǔ)句SUBMIT可以直接通過(guò)程序名來(lái)調(diào)用該程序,并提供程序執(zhí)行中所需要輸入的字段及參數(shù),其語(yǔ)法及屬性如下:
[Syntax]
SUBMIT <程序名>.
...USING SELECTION-SCREEN <SCR>. "調(diào)用子屏幕
...IVA SELECTION-SCREEN. "顯示所調(diào)用程序的初始屏幕
...AND RETURN. "調(diào)用指定程序執(zhí)行后可返回上一屏幕
調(diào)用某一程序語(yǔ)法如:
SUBMIT ZTEST.
VIA SELECTION-SCREEN
USING SELECTION-SCREEN 1000
AND RETURN.
總結(jié)
以上是生活随笔為你收集整理的ABAP开发基础知识:11)子程序的建立与调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 盾叶冠心宁片_功效作用注意事项用药禁忌用
- 下一篇: VC 获取当前时间