ABAP語(yǔ)法完整版_第1頁(yè)
ABAP語(yǔ)法完整版_第2頁(yè)
ABAP語(yǔ)法完整版_第3頁(yè)
ABAP語(yǔ)法完整版_第4頁(yè)
ABAP語(yǔ)法完整版_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.'ABAP語(yǔ)法完整版SAP ABAP / 4基礎(chǔ)知識(shí)學(xué)習(xí)數(shù)據(jù)類型C :字符串D :日期型格式為YYYYMMDD例: '1999/12/03'F :浮點(diǎn)數(shù)長(zhǎng)度為8I :整數(shù)N :數(shù)值組成的字符串如: 011 ,'302'P : PACKED數(shù)用于小數(shù)點(diǎn)數(shù)值如: 12.00542T :時(shí)間格式為: HHMMSS如: '14:03:00'X : 16進(jìn)制數(shù)如: '1A03'*-*變量聲明DATA <F> <Length> <type> <value>decimals<F&g

2、t;變量名稱<length><type>變量類型及長(zhǎng)度<value>初值<decimals>小數(shù)位數(shù)exp:DATA : COUNTERTYPE P DECIMALS 3.NAME(10) TYPE C VALUE 'DELTA'.S_DATETYPE D VALUE '19991203'.exp:DATA : BEGIN OF PERSON,NAME(10) TYPE C,AGETYPE I,WEIGHTTYPE DECIMALS 2,; .'END OF PERSON.另外 , 有關(guān) DATA 聲明的指

3、令還有: CONSTANTS(聲明常數(shù) ) 、STATICS(臨時(shí)變量聲明 ).exp:CONSTANTSPITYPEPDECIMALS5VALUE'3.14159'.STATICS關(guān)鍵字聲明的變量?jī)H在目前的程序中使用, 結(jié)束后會(huì)自動(dòng)釋放語(yǔ)法 :STATICS <c> <length> <type> <value> <decimals>系統(tǒng)專用變量說(shuō)明系統(tǒng)內(nèi)部專門創(chuàng)建了SYST 這個(gè) STRUCTURE,里面的欄位存放系統(tǒng)變量, 常用的系統(tǒng)變量有:SY-SUBRC:系統(tǒng)執(zhí)行某指令后, 表示執(zhí)行成功與否的變量,'

4、0' 表示成功SY-UNAME:當(dāng)前使用者登入SAP 的 USERNAME;SY-DATUM:當(dāng)前系統(tǒng)日期 ;SY-UZEIT:當(dāng)前系統(tǒng)時(shí)間 ;SY-TCODE:當(dāng)前執(zhí)行程序的Transaction codeSY-INDEX:當(dāng)前 LOOP 循環(huán)過(guò)的次數(shù)SY-TABIX:當(dāng)前處理的是 internal table的第幾筆SY-TMAXL:Internal table的總筆數(shù)SY-SROWS:屏幕總行數(shù) ;SY-SCOLS:屏幕總列數(shù) ;SY-MANDT:CLIENT NUMBERSY-VLINE:畫豎線SY-ULINE:畫橫線TYPE 關(guān)鍵字用來(lái)指定資料型態(tài)或聲明自定資料型態(tài)Examp

5、le:TYPES:BEGINOFMYLIST,; .'NAME(10)TYPEC,NUMBERTYPEI,ENDOFMYLIST.DATALISTTYPEMYLIST.LIKE關(guān)鍵字跟 TYPE 關(guān)鍵字使用格式相同, 如DATATRANSCODELIKESY-TCODE.不同的是LIKE用在已有值的資料項(xiàng), 如系統(tǒng)變量 , 而 TYPE 關(guān)鍵字則是用在指定資料型態(tài)。TABLES關(guān)鍵字用來(lái)聲明Table Work Area的數(shù)據(jù) , 對(duì)應(yīng)至ABAP/4資料文件 (Dictionary Object),由 SQL指令加載所需數(shù)據(jù)語(yǔ)法 :TABLES <dbtab>Example

6、:TABLES: SPFL.SELECT * FROM SPFL.WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION.ENDSELECT.從 ABAP/4 Dictionary的 SPFL 檔載入 MANDT,CARRID,CONNECTION三個(gè)字段至SPFL此 Table WorkArea*-*輸出一 . WRITE 語(yǔ)句ABAP/4用來(lái)在屏幕上輸出資料的指令是WRITE指令 , 例如 :WRITE: 'USER NAME IS:', SY-UNAME.二 . 指定屏幕輸出位置指定輸出位置的語(yǔ)句格式為 :WRITE: AT / &l

7、t;pos> (<len>)資料項(xiàng)<par> .'其中 : / :在下一行輸出<pos>:指定輸出的行號(hào);(<len>):指定輸出位數(shù) ( 長(zhǎng)度 )<par>:指定顯示格式參數(shù), 參數(shù)有 :LEFT-JUSTIFIED資料 * 左對(duì)齊CENTERED資料 * 中間對(duì)齊RIGHT-JUSTIFIED資料 * 右對(duì)齊UNDER <g>正對(duì)在資料項(xiàng) <g>的下面顯示NO-GAP緊接著顯示 , 不留空格USING EDIT MASK <m>:使用內(nèi)嵌子元顯示, 如 12:03:20USING

8、NO EDIT MASK:不使用內(nèi)嵌子元NO-ZER數(shù)字前面0 的部分不顯示NO-SIGN:不顯示正負(fù)號(hào)DECIMALS <d>:顯示 <d> 位小數(shù)EXPOENT <e>:F( 浮點(diǎn)數(shù) ) 指數(shù)的值ROUND <r>:四舍五入至小數(shù)點(diǎn)后 <r>位CURRENCY <c>:幣別顯示DD/MM/YY :日期顯示格式MM/DD/YY:YY/MM/DD:YY/DD/MMMM/DD/YYYY:DD/MM/YYYYYYYY/MM/DD:YYYY/DD/MM:例如 1: WRITE: /10(6) 'ABCDEFGHIJK&#

9、39;.輸出結(jié)果為 :ABCDEF例如 2: DATA: X TYPE I VALUE '11:20:30',; .'A(5)TYPE C VALUE 'ABCDE'.WRITE: / X USING EDIT MASK '_:_:_'.WRITE: / X USING EDIT MASK '$_,_'.WRITE: / Y NO-GAP.輸出結(jié)果為 :11:20:30$112,030ABCDEF例如 3: DATA: LEN TYPE I VALUE 10,POS TYPE I VALUE 11,TEXT(10)VALU

10、E '1234567890'WRITE 'The text - appears in the text.'.WRITE AT POS(LEN) TEXT.WRITE TO語(yǔ)句的基本形式要將值 ( 文字 ) 或源字段內(nèi)容寫入目標(biāo)字段,可以使用WRITE TO語(yǔ)句:語(yǔ)法WRITE <F1> TO <F2> <option>.DATA: NUMBER TYPE F VALUE '4.3',TEXT(10),FLOAT TYPE F,PACKTYPE P DECIMALS 1.WRITE NUMBER.WRITE NU

11、MBER TO TEXT EXPONENT 2.WRITE / TEXT.WRITE NUMBER TO FLOAT.WRITE / FLOAT.WRITE NUMBER TO PACK.WRITE / PACK.; .'MOVE NUMBER TO PACK.WRITE / PACK.exp:DATA: NAME(10)VALUE 'SOURCE',SOURCE(10) VALUE 'Antony',TARGET(10).WRITE (NAME) TO TARGET.WRITE: TARGET.exp :DATA: COUNTER TYPE I.COM

12、PUTE COUNTER = COUNTER + 1.COUNTER = COUNTER + 1.ADD 1 TO COUNTER.在此,三條運(yùn)算語(yǔ)句進(jìn)行相同算術(shù)運(yùn)算輸出屏幕上的線和空行用下列語(yǔ)法,可以在輸出屏幕上生成水平線:語(yǔ)法ULINE AT /<pos>(<len>).它等同于WRITE AT /<pos>(<len>) SY-ULINE.AT 后的格式規(guī)范,與在在屏幕上定位WRITE輸出 ( 頁(yè) 28) 中為WRITE語(yǔ)句說(shuō)明的格式規(guī)范完全一樣。如果沒(méi)有格式規(guī)范,系統(tǒng)則開(kāi)始新的一行,并用水平線填充該行。否則,只按指定輸出水平線。生成水平線

13、的另一種方法,是在WRITE語(yǔ)句中鍵入恰當(dāng)數(shù)量的連字符,如下所示:WRITE AT /<pos>(<len>) '-.'.垂直線用下列語(yǔ)法,可以在輸出屏幕上生成垂直線:語(yǔ)法; .'WRITE AT /<pos> SY-VLINE.或WRITE AT /<pos> '|'.空行用下列語(yǔ)法,可以在輸出屏幕上生成空行:語(yǔ)法SKIP <n>.該語(yǔ)句從當(dāng)前行開(kāi)始,在輸出屏幕上生成<n>個(gè)空行。如果沒(méi)有指定<n>的值,就輸出一個(gè)空行。要將輸出定位在屏幕的指定行上,請(qǐng)使用:語(yǔ)法SKIP

14、 TO LINE <n>.該語(yǔ)句允許將輸出位置向上或向下移動(dòng)。四. 顯示圖示 :語(yǔ)法 : WRITE: <symbol-name> AS SYMBOL.WRITE: <icon-name>AS ICON.例如 : INCLUDE<SYMBOL>.INCLUDE<ICON>.WRITE: / 'Phone symbol:', SYM_PHONE AS SYMBOL.WRITE: / 'Alarm Icon:', ICON_VOICE_OUTPUT AS ICON.要查看系統(tǒng)所提供有那些符號(hào)及圖示, 可選擇

15、 'EDIT' 下的 'Insert Statement',選擇 'Write',接下來(lái)選擇要查看的群組 , 如 SYMBOL 或 ICON, 接下來(lái)按 'Display' 即可 .*-*一 . Internal Table的聲明ABAP/4中的 Internal Table是一種 Data Structure,類似于其他語(yǔ)言中的STRUTURE,它可以由幾個(gè)不同類型的欄位 (field)組成 , 用來(lái)表示具有不同屬性的某一事物, 單獨(dú)一筆資料表示某個(gè)事物, 多筆資料表示具有相同屬性的多個(gè)事物 .Internal table的定義

16、有以下幾種格式:格式一 .DATA: BEGIN OF <internal table>OCCURS<n>,; .'<field 1>TYPE <type1>,<field 2>TYPE <type 2>,<field 3>TYPE <type 3>, END OF<internal table>.:DATA<f><type>OCCURS<n>WITHHEADERLINEExample:DATAVECTORTYPEIOCCURS10WITHHE

17、ADERLINE.TYPES: BEGIN OF <work area>,<field 1>TYPE <type1>,<field 2>TYPE <type 2>,<field 3>TYPE <type 3>, END OF <work area>.TYPES <internal table> TYPE <work area> OCCURS <n>.DATA: BEGIN OF <work area>.INCLUDE STRUCTURE <tab

18、le name>.DATA: END OF <work area>.DATA: <internal table> LIKE <work area> OCCURS <n>.exp:TYPES VECTOR TYPE I OCCURS 10.TYPES: BEGIN OF LINE,COLUMN1 TYPE I,COLUMN2 TYPE I,; .'COLUMN3 TYPE I,END OF LINE.TYPES ITAB TYPE LINE OCCURS 10.TYPES: BEGIN OF DEEPLINE,TABLE1 TYPE

19、VECTOR,TABLE2 TYPE ITAB,END OF DEEPLINE.TYPES DEEPTABLE TYPE DEEPLINE OCCURS 10.本示例創(chuàng)建與上例相同的內(nèi)表數(shù)據(jù)類型(VECTOR和 ITAB) 。然后創(chuàng)建數(shù)據(jù)類型DEEPLINE作為字段串,包含這些內(nèi)表作為組件。通過(guò)該字段串,數(shù)據(jù)類型DEEPTABLE被創(chuàng)建為內(nèi)表。因此該內(nèi)表的元素本身就是內(nèi)表。exp :TYPES: BEGIN OF LINE,COLUMN1 TYPE I,COLUMN2 TYPE I,COLUMN3 TYPE I,END OF LINE.TYPES ITAB TYPE LINE OCCURS 1

20、0.DATA TAB1 TYPE ITAB.DATA TAB2 LIKE TAB1 WITH HEADER LINE.同創(chuàng)建內(nèi)表數(shù)據(jù)類型( 頁(yè) 99) 中所示 ,該示例創(chuàng)建數(shù)據(jù)類型ITAB作為內(nèi)表 。通過(guò)使用DATA語(yǔ)句的TYPE 參數(shù)引用ITAB ,使數(shù)據(jù)對(duì)象TAB1與 ITAB結(jié)構(gòu)相同。通過(guò)使用DATA語(yǔ)句的LIKE參數(shù)引用TAB1 ,使數(shù)據(jù)對(duì)象 TAB2結(jié)構(gòu)相同。創(chuàng)建的TAB2帶表頭行。因此,可以在程序中使用TAB2-COLUMN1、 TAB2-COLUMN2和 TAB2-COLUMN3等定位表格工作區(qū)域 TAB2 。exp :DATA FLIGHT_TAB LIKE SFLIGHT O

21、CCURS 10.本示例創(chuàng)建數(shù)據(jù)對(duì)象FLIGHT_TAB, 其結(jié)構(gòu)與數(shù)據(jù)庫(kù)表格SFLIGHT相同。本示例介紹如何采用兩種不同的步驟創(chuàng)建同一內(nèi)表。TYPES VECTOR_TYPE TYPE I OCCURS 10.DATA VECTOR TYPE VECTOR_TYPE WITH HEADER LINE.; .'在此創(chuàng)建一個(gè)內(nèi)表數(shù)據(jù)類型VECTOR_TYPE ,其行包含首先創(chuàng)建的基本類型I 字段。然后,通過(guò)引用VECTOR_TYPE創(chuàng)建數(shù)據(jù)對(duì)象VECTOR 。通過(guò)使用WITH HEADER LINE選項(xiàng)還創(chuàng)建表格工作區(qū)域VECTOR 。在這種情況下,表格工作區(qū)域包含一種類型I字段,可以

22、通過(guò)名稱VECTOR定位。DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.在這種情況下,通過(guò)直接在DATA語(yǔ)句中使用OCCURS選項(xiàng)創(chuàng)建完全一樣的數(shù)據(jù)類型VECTOR 。*-*1. TYPES type.2. TYPES type(len).3. TYPES: BEGIN OF structype .END OF structype.4. TYPES itabtype TYPE tabkind OF linetype LIKE tabkind OF lineobj WITH UNIQUE|NON-UNIQUE keydef INITIAL SIZE

23、n.5. TYPES itabtype TYPE RANGE OF type.TYPES itabtype LIKE RANGE OF f.6. TYPES itabtype TYPE linetype|LIKE lineobj OCCURS n.*-*APPEND LINE格式: APPEND <work area> TO <internal table>舉例一: ( 使用 WORK AREA)DATA : BEGIN OF LINE,COL1 TYPE I,COL2 TYPE I,END OF LINE.DATA ITAB LIKE LINE OCCURS 10.D

24、O 2 TIMES.LINE-COL1 = SY-INDEX.LINE-COL2 = SY-INDEX * 2.APPEND LINE TO ITAB.; .'ENDDO.LOOP AT ITAB INTO LINE.WRITE : / LINE-COL1,LINE-COL2.ENDLOOP.舉例二( 不使用 WORK AREA)DATA : BEGIN OF ITAB OCCURS 10,COL1 TYPE I,COL2 TYPE I,END OF ITAB.DO 2 TIMES.ITAB-COL1 = SY-INDEX.ITAB-COL2 = SY-INDEX * 2.APPEND

25、 ITAB.ENDDO.LOOP AT ITAB.WRITE : / ITAB-COL1,ITAB-COL2.ENDLOOP.exp:DATA: BEGIN OF ITAB OCCURS 10,COL1 TYPE C,COL2 TYPE I,END OF ITAB.DO 3 TIMES.APPEND INITIAL LINE TO ITAB.ITAB-COL1 = SY-INDEX. ITAB-COL2 = SY-INDEX * 2.APPEND ITAB.ENDDO.LOOP AT ITAB.; .'WRITE: / ITAB-COL1, ITAB-COL2.ENDLOOP.舉例三

26、. ( 加入另一個(gè)Internal table的元素 )格式 : APPEND LINES OF <itab1> FROM <n1> TO <n2> TO <itab2>.將 <itab1>的元素加入至<itab2>中 , 可選取自 <n1>至 <n2>的范圍 .APPEND LINES OF ITAB TO JTAB.COLLECT LINECOLLECT指令也是將元素加入Internal table中,與 APPEND的區(qū)別是 : COLLECT指令在非數(shù)值欄位相同的情況下,將數(shù)值欄位匯總.格式

27、 :COLLECT <work area> INTO <itab>DATA: BEGIN OF ITAB OCCURS 3,COL1(3)TYPE C,COL2TYPE I,END OF ITAB.ITAB-COL1 = 'ABC'.ITAB-COL2 = 10.COLLECTITAB.ITAB-COL1 = 'XYZ'.ITAB-COL2 = 20.COLLECTITAB.ITAB-COL1 = 'ABC'.ITAB-COL2 = 80.COLLECTITAB.此時(shí) , internal table中放的是2 筆數(shù)據(jù) ,

28、 分別為 :ITAB-COL1ITAB-COL2'ABC'90'XYZ'20*-*INSERT LINE將元素插入在指定的internal table位置之前 .格式 : INSERT <wa> INTO INITIAL LINE INTO <itab> INDEX <idx>或者 : INSERT LINES OF <itab1> FROM <n1> TO <n2> INTO <itab2> INDEX <idx> .'其中 : <wa>即 wo

29、rk area,工作區(qū)中的元素.INITIAL LINE INTO :插入一筆初始化的記錄.<itab>: internal tableINDEX <idx>: internal table的記錄號(hào) .( 新加入的元素放在此記錄前面)Example:DATA:BEGINOFLINE,COL1TYPEI,COL2TYPEI,ENDOFLINE.DATAITABLIKELINEOCCURS10.DO3TIMES.LINE-COL1 = SY-INDEX *10.LINE-COL2 = SY-INDEX *20.APPENDLINEINTOITAB.ENDDO.LINE-CO

30、L1=100.LINE-COL2=200.INSERTLINEINTOITABINDEX2." 插入在位置2 之前LOOPATITABINTOLINE.WRITE:/SY-TABIX,LINE-COL1,LINE-COL2. "SY-TABIX為 Table位置ENDLOOP.執(zhí)行結(jié)果 :110202100200" 插入的元素3204043060插入另一Internal Table元素語(yǔ)法 :; .'INSERTLINESOF<itab1>FROM <n1> TO <n2>TO<itab2>INDEX <

31、;idx>將 <itab1> 的元素插入至 <itab2> 中 , 位置在 <idx> 之前 , 可選取自 <n1> 至 <n2> 的范圍Example:APPENDLINESOFITABTOJTABINDEX3.將 ITAB所有元素插入JTAB 中 , 位置在第三個(gè)元素之前*-*讀取 internal table格式一 :LOOP AT <itab> INTO <wa>FROM <n1> TO <n2>WHERE <conditions><statement&g

32、t;ENDLOOP.Example:LOOPATITABINTOLINEWHERECOL1 >100.WRITE:/SY-TABIX,LINE-COL1.ENDLOOP.僅讀取COL1 > 100的元素格式二 :READ TABLE <itab> INTO <wa> INDEX <idx> / WITH KEY <conditions>舉例.( 格式二)DATA: BEGIN OF ITAB OCCURS 10,COL1 TYPE I,COL2 TYPE I,END OF ITAB.DO 10 TIMES.ITAB-COL1 = SY

33、-INDEX.ITAB-COL2 = SY-INDEX * 2.APPEND ITAB.ENDDO.; .'READ TABLE ITAB INDEX 3.( 或者 : READ TABLEITAB WITH KEY COL1 = 3.)WRITE: / 'ITAB-COL1 = ', ITAB-COL1, 'ITAB-COL2 = ', ITAB-COL2.執(zhí)行結(jié)果同樣是:ITAB-COL1 = 3ITAB-COL2 = 6.Example:READTABLEITABINTOLINEINDEX5讀取ITAB 的第 5 個(gè)元素資料 , 放入LINE 的欄

34、位中根據(jù)欄位內(nèi)容尋找語(yǔ)法 :READTABLE<itab>INTO<wa>Example:ITAB-COL1 = 'ABC'.READTABLEITABINTOLINE.找出 ITAB中 COL1欄位內(nèi)容是ABC的元素 , 找到的值放入LINE中若找到SY-SUBRC傳回 0,找不到則傳回4, <itab>必須聲明有work area*-*修改 internal table中的值格式 : MODIFY <itab> FROM <wa>INDEX <idx>TRANSPORTING <f1><

35、;f2>WHERE<conditions>舉例一 . READ TABLE ITAB INDEX 3.LINE-COL1 = 29.MODIFY ITAB FROM LINE TRANSPORTING COL1.將第三筆記錄的COL1 欄位的值修改為29.舉例二 . T_SALARY - salary = 50.MODIFY T_SALARY TRANSPORTING salary WHERE birthday = '1999/12/06'.DELETE internal table中的欄位; .'格式 : DELETE <itab> IN

36、DEX <idx>.或 : DELETE <itab>FROM <n1> TO <n2> WHERE <conditions>Internal table排序SORT <itab> <order way>BY <f1><f2> 其中 :<order way>有 DESCENDING和 ASCENDING, Default為 ASCENDING.<f1>:為指定排序的欄位.Example:SORTITABDESCENDINGBYCOL2.將 ITAB 根據(jù) COL2

37、 欄位遞減排序*-*確定內(nèi)表屬性如果在處理過(guò)程中想知道內(nèi)表一共包含多少行,或者想知道定義的OCCURS參數(shù)的大小 ,請(qǐng)使用DESCRIBE語(yǔ)句,用法如下:語(yǔ)法DESCRIBE TABLE <itab> LINES <lin> OCCURS <occ>.如果使用LINES參數(shù),則將填充行的數(shù)量寫入變量<lin>。如果使用OCCURS參數(shù),則將行的初始號(hào)寫入變量 <occ> 。DATA: BEGIN OF LINE,COL1 TYPE I,COL2 TYPE I,END OF LINE.DATA ITAB LIKE LINE OCCURS

38、 10.DATA: LIN TYPE I, OCC TYPE I.DESCRIBE TABLE ITAB LINES LIN OCCURS OCC.WRITE: / LIN, OCC.DO 1000 TIMES.LINE-COL1 = SY-INDEX.LINE-COL2 = SY-INDEX * 2.APPEND LINE TO ITAB.; .'ENDDO.DESCRIBE TABLE ITAB LINES LIN OCCURS OCC.WRITE: / LIN, OCC.其輸出為:0101.00010在此創(chuàng)建內(nèi)表ITAB 。在填充表格前后執(zhí)行DESCRIBE語(yǔ)句。更改當(dāng)前行號(hào),但

39、無(wú)法更改初始行號(hào)。*-*加總SUM.總和計(jì)算存放與work area中 ,但只能在LOOP中使用 .例 : LOOP AT ITAB INTO LINE.SUM.ENDLOOP.WRITE: / LINE-COL1, LINE-COL2.LINE-COL1和 LINE-COL2存數(shù)值總和初始化internal tableREFRESH <itab>.清空 <itab>中的值 . 使用在沒(méi)有HEADER LINE的 Internal Table中 , 清除所有元素CLEAR<itab>.清空 <itab>的 Header Line.使用在有HEAD

40、ER LINE的 Internal Table中, 清除所有元素FREE<itab>.釋放內(nèi)存空間 . 釋放 (Release) Internal Table所占的內(nèi)存空間, 用在REFRESH 和 CLEAR指令之后將值重置為默認(rèn)值可以用CLEAR語(yǔ)句重置任何數(shù)據(jù)對(duì)象值,如下所示:語(yǔ)法CLEAR <f>.exp:DATA NUMBER TYPE I VALUE '10'.WRITE NUMBER.CLEAR NUMBER.; .'WRITE / NUMBER.輸出為:100CLEAR語(yǔ)句將字段NUMBER的內(nèi)容從 10重置為默認(rèn)值0 。*-*添

41、加字段順序并將結(jié)果賦給另一個(gè)字段語(yǔ)法ADD <n1> THEN <n2> UNTIL <nz> GIVING <m>.如果<n1>、 <n2>、 .、 <nz>是在內(nèi)存中相同類型和長(zhǎng)度的等距字段序列,則進(jìn)行求和計(jì)算并將結(jié)果賦給 <m>添加字段順序并將結(jié)果添加到另一個(gè)字段的內(nèi)容中語(yǔ)法ADD <n1> THEN <n2> UNTIL <nz> TO <m>.該語(yǔ)句除了將字段總和添加到<m>的舊內(nèi)容中之外,與上面語(yǔ)句的工作方式相同。有關(guān)其它相似變

42、體的信息,參見(jiàn)有關(guān)ADD語(yǔ)句的關(guān)鍵字文檔。DATA: BEGIN OF SERIES,N1 TYPE I VALUE 10,N2 TYPE I VALUE 20,N3 TYPE I VALUE 30,N4 TYPE I VALUE 40,N5 TYPE I VALUE 50,N6 TYPE I VALUE 60,END OF SERIES.DATA SUM TYPE I.ADD SERIES-N1 THEN SERIES-N2 UNTIL SERIES-N5 GIVING SUM.WRITE SUM.ADD SERIES-N2 THEN SERIES-N3 UNTIL SERIES-N6 TO

43、 SUM.WRITE / SUM.; .'輸出如下:150350在此,將N1到 N5組件內(nèi)容求和并將其值賦給字段SUM 。然后,將N2到 N6組件求和并將其添加到SUM的值中。*-*屏幕輸入命令在 ABAP/4中要從屏幕輸入變量, 使用的命令是PARAMETERS及 SELECTION-OPTIONS:1. PARAMETER:輸入一個(gè)變量或欄位內(nèi)容2. SELECTION-OPTIONS:使用條件篩選畫面來(lái)輸入數(shù)據(jù)PARAMETERS指令基本的輸入命令, 類似如 BASIC的 INPUT 命令 , 但無(wú)法使用F 格式 ( 浮點(diǎn)數(shù) )語(yǔ)法 :PARAMETERS<p>DEF

44、AULT <f>LOWER CASEOBLIGATORYAS CHECKBOXRADIOBUTTON GROUP <rad>Example:PARAMETERS:NAME(8),AGETYPE I,BIRTHTYPE D.執(zhí)行結(jié)果 :在日期的輸入格式上為MM/DD/YY , MM/DD/YYYY, MMDDYY或 MMDDYYYY ,如輸入 020165表 1965年02 月 01 日 , 與 02/01/65的輸入是一樣的 , 日期輸入范圍為西元1950 年至 2049年1. DEFAULT設(shè)定輸入的預(yù)設(shè)值Example:PARAMETERS:COMPANY(20)D

45、EFAULT'DELTA',BIRTHTYPEDDEFAULT'19650201'.; .'2. LOWER CASEABAP/4預(yù)設(shè)是將字串輸入值自動(dòng)轉(zhuǎn)換為大寫, 加上此參數(shù)會(huì)將輸入的資料轉(zhuǎn)成小寫,3. OBLIGATORY強(qiáng)制要求輸入 , 屏幕上會(huì)出現(xiàn)一個(gè)? ,使用者必須要輸入才可.4. AS CHECKBOX輸入CHECKBOX的格式Example:PARAMETERS:TAXASCHECKBOXDEFAULT 'X',NTDASCHECKBOX.執(zhí)行結(jié)果 :5. RADIOBUTTON GROUP <rad>輸入RADIO BUTTON GROUP的方式Example:PARAMETERS: BOYRADIOBUTTON GROUPSEXDEFAULT 'X',GIRLRADIOBUTTON GROUPSEX.exp :TABLES SPLFI.PARAMETERS: LOWLIKE SPFLI-CARRID,HIGH LIKE SPFLI-CARRID.SELECT * FROM SPLFI WHERE CARRID BETWEEN LOW AND HIGH.ENDSELECT.*-*SELECTION-OPTIONSSELECTION-OPTIONS所輸入的值實(shí)際上是放在interna

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論