ABAP基础知识

yaoboy 贡献于2011-11-06

作者 Lenovo User  创建于2009-03-12 10:30:00   修改者Lenovo User  修改于2009-03-12 10:31:00字数30407

文档摘要:
关键词:

数据类型 C :字符串 D :日期型 格式为 YYYYMMDD 例:'1999/12/03' F : 浮点数 长度为8 I :整数 N :数值组成的字符串 如:011,'302' P : PACKED数 用于小数点数值 如:12.00542 T : 时间 格式为:HHMMSS 如:'14:03:00' X : 16进制数 如:'1A03' *-------------------------------------------------------------------------------------* 变数宣告 DATA [] [][decimals] 变数名称 变数类型 及 长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. 另外,有關DATA宣告的指令還有: CONSTANTS(宣告常數)、STATICS(臨時變數宣告). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 敘述 宣告的變數僅在目前的程式中使用, 結束後會自動釋放 語法: STATICS [] [] [] 系統專用變數說明 系統內部專門創建了SYST這個STRUCTURE,里面的欄位存放系統變數,常用的系統變數有: SY-SUBRC : 系統執行某指令后,表示執行成功与否的變數,'0' 表示成功 SY-UNAME: 當前使用者登入SAP的USERNAME; SY-DATUM: 當前系統日期; SY-UZEIT: 當前系統時間; SY-TCODE: 當前執行程式的Transaction code SY-INDEX : 當前LOOP循環過的次數 SY-TABIX: 當前處理的是internal table 的第几筆 SY-TMAXL: Internal table的總筆數 SY-SROWS: 屏幕總行數; SY-SCOLS: 屏幕總列數; SY-MANDT: CLIENT NUMBER SY-VLINE: 畫豎線 SY-ULINE: 畫橫線 TYPE 敘述 用來指定資料型態或宣告自定資料型態 Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYLIST. DATA LIST TYPE MYLIST. LIKE 敘述 跟TYPE敘述使用格式相同, 如 DATA TRANSCODE LIKE SY-TCODE. 不同的是 LIKE 用在已有值的資料項, 如系統變數, 而TYPE敘述則是用 在指定資料型態。 *-------------------------------------------------------------------------------------* 输出 一. WRITE 語句 ABAP/4用來在屏幕上輸出資料的指令是WRITE指令,例如: WRITE: 'USER NAME IS:', SY-UNAME. 二. 指定屏幕輸出位置 指定輸出位置的語句格式為: WRITE: [AT] [ / ] [] [()] 資料項 [] 其中: / : 在下一行輸出 : 指定輸出的行號; ():指定輸出位數(長度) : 指定顯示格式參數,參數有: LEFT-JUSTIFIED 資料靠左對齊 CENTERED 資料靠中間對齊 RIGHT-JUSTIFIED 資料靠右對齊 UNDER 正對在資料項的下面顯示 NO-GAP 緊接著顯示,不留空格 USING EDIT MASK : 使用內嵌子元顯示, 如 12:03:20 USING NO EDIT MASK: 不使用內嵌子元 NO-ZERO: 數字前面 0 的部分不顯示 NO-SIGN: 不顯示正負號 DECIMALS : 顯示 位小數 EXPOENT : F(浮點數)指數的值 ROUND : 四舍五入至小數點后位 CURRENCY : 幣別顯示 DD/MM/YY : 日期顯示格式 MM/DD/YY: YY/MM/DD: YY/DD/MM MM/DD/YYYY: DD/MM/YYYY YYYY/MM/DD: YYYY/DD/MM: 例如1: WRITE: /10(6) 'ABCDEFGHIJK'. 輸出結果為: ABCDEF 例如2: DATA: X TYPE I VALUE '11:20:30', A(5) TYPE C VALUE 'AB CDE'. WRITE: / X USING EDIT MASK '__:__:__'. WRITE: / X USING EDIT MASK '$___,___'. WRITE: / Y NO-GAP. 輸出結果為: 11:20:30 $112,030 ABCDEF 例如3: DATA: LEN TYPE I VALUE 10, POS TYPE I VALUE 11, TEXT(10) VALUE '1234567890' WRITE 'The text ------------ appears in the text.'. WRITE AT POS(LEN) TEXT. WRITE TO 语句的基本 形式 要将值(文 字)或源字 段内容写入 目标字段, 可以使用 WRITE TO 语句: 语法 WRITE TO [