ABAP4基礎(chǔ)V1.0分析_第1頁(yè)
ABAP4基礎(chǔ)V1.0分析_第2頁(yè)
ABAP4基礎(chǔ)V1.0分析_第3頁(yè)
ABAP4基礎(chǔ)V1.0分析_第4頁(yè)
ABAP4基礎(chǔ)V1.0分析_第5頁(yè)
已閱讀5頁(yè),還剩158頁(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、真誠(chéng)協(xié)同真誠(chéng)協(xié)同SAP ABAP SAP ABAP 基礎(chǔ)培訓(xùn)基礎(chǔ)培訓(xùn)-ABAP4 基礎(chǔ)11第一章第一章 ABAP/4ABAP/4基礎(chǔ)基礎(chǔ)第二第二章章 ABAP/4 ABAP/4基本語(yǔ)法基本語(yǔ)法第三第三章章 數(shù)據(jù)數(shù)據(jù)輸出到屏幕輸出到屏幕第四第四章章 處理處理數(shù)據(jù)數(shù)據(jù)第五第五章章 流控制流控制第六第六章章 內(nèi)內(nèi)表處理表處理第七第七章章 單單界面界面REPORTREPORT第八第八章章 交互式報(bào)表交互式報(bào)表第九第九章章 ALVALV報(bào)表報(bào)表第十第十章章 FUNCTIONFUNCTION第十一第十一章章 搜索搜索幫助幫助第十二第十二章章 DEBUGDEBUG課程內(nèi)容課程內(nèi)容2第一第一章章 ABAP/4

2、ABAP/4基礎(chǔ)基礎(chǔ)3ABAP/4ABAP/4程序類型程序類型 1.1.報(bào)表程序報(bào)表程序 報(bào)表程序用于分析數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。這種分析的結(jié)果可以顯示在屏幕上或發(fā)送到打印機(jī)上。邏輯數(shù)據(jù)庫(kù)支持報(bào)表程序。邏輯數(shù)據(jù)庫(kù)是特殊的 ABAP/4 程序,使開(kāi)發(fā)者不必編碼所有的數(shù)據(jù)庫(kù)訪問(wèn)。 2.2.對(duì)話程序?qū)υ挸绦?將對(duì)話程序組織為包含對(duì)話模塊的模塊池。每個(gè)動(dòng)態(tài)程序(由一個(gè)屏幕及其流邏輯組成的“ 動(dòng)態(tài)程序”)都基于一個(gè)ABAP/4對(duì)話程序。流邏輯包含對(duì)ABAP/4對(duì)話模塊的調(diào)用。4創(chuàng)建簡(jiǎn)單的創(chuàng)建簡(jiǎn)單的ABAP/4程序程序步驟步驟 : 1.命名程序命名程序 2.指定程序?qū)傩灾付ǔ绦驅(qū)傩?3.編寫(xiě)程序代碼編寫(xiě)程序代碼

3、 4.測(cè)試程序測(cè)試程序51.1 1.1 打開(kāi)編輯器打開(kāi)編輯器1.1.創(chuàng)建程序,請(qǐng)進(jìn)行如下操作:創(chuàng)建程序,請(qǐng)進(jìn)行如下操作: a. a.在在“ “ SAP R/3”SAP R/3”初始屏上選擇初始屏上選擇“工具工具 - - ABAP/4 ABAP/4 工作臺(tái)工作臺(tái)”。出現(xiàn)。出現(xiàn)“開(kāi)開(kāi) 發(fā)發(fā)”屏幕,選擇屏幕,選擇“ABAP4 ABAP4 編輯器編輯器”。雙擊雙擊ABAP4編輯器編輯器6b. b. 在屏幕左上角輸入事務(wù)代碼在屏幕左上角輸入事務(wù)代碼“SE38SE38”。在此輸入在此輸入“SE38”,然后點(diǎn)擊左邊的執(zhí)行按鈕然后點(diǎn)擊左邊的執(zhí)行按鈕b. b. 在屏幕左上角輸入事務(wù)代碼在屏幕左上角輸入事務(wù)代碼“

4、SE38”SE38”。1.1 1.1 打開(kāi)編輯器打開(kāi)編輯器7 執(zhí)行后出現(xiàn)執(zhí)行后出現(xiàn)“ABAP/4 ABAP/4 編輯器:初始屏幕編輯器:初始屏幕”屏幕:屏幕:顯示程序代碼顯示程序代碼輸入程序名稱輸入程序名稱創(chuàng)建程序創(chuàng)建程序顯示程序并處于修改狀態(tài)顯示程序并處于修改狀態(tài)1.1 1.1 打開(kāi)編輯器打開(kāi)編輯器81.2 1.2 命名程序命名程序 在在“程序程序”字段輸入創(chuàng)建的程序名稱,必須遵守程序命名規(guī)則。如果程字段輸入創(chuàng)建的程序名稱,必須遵守程序命名規(guī)則。如果程序已經(jīng)存在,可以按下序已經(jīng)存在,可以按下“顯示顯示”或者或者“修改修改”。 在命名規(guī)則上在命名規(guī)則上, , ReportsReports程序?yàn)?/p>

5、程序?yàn)?YaxxxxxxYaxxxxxx或或Zaxxxxxx, aZaxxxxxx, a表表application application modulemodule簡(jiǎn)稱簡(jiǎn)稱, , 如如s s表表SDSD。DialogDialog程序?yàn)槌绦驗(yàn)镾APMYxxxSAPMYxxx或或SAPMZxxxSAPMZxxx。 我們自己開(kāi)發(fā)的程序一般都是以我們自己開(kāi)發(fā)的程序一般都是以Z Z開(kāi)頭。開(kāi)頭。91.3 1.3 指定程序?qū)傩灾付ǔ绦驅(qū)傩?創(chuàng)建程序時(shí)需要指定程序的一些屬性,比如類型、開(kāi)發(fā)類等等。創(chuàng)建程序時(shí)需要指定程序的一些屬性,比如類型、開(kāi)發(fā)類等等。輸入程序的標(biāo)題輸入程序的標(biāo)題選擇程序類型選擇程序類型10

6、點(diǎn)擊保存以后,提示輸入程序的開(kāi)發(fā)類。如下:點(diǎn)擊保存以后,提示輸入程序的開(kāi)發(fā)類。如下:選擇程序的開(kāi)發(fā)類選擇程序的開(kāi)發(fā)類點(diǎn)擊保存后進(jìn)入程序編輯點(diǎn)擊保存后進(jìn)入程序編輯界面界面1.3 1.3 指定程序?qū)傩灾付ǔ绦驅(qū)傩?11.4 1.4 編寫(xiě)程序代碼編寫(xiě)程序代碼指定完程序?qū)傩院?,系統(tǒng)自動(dòng)進(jìn)入編輯界面,并自動(dòng)輸入第一個(gè)指定完程序?qū)傩院?,系統(tǒng)自動(dòng)進(jìn)入編輯界面,并自動(dòng)輸入第一個(gè)ABAP/4ABAP/4語(yǔ)語(yǔ)句。如下:句。如下:此處此處REPORTNAME為先前輸入的為先前輸入的程序名稱程序名稱121.5 1.5 測(cè)試程序測(cè)試程序語(yǔ)法檢查語(yǔ)法檢查激活激活測(cè)試程序測(cè)試程序(F8)程序中請(qǐng)加入程序中請(qǐng)加入詳細(xì)注釋詳細(xì)

7、注釋13 語(yǔ)法檢查無(wú)錯(cuò)誤,并且激活以后,可以點(diǎn)語(yǔ)法檢查無(wú)錯(cuò)誤,并且激活以后,可以點(diǎn) 測(cè)試程序,運(yùn)行結(jié)果如下:測(cè)試程序,運(yùn)行結(jié)果如下:輸入查詢條件輸入查詢條件執(zhí)行執(zhí)行1.5 1.5 測(cè)試程序測(cè)試程序141 1. .6 6 ABAP/4ABAP/4開(kāi)發(fā)平臺(tái)工具開(kāi)發(fā)平臺(tái)工具( (一一) )n 對(duì)象瀏覽器對(duì)象瀏覽器(Repository Browser)n 數(shù)據(jù)字典數(shù)據(jù)字典(Dictipnary)n 程序編輯器程序編輯器(ABAP Editor)n 功能模塊生成器功能模塊生成器(Function Builder)n 屏幕繪制器屏幕繪制器(Screen Painter)n 菜單繪制器菜單繪制器(Menu

8、 Painter)151 1. .6 6 ABAP/4ABAP/4開(kāi)發(fā)平臺(tái)工具開(kāi)發(fā)平臺(tái)工具( (二二) )n Repository Browser(SE80) 便于程序員看清楚分離組件的關(guān)系,其外觀類似一個(gè)目錄列表。便于程序員看清楚分離組件的關(guān)系,其外觀類似一個(gè)目錄列表。nDictionary(SE11) 存儲(chǔ)整個(gè)系統(tǒng)的數(shù)據(jù)定義存儲(chǔ)整個(gè)系統(tǒng)的數(shù)據(jù)定義nABAP Editor(SE38) 用來(lái)創(chuàng)建或修改代碼,可以進(jìn)行語(yǔ)法檢測(cè),激活程序。用來(lái)創(chuàng)建或修改代碼,可以進(jìn)行語(yǔ)法檢測(cè),激活程序。nFunction Builder(SE37) 所有所有FUNCTION的資源庫(kù),完成的資源庫(kù),完成FUNCTIO

9、N的創(chuàng)建和相關(guān)處理。的創(chuàng)建和相關(guān)處理。nScreen Painter(SE51) 用于圖形用戶界面的設(shè)計(jì),將字段、按鈕和其它元素添加到屏幕上。用于圖形用戶界面的設(shè)計(jì),將字段、按鈕和其它元素添加到屏幕上。nMenu Painter(SE41) 創(chuàng)建用戶自定義菜單。創(chuàng)建用戶自定義菜單。16第二章第二章 ABAP/4ABAP/4基本語(yǔ)法基本語(yǔ)法17基本數(shù)據(jù)類型及其屬性基本數(shù)據(jù)類型及其屬性Data typeMeaningInitial valueStandardAllowedlengthlengthPacked number0 81-16Integer0 * -Floating point no.0

10、* -Numeric text0.0 11-max.Text (character)Blank11-max.Date (YYYYMMDD)0000000 8 8Time (HHMMSS)00000 66HexadecimalX0011-max.* Machine-specificmax.: approx. 64,000 Byte壓縮型壓縮型整型整型浮點(diǎn)型浮點(diǎn)型數(shù)值型數(shù)值型文本型文本型日期型日期型時(shí)間型時(shí)間型十六進(jìn)十六進(jìn)制型制型182.1 2.1 變量定義變量定義變量定義變量定義包含包含 name, type, length name, type, length 和和 structurestru

11、cture四四個(gè)個(gè)部分部分, , 使用使用 DATA DATA 指令指令, , 語(yǔ)法如下語(yǔ)法如下: :DATA () .示例示例: DATA: S1 TYPE I, SUM TYPE C.變量名變量名指定變量的長(zhǎng)度和類型指定變量的長(zhǎng)度和類型初始值初始值指定小數(shù)位數(shù)指定小數(shù)位數(shù)192.2 2.2 常量定義常量定義 常量定義常量定義使用使用 CONSTANTS CONSTANTS 指令指令, , 語(yǔ)法如下語(yǔ)法如下: :CONSTANTS .如宣告如宣告 PI PI 是一個(gè)小是一個(gè)小數(shù)點(diǎn)數(shù)點(diǎn)5 5位的值位的值 3.141593.14159: CONSTANTS PI TYPE P DECIMALS

12、5 VALUE 3.14159.變量名變量名指定變量的長(zhǎng)度和類型指定變量的長(zhǎng)度和類型初始值初始值指定小數(shù)位數(shù)指定小數(shù)位數(shù)202.3 2.3 STATICSSTATICS定義定義 定義定義的的變量變量在目前的程式中使用在目前的程式中使用, , 結(jié)束后自動(dòng)釋放結(jié)束后自動(dòng)釋放語(yǔ)法語(yǔ)法: : STATICS 212.4 2.4 TYPESTYPES定義定義 定義常用數(shù)據(jù)類型或者自定義結(jié)構(gòu)類型定義常用數(shù)據(jù)類型或者自定義結(jié)構(gòu)類型 語(yǔ)法語(yǔ)法: : TYPES Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYL

13、IST. DATA LIST TYPE MYLIST. 請(qǐng)請(qǐng)注意:注意: 由于沒(méi)有與數(shù)據(jù)類型相關(guān)聯(lián)的內(nèi)存,所以無(wú)法在由于沒(méi)有與數(shù)據(jù)類型相關(guān)聯(lián)的內(nèi)存,所以無(wú)法在TYPESTYPES語(yǔ)句中使用語(yǔ)句中使用 value 參數(shù)。因此,不能給數(shù)據(jù)類型分配值。參數(shù)。因此,不能給數(shù)據(jù)類型分配值。222.5 2.5 LIKELIKE定義定義 跟跟TYPETYPE使用格式相同使用格式相同, , 如如: DATA TRANSCODE LIKE SY-TCODE.請(qǐng)注意:請(qǐng)注意: 不同的是不同的是 LIKE LIKE 用在已有用在已有值值的的數(shù)據(jù)類型數(shù)據(jù)類型, , 如如系統(tǒng)變量系統(tǒng)變量, ,而而TYPETYPE則則是

14、用在是用在定定義數(shù)據(jù)類型義數(shù)據(jù)類型232.6 2.6 DATADATA定義定義語(yǔ)法:語(yǔ)法:DATA 請(qǐng)注意:請(qǐng)注意:: 變量名稱變量名稱, , 最長(zhǎng)最長(zhǎng)3030個(gè)字元個(gè)字元, , 不可含有不可含有 + . , : ( ) 等等字符字符 : 數(shù)據(jù)類型數(shù)據(jù)類型及長(zhǎng)度及長(zhǎng)度, , 如如 LINE(20) TYPE C. MYNAME LIKE SY-UNAME.: 初值初值: 小數(shù)位數(shù)小數(shù)位數(shù)242.7 2.7 結(jié)構(gòu)變量定義結(jié)構(gòu)變量定義示例示例:DATA: BEGIN OF ADDRESS, NAME(10) TYPE C , NUMBER TYPE P, END OF ADDRESS.請(qǐng)注意:請(qǐng)注

15、意:使用使用時(shí)時(shí)用用結(jié)構(gòu)名結(jié)構(gòu)名加上加上元素名稱元素名稱, , 如如 ADDRESS-NAMEADDRESS-NAME252.8 2.8 TABLESTABLES定義定義語(yǔ)法語(yǔ)法: : TABLES . 是是 ABAP/4 ABAP/4 詞典對(duì)象的名稱,同時(shí)也是創(chuàng)建的表工作區(qū)的名稱??梢栽~典對(duì)象的名稱,同時(shí)也是創(chuàng)建的表工作區(qū)的名稱??梢砸玫挠行б玫挠行BAP/4ABAP/4詞典對(duì)象是結(jié)構(gòu)詞典對(duì)象是結(jié)構(gòu), ,視圖視圖, ,透明表。透明表。262.9 2.9 系統(tǒng)保留字系統(tǒng)保留字 這是由這是由系統(tǒng)所定義的專有名詞系統(tǒng)所定義的專有名詞, ,如如: SPACE 空白字串空白字串 SY-SUBRC

16、 系統(tǒng)執(zhí)行返回值系統(tǒng)執(zhí)行返回值, 0 表示成功表示成功 SY-UNAME 登陸用戶名登陸用戶名 SY-DATUM 系統(tǒng)系統(tǒng)日期日期 SY-UZEIT 系統(tǒng)時(shí)間系統(tǒng)時(shí)間 SY-TCODE 目前的目前的transaction code27第三章第三章 數(shù)據(jù)輸出到屏幕數(shù)據(jù)輸出到屏幕283.1 3.1 WRITEWRITE語(yǔ)句語(yǔ)句 語(yǔ)法語(yǔ)法: : WRITE . 示例示例: PROGRAM Ztrain_01. DATA NUMBER TYPE P VALUE -1234567.89 DECIMALS 2. WRITE: Number, NUMBER, is packed.29 點(diǎn)擊測(cè)試程序點(diǎn)擊測(cè)試程

17、序3.1 3.1 WRITEWRITE語(yǔ)句語(yǔ)句30 3.1 3.1 WRITEWRITE語(yǔ)句語(yǔ)句313.1 3.1 WRITEWRITE語(yǔ)句格式化輸出語(yǔ)句格式化輸出 數(shù)字字段的格式化選項(xiàng)數(shù)字字段的格式化選項(xiàng) 選項(xiàng)選項(xiàng) 用途用途 NO-SIGN 不輸出前導(dǎo)符號(hào)。不輸出前導(dǎo)符號(hào)。 DECIMALS 定義小數(shù)點(diǎn)后的數(shù)字位數(shù)。定義小數(shù)點(diǎn)后的數(shù)字位數(shù)。 EXPONENT 在類型在類型 F 字段中,在字段中,在中定義冪數(shù)。中定義冪數(shù)。 ROUND 用用10*(-r) 乘類型乘類型P 字段,然后取整。字段,然后取整。 CURRENCY 按表格按表格TCURX 中的貨幣中的貨幣格式化。格式化。 UNIT 按表

18、格按表格T006 中為類型中為類型P字段所指定的單位字段所指定的單位 固定小數(shù)位數(shù)。固定小數(shù)位數(shù)。32 日期字段的格式化選項(xiàng)日期字段的格式化選項(xiàng) 選項(xiàng)選項(xiàng) 用途用途 DD/MM/YY 用戶主記錄中定義的分隔符用戶主記錄中定義的分隔符 MM/DD/YY 用戶主記錄中定義的分隔符用戶主記錄中定義的分隔符 DD/MM/YYYY 用戶主記錄中定義的分隔符用戶主記錄中定義的分隔符 MM/DD/YYYY 用戶主記錄中定義的分隔符用戶主記錄中定義的分隔符 DDMMYY 無(wú)分隔符無(wú)分隔符 MMDDYY 無(wú)分隔符無(wú)分隔符 YYMMDD 無(wú)分隔符無(wú)分隔符3.1 3.1 WRITEWRITE語(yǔ)句格式化輸出語(yǔ)句格式化

19、輸出333.2 3.2 在屏幕上輸出符號(hào)和圖標(biāo)在屏幕上輸出符號(hào)和圖標(biāo) 語(yǔ)法語(yǔ)法: :WRITE AS SYMBOL.WRITE AS ICON. 示例示例: INCLUDE . INCLUDE . WRITE: / Phone Symbol:, SYM_PHONE AS SYMBOL. SKIP. WRITE: / Alarm Icon: , ICON_ALARM AS ICON.34 3.2 3.2 在屏幕上輸出符號(hào)和圖標(biāo)在屏幕上輸出符號(hào)和圖標(biāo)353.3 3.3 輸出屏幕上的線和空行輸出屏幕上的線和空行 a.a.水平線水平線 語(yǔ)法語(yǔ)法: : ULINE AT /().它等同于它等同于 WRI

20、TE AT /() SY-ULINE.36 b.b.垂直線垂直線 語(yǔ)法語(yǔ)法: : WRITE AT / SY-VLINE. 或或 WRITE AT / |.3.3 3.3 輸出屏幕上的線和空行輸出屏幕上的線和空行37 b.b.空行空行 語(yǔ)法語(yǔ)法: : SKIP . SKIP TO LINE .3.3 3.3 輸出屏幕上的線和空行輸出屏幕上的線和空行383.4 3.4 輸出復(fù)選框輸出復(fù)選框 b.b.空行空行 語(yǔ)法:語(yǔ)法: WRITE AS CHECKBOX . 示例示例: DATA: FLAG1 VALUE , FLAG2 VALUE X, FLAG3(5) VALUE Xenon. WRITE

21、: / Flag 1 , FLAG1 AS CHECKBOX, / Flag 2 , FLAG2 AS CHECKBOX, / Flag 3 , FLAG3 AS CHECKBOX.393.4 3.4 輸出復(fù)選框輸出復(fù)選框40第四章第四章 處理數(shù)據(jù)處理數(shù)據(jù)414.1 4.1 賦值賦值 a.MOVE語(yǔ)句語(yǔ)句 MOVE TO .相當(dāng)于相當(dāng)于 = . MOVE +() TO +(). MOVE-CORRESPONDING TO .b. WRITE TO 語(yǔ)句語(yǔ)句 WRITE TO . WRITE () TO . WRITE +() TO +().424.2 4.2 將值重置為默認(rèn)值將值重置為默認(rèn)值

22、語(yǔ)法:語(yǔ)法: CLEAR . 示例示例: DATA NUMBER TYPE I VALUE 10. WRITE NUMBER. CLEAR NUMBER. WRITE / NUMBER. 輸出為:輸出為: 10 0434.3 4.3 基本算術(shù)運(yùn)算基本算術(shù)運(yùn)算算術(shù)運(yùn)算符:算術(shù)運(yùn)算符: + 加法加法- 減法減法* 乘法乘法 除法除法DIV 整除整除MOD 求余求余* 求冪求冪444.4 4.4 使用數(shù)學(xué)函數(shù)使用數(shù)學(xué)函數(shù) 數(shù)值數(shù)據(jù)類型的函數(shù):數(shù)值數(shù)據(jù)類型的函數(shù): 函數(shù)函數(shù) 結(jié)果結(jié)果 ABS 參數(shù)的絕對(duì)值。參數(shù)的絕對(duì)值。 SIGN 參數(shù)符號(hào):參數(shù)符號(hào): 1 X 0 SIGN( X) = 0 if X

23、= 0 -1 X 0 CEIL 不小于參數(shù)的最小整數(shù)值。不小于參數(shù)的最小整數(shù)值。 FLOOR 不大于參數(shù)的最大整數(shù)值。不大于參數(shù)的最大整數(shù)值。 TRUNC 參數(shù)的整數(shù)部分。參數(shù)的整數(shù)部分。 FRAC 參數(shù)的分?jǐn)?shù)部分。參數(shù)的分?jǐn)?shù)部分。454.5 4.5 處理日期和時(shí)間處理日期和時(shí)間 日期:日期: DATA: ULTIMO TYPE D. ULTIMO = SY-DATUM. ULTIMO+6(2) = 01. = first day of this month ULTIMO = ULTIMO - 1. = last day of last month46 時(shí)間:時(shí)間: DATA: DIFF TY

24、PE I, SECONDS TYPE I, HOURS TYPE I. DATA: T1 TYPE T VALUE 200000, T2 TYPE T VALUE 020000. DIFF = T2 - T1. SECONDS = DIFF MOD 86400. HOURS = SECONDS / 3600.4.5 4.5 處理日期和時(shí)間處理日期和時(shí)間474.6 4.6 處理字符串處理字符串 1.1.移動(dòng)字段內(nèi)容移動(dòng)字段內(nèi)容 a.a.按給定位置數(shù)移動(dòng)字段串按給定位置數(shù)移動(dòng)字段串SHIFT BY PLACES .注意:注意: 該語(yǔ)句將字段該語(yǔ)句將字段 移動(dòng)移動(dòng) 個(gè)位置。如果省略個(gè)位置。如果省略B

25、Y PLACES,則將則將 解釋為一個(gè)位置。如果解釋為一個(gè)位置。如果 是是 0 或負(fù)值,則或負(fù)值,則 保持不變。保持不變。 如果如果 超過(guò)超過(guò) 長(zhǎng)度,則長(zhǎng)度,則 用空格填充用空格填充 。 可為變量??蔀樽兞?。LEFTRIGHTCIRCLUAR48 1.1.移動(dòng)字段內(nèi)容移動(dòng)字段內(nèi)容 b.b. 移動(dòng)字段串給指定串移動(dòng)字段串給指定串SHIFT UP TO .示例:示例:DATA: T(10) VALUE abcdefghij, STRING LIKE T, STR(2) VALUE ef. STRING = T. WRITE STRING. SHIFT STRING UP TO STR. WRITE

26、 / STRING. STRING = T.4.6 4.6 處理字符串處理字符串49 SHIFT STRING UP TO STR LEFT.WRITE / STRING.STRING = T.SHIFT STRING UP TO STR RIGHT.WRITE / STRING.STRING = T.SHIFT STRING UP TO STR CIRCULAR.WRITE / STRING.4.6 4.6 處理字符串處理字符串輸出如下:輸出如下:abcdefghijefghijefghij abcdefefghijabcd50 1.1.移動(dòng)字段內(nèi)容移動(dòng)字段內(nèi)容 c.c. 根據(jù)第一個(gè)或者最后

27、一個(gè)字符移動(dòng)字符串根據(jù)第一個(gè)或者最后一個(gè)字符移動(dòng)字符串 語(yǔ)法:語(yǔ)法:SHIFT LEFT DELETING LEADING .SHIFT RIGHT DELETING TRAILING .4.6 4.6 處理字符串處理字符串51 2.2.替換字段內(nèi)容替換字段內(nèi)容語(yǔ)法:語(yǔ)法: REPLACE WITH INTO LENGTH .注意:注意: 、 和和 可為變量??蔀樽兞?。4.6 4.6 處理字符串處理字符串52 3.3.轉(zhuǎn)換大轉(zhuǎn)換大/ /小寫(xiě)小寫(xiě)語(yǔ)法:語(yǔ)法:TRANSLATE TO UPPER CASE. TRANSLATE TO LOWER CASE.4.6 4.6 處理字符串處理字符串534

28、.4.獲得字符串長(zhǎng)度獲得字符串長(zhǎng)度 語(yǔ)法:語(yǔ)法:COMPUTE = STRLEN( ).示例:示例:DATA: INT TYPE I, WORD1(20) VALUE 12345. WORD2(20). WORD3(20) VALUE 4 . INT = STRLEN( WORD1 ). WRITE INT. INT = STRLEN( WORD2 ). WRITE / INT. INT = STRLEN( WORD3 ). WRITE / INT.結(jié)果分別是結(jié)果分別是 5,0 和和 4。4.6 4.6 處理字符串處理字符串54 5.5.連接字符串連接字符串 語(yǔ)法:語(yǔ)法: CONCATENAT

29、E . INTO SEPARATED BY . 該語(yǔ)句連接該語(yǔ)句連接 字符串字符串 與與 并將結(jié)果賦并將結(jié)果賦 給給 。4.6 4.6 處理字符串處理字符串55 6.6.拆分字符串拆分字符串 語(yǔ)法:語(yǔ)法:SPLIT AT INTO . . 該語(yǔ)句在字符字段該語(yǔ)句在字符字段 搜索分界字符串搜索分界字符串 ,并將分界符之前和之后的并將分界符之前和之后的部分放到目標(biāo)字段部分放到目標(biāo)字段 . 中。中。4.6 4.6 處理字符串處理字符串56 7.7.指定字符串的偏移量指定字符串的偏移量 語(yǔ)法:語(yǔ)法:+() DATA TIME TYPE T VALUE 172545. WRITE TIME. WRITE

30、 / TIME+2(2). CLEAR TIME+2(4). WRITE / TIME. 該過(guò)程的輸該過(guò)程的輸 出如下:出如下: 172545 25 1700004.6 4.6 處理字符串處理字符串57第五章第五章 流控制流控制585.1 5.1 賦值賦值58 a. 比較運(yùn)算符比較運(yùn)算符 含含 義義 EQ 等于等于 = 等于等于 NE 不等于不等于 不等于不等于 不等于不等于 小于小于 大于大于 GE 大于等于大于等于 = 大于等于大于等于595.2 5.2 編程分支和循環(huán)編程分支和循環(huán)59 a.a. 使用使用IF的條件分支的條件分支語(yǔ)法:語(yǔ)法: IF . . ELSEIF . . ELSEI

31、F . . . ELSE. . ENDIF.60 b. b. 使用使用CASE的條件分支的條件分支語(yǔ)法語(yǔ)法: CASE . WHEN . WHEN . WHEN . WHEN . . WHEN OTHERS. ENDCASE.5.2 5.2 編程分支和循環(huán)編程分支和循環(huán)6061 c. c. 使用使用DO的無(wú)條件循環(huán)的無(wú)條件循環(huán)語(yǔ)法:語(yǔ)法: DO TIMES VARYING FROM NEXT . ENDDO.說(shuō)明:說(shuō)明: 可以使用可以使用 TIMES 選項(xiàng)限制循環(huán)次數(shù)。選項(xiàng)限制循環(huán)次數(shù)。 可以是文字或變量。如果可以是文字或變量。如果 是是 0 或負(fù)數(shù),系統(tǒng)不執(zhí)行該循環(huán)。系統(tǒng)字段或負(fù)數(shù),系統(tǒng)不執(zhí)

32、行該循環(huán)。系統(tǒng)字段 SY-INDEX 中包含已處中包含已處 理過(guò)的循環(huán)次數(shù)。理過(guò)的循環(huán)次數(shù)。5.2 5.2 編程分支和循環(huán)編程分支和循環(huán)61625.2 編程分支和循環(huán)62d. 終止循環(huán)終止循環(huán)關(guān)鍵字用途CONTINUE無(wú)條件終止循環(huán)CHECK有條件終止循環(huán)EXIT完全終止循環(huán)63第六章 內(nèi)表處理63646.1 什么是內(nèi)表64a. 內(nèi)表的目的:內(nèi)表的目的: 在在 ABAP/4 中中,主要使用表格。表格是主要使用表格。表格是 R/3 系統(tǒng)中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)系統(tǒng)中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu) .長(zhǎng)長(zhǎng)期使用的數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)表格中。期使用的數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)表格中。 除了數(shù)據(jù)庫(kù)表格除了數(shù)據(jù)庫(kù)表格,還可以創(chuàng)建僅在

33、程序運(yùn)行時(shí)還可以創(chuàng)建僅在程序運(yùn)行時(shí) 間內(nèi)存在的內(nèi)表。間內(nèi)存在的內(nèi)表。ABAP/4提供了針對(duì)內(nèi)表的不同操作。例如提供了針對(duì)內(nèi)表的不同操作。例如,可以搜索可以搜索 、附加、插、附加、插 入或刪除行入或刪除行 .內(nèi)表中的行內(nèi)表中的行 數(shù)并不固定數(shù)并不固定 .根據(jù)需求根據(jù)需求 ,系統(tǒng)可實(shí)系統(tǒng)可實(shí) 時(shí)增加內(nèi)表時(shí)增加內(nèi)表 的大小的大小. 可以使用內(nèi)表在數(shù)據(jù)庫(kù)表格的子集上執(zhí)行表格計(jì)算??梢允褂脙?nèi)表在數(shù)據(jù)庫(kù)表格的子集上執(zhí)行表格計(jì)算。 內(nèi)表的另一內(nèi)表的另一 種用處是根種用處是根 據(jù)程序需要重新組織數(shù)據(jù)程序需要重新組織數(shù) 據(jù)庫(kù)表格的據(jù)庫(kù)表格的 內(nèi)容內(nèi)容.656.1 什么是內(nèi)表65b. 內(nèi)表的結(jié)構(gòu)內(nèi)表的結(jié)構(gòu): 在在

34、 ABAP/4 中中,可以區(qū)別內(nèi)表數(shù)據(jù)類型可以區(qū)別內(nèi)表數(shù)據(jù)類型(定義內(nèi)表的結(jié)構(gòu)定義內(nèi)表的結(jié)構(gòu))和內(nèi)表數(shù)據(jù)對(duì)和內(nèi)表數(shù)據(jù)對(duì)象象(實(shí)實(shí) 際的內(nèi)表而際的內(nèi)表而 且可以用數(shù)且可以用數(shù) 據(jù)進(jìn)行填充據(jù)進(jìn)行填充).內(nèi)表數(shù)內(nèi)表數(shù) 據(jù)類型是數(shù)據(jù)結(jié)構(gòu)據(jù)類型是數(shù)據(jù)結(jié)構(gòu)(可可用于將數(shù)據(jù)對(duì)象說(shuō)明為內(nèi)表用于將數(shù)據(jù)對(duì)象說(shuō)明為內(nèi)表)的抽的抽 象定義象定義.666.1 什么是內(nèi)表66c. 訪問(wèn)內(nèi)表:訪問(wèn)內(nèi)表: 內(nèi)表是按行內(nèi)表是按行 進(jìn)行訪問(wèn)的進(jìn)行訪問(wèn)的 。必須使用。必須使用 某個(gè)工作區(qū)某個(gè)工作區(qū) 域作為與表域作為與表 格互相格互相傳輸傳輸 數(shù)據(jù)的接口數(shù)據(jù)的接口 。說(shuō)明:說(shuō)明: 從內(nèi)表中讀取數(shù)據(jù)時(shí),已定址的表格行內(nèi)容覆蓋工作區(qū)域的

35、內(nèi)容。然后從內(nèi)表中讀取數(shù)據(jù)時(shí),已定址的表格行內(nèi)容覆蓋工作區(qū)域的內(nèi)容。然后可以在程序中引用工作區(qū)域的內(nèi)可以在程序中引用工作區(qū)域的內(nèi) 容。將數(shù)據(jù)寫(xiě)入內(nèi)表時(shí),必須首先容。將數(shù)據(jù)寫(xiě)入內(nèi)表時(shí),必須首先 在工作在工作區(qū)域(從中系統(tǒng)區(qū)域(從中系統(tǒng) 可以將數(shù)據(jù)可以將數(shù)據(jù) 傳輸給內(nèi)表傳輸給內(nèi)表 )中輸入數(shù))中輸入數(shù) 據(jù)。據(jù)。表讀取表讀取表修改表修改表工作區(qū)工作區(qū)676.2 創(chuàng)建內(nèi)表67a. 創(chuàng)建內(nèi)表數(shù)據(jù)類型:創(chuàng)建內(nèi)表數(shù)據(jù)類型: 語(yǔ)法:語(yǔ)法:TYPES OCCURS . 示例:示例: TYPES VECTOR TYPE I OCCURS 10. TYPES: BEGIN OF LINE, COLUMN1 TYPE

36、 I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF LINE. TYPES ITAB TYPE LINE OCCURS 10.686.2 創(chuàng)建內(nèi)表68b. 創(chuàng)建內(nèi)表數(shù)據(jù)對(duì)象:創(chuàng)建內(nèi)表數(shù)據(jù)對(duì)象: 3種方法:種方法: 通過(guò)引用另一個(gè)表格來(lái)創(chuàng)建內(nèi)表通過(guò)引用另一個(gè)表格來(lái)創(chuàng)建內(nèi)表 通過(guò)引用結(jié)構(gòu)來(lái)創(chuàng)建內(nèi)表通過(guò)引用結(jié)構(gòu)來(lái)創(chuàng)建內(nèi)表 創(chuàng)建帶新結(jié)構(gòu)的內(nèi)表創(chuàng)建帶新結(jié)構(gòu)的內(nèi)表 696.2 創(chuàng)建內(nèi)表69 a.通過(guò)引用另一個(gè)表格來(lái)創(chuàng)建內(nèi)表通過(guò)引用另一個(gè)表格來(lái)創(chuàng)建內(nèi)表 語(yǔ)法:語(yǔ)法:DATA WITH HEADER LINE. 示例:示例: TYPES ITAB TYPE LINE OCCU

37、RS 10. DATA TAB1 TYPE ITAB. DATA TAB2 LIKE TAB1 WITH HEADER LINE.創(chuàng)建的內(nèi)表帶工作區(qū)域創(chuàng)建的內(nèi)表帶工作區(qū)域706.2 創(chuàng)建內(nèi)表70 b .通過(guò)引用結(jié)構(gòu)來(lái)創(chuàng)建內(nèi)表通過(guò)引用結(jié)構(gòu)來(lái)創(chuàng)建內(nèi)表 語(yǔ)法語(yǔ)法: DATA OCCURS WITH HEADER LINE. 示例示例: DATA FLIGHT_TAB LIKE SFLIGHT OCCURS 10.創(chuàng)建的內(nèi)表帶工作區(qū)域創(chuàng)建的內(nèi)表帶工作區(qū)域716.2 創(chuàng)建內(nèi)表71 c. 創(chuàng)建帶新結(jié)構(gòu)的內(nèi)表創(chuàng)建帶新結(jié)構(gòu)的內(nèi)表 要?jiǎng)?chuàng)建既不引用現(xiàn)有對(duì)象,也不引用現(xiàn)有行結(jié)構(gòu)的內(nèi)表要?jiǎng)?chuàng)建既不引用現(xiàn)有對(duì)象,也不引用

38、現(xiàn)有行結(jié)構(gòu)的內(nèi)表數(shù)據(jù)對(duì)象,使用數(shù)據(jù)對(duì)象,使用 DATA 語(yǔ)句,用法語(yǔ)句,用法 如下:如下:DATA: BEGIN OF OCCURS , , . END OF .726.2 創(chuàng)建內(nèi)表DATA: BEGIN OF ITAB OCCURS 10, COLUMN1 TYPE I, COLUMN2 TYPE I, COLUMN3 TYPE I, END OF ITAB.本示例創(chuàng)建內(nèi)表及其相本示例創(chuàng)建內(nèi)表及其相 應(yīng)的表格工作區(qū)域應(yīng)的表格工作區(qū)域 ITAB。736.3 使用內(nèi)表 要填充內(nèi)表要填充內(nèi)表 ,既可逐行添加數(shù)據(jù),也可復(fù)制另一個(gè)表格的,既可逐行添加數(shù)據(jù),也可復(fù)制另一個(gè)表格的內(nèi)容。要逐行填充內(nèi)表,可以

39、內(nèi)容。要逐行填充內(nèi)表,可以 使用使用 APPEND、 COLLECT或或 INSERT 語(yǔ)句。語(yǔ)句。 1、逐行填充內(nèi)表、逐行填充內(nèi)表 要將內(nèi)表僅用于存儲(chǔ)數(shù)據(jù),出于性能方面的考慮,建議要將內(nèi)表僅用于存儲(chǔ)數(shù)據(jù),出于性能方面的考慮,建議 使用使用 APPEND。 用用 APPEND 也可以創(chuàng)建序列清單。也可以創(chuàng)建序列清單。 要計(jì)算數(shù)字字段之和或要確保內(nèi)表中沒(méi)有出現(xiàn)重復(fù)條要計(jì)算數(shù)字字段之和或要確保內(nèi)表中沒(méi)有出現(xiàn)重復(fù)條目目 ,請(qǐng)使用,請(qǐng)使用 COLLECT 語(yǔ)句,它根據(jù)標(biāo)準(zhǔn)關(guān)鍵字處理行。語(yǔ)句,它根據(jù)標(biāo)準(zhǔn)關(guān)鍵字處理行。 要在內(nèi)表現(xiàn)有行之前插入新行,請(qǐng)使用要在內(nèi)表現(xiàn)有行之前插入新行,請(qǐng)使用 INSERT 語(yǔ)

40、句。語(yǔ)句。746.3.1 填充內(nèi)表語(yǔ)法:語(yǔ)法:APPEND TO|INITIAL LINE TO .COLLECT INTO .INSERT INTO|INITIAL LINE INTO INDEX .756.3.1 填充內(nèi)表2、將內(nèi)表內(nèi)、將內(nèi)表內(nèi) 容復(fù)制到另一個(gè)內(nèi)表中容復(fù)制到另一個(gè)內(nèi)表中 要將內(nèi)表要將內(nèi)表 行附加到另一個(gè)內(nèi)表中行附加到另一個(gè)內(nèi)表中 ,請(qǐng)使用,請(qǐng)使用 APPEND 語(yǔ)句的變式語(yǔ)句的變式 。 要將內(nèi)表要將內(nèi)表 行插入另一個(gè)內(nèi)表中,行插入另一個(gè)內(nèi)表中, 請(qǐng)使用請(qǐng)使用 INSERT 語(yǔ)句的變式語(yǔ)句的變式 。 要將內(nèi)表?xiàng)l目?jī)?nèi)容復(fù)要將內(nèi)表?xiàng)l目?jī)?nèi)容復(fù) 制到另一個(gè)內(nèi)表中,并且覆蓋該目制到另一

41、個(gè)內(nèi)表中,并且覆蓋該目 標(biāo)表格,請(qǐng)使用標(biāo)表格,請(qǐng)使用 MOVE 語(yǔ)句。語(yǔ)句。766.3.1 填充內(nèi)表語(yǔ)法:語(yǔ)法: 附加內(nèi)表行:附加內(nèi)表行:APPEND LINES OF FROM TO TO . 插入內(nèi)表:插入內(nèi)表:INSERT LINES OF FROM TO INTO INDEX . 復(fù)制內(nèi)表:復(fù)制內(nèi)表:MOVE TO . = .源內(nèi)表源內(nèi)表起始行起始行結(jié)束行結(jié)束行目的內(nèi)表目的內(nèi)表索引索引776.3.2 讀取內(nèi)表1.逐行讀取內(nèi)表逐行讀取內(nèi)表:LOOP AT INTO FROM TO WHERE . .ENDLOOP.內(nèi)表內(nèi)表工作區(qū)工作區(qū)過(guò)濾條件過(guò)濾條件786.3.2 讀取內(nèi)表2.用索引讀取

42、單行:用索引讀取單行:READ TABLE INTO INDEX . 說(shuō)明:說(shuō)明: 用用 INTO 選項(xiàng)指定目標(biāo)區(qū)域選項(xiàng)指定目標(biāo)區(qū)域 。 如果表格有表頭行,可以忽略如果表格有表頭行,可以忽略 INTO 選項(xiàng)。這樣選項(xiàng)。這樣 ,表格工作,表格工作 區(qū)域就成了目標(biāo)區(qū)域。系統(tǒng)用索引區(qū)域就成了目標(biāo)區(qū)域。系統(tǒng)用索引 從表格從表格 中讀取行。中讀取行。 這比用關(guān)鍵字訪問(wèn)表格要快。這比用關(guān)鍵字訪問(wèn)表格要快。796.3.2 讀取內(nèi)表3.讀取有關(guān)鍵字的單行:讀取有關(guān)鍵字的單行:語(yǔ)法:語(yǔ)法: a.用自定義關(guān)鍵字讀取單行:用自定義關(guān)鍵字讀取單行:READ TABLE INTO WITH KEY BINARY SEA

43、RCH. b.讀取有標(biāo)準(zhǔn)關(guān)鍵字的單行:讀取有標(biāo)準(zhǔn)關(guān)鍵字的單行:READ TABLE INTO BINARY SEARCH.806.3.2 讀取內(nèi)表4.讀取部分單行:讀取部分單行:語(yǔ)法:語(yǔ)法:READ TABLE INTO TRANSPORTING .816.3.2 讀取內(nèi)表5.確定內(nèi)表屬性:確定內(nèi)表屬性: 如果在處理過(guò)程中想知道內(nèi)表一共包含多少行如果在處理過(guò)程中想知道內(nèi)表一共包含多少行 ,或者想,或者想知道定義的知道定義的 OCCURS 參數(shù)的大小,請(qǐng)使用參數(shù)的大小,請(qǐng)使用DESCRIBE語(yǔ)句,語(yǔ)句,用法如下:用法如下:DESCRIBE TABLE LINES OCCURS .826.3.3

44、更改內(nèi)表語(yǔ)法:語(yǔ)法:MODIFY FROM INDEX .WRITE +() TO +() INDEX .836.3.4 刪除內(nèi)表語(yǔ)法:語(yǔ)法: 1.在循環(huán)中刪除在循環(huán)中刪除DELETE . 2.用索引刪除用索引刪除DELETE INDEX . 3.刪除鄰近的重復(fù)項(xiàng)目刪除鄰近的重復(fù)項(xiàng)目DELETE ADJACENT DUPLICATE ENTRIES FROM COMPARING . 4.刪除選定行刪除選定行DELETE FROM TO WHERE .846.3.5 內(nèi)表排序84語(yǔ)法:語(yǔ)法:SORT AS TEXTBY AS TEXT . AS TEXT. 856.3.6 初始化內(nèi)表語(yǔ)法:語(yǔ)法:

45、 1.清除內(nèi)表內(nèi)容清除內(nèi)表內(nèi)容 REFRESH . 2.清除工作區(qū)域清除工作區(qū)域 CLEAR . 3.釋放內(nèi)表占用釋放內(nèi)表占用的內(nèi)存的內(nèi)存 FREE .86第七章 單界面REPORT877.1 單界面REPORT 單界面單界面REPORT分為分為2個(gè)屏幕:個(gè)屏幕: 查詢條件選擇查詢條件選擇 數(shù)據(jù)輸出屏幕。數(shù)據(jù)輸出屏幕。 選擇屏幕選擇屏幕887.1 單界面REPORT數(shù)據(jù)輸出屏幕數(shù)據(jù)輸出屏幕897.2 編寫(xiě)單界面REPORT 單界面單界面REPORT程序分為程序分為4大部分:大部分: 1、數(shù)據(jù)定義數(shù)據(jù)定義。表聲明,常量、變量定義,內(nèi)表以及結(jié)構(gòu)定義。表聲明,常量、變量定義,內(nèi)表以及結(jié)構(gòu)定義。 2、

46、查詢條件屏幕查詢條件屏幕 。 查詢參數(shù)的屏幕輸出,包括單選和多選查詢參數(shù)的屏幕輸出,包括單選和多選2種。種。 3、數(shù)據(jù)查詢數(shù)據(jù)查詢。根據(jù)輸入的查詢參數(shù),篩選出符合條件的數(shù)據(jù)。根據(jù)輸入的查詢參數(shù),篩選出符合條件的數(shù)據(jù)。 4、數(shù)據(jù)輸出界面數(shù)據(jù)輸出界面 。 907.2 編寫(xiě)單界面REPORT 1、數(shù)據(jù)定義、數(shù)據(jù)定義 聲明表聲明表(結(jié)構(gòu)結(jié)構(gòu))定義內(nèi)表定義內(nèi)表917.2 編寫(xiě)單界面REPORT 2、查詢條件選擇、查詢條件選擇 單選參數(shù)單選參數(shù)多選參數(shù)多選參數(shù)927.2 編寫(xiě)單界面REPORT 效果:效果: 937.2 編寫(xiě)單界面REPORT 3、查詢條件選擇、查詢條件選擇 根據(jù)查詢條件查詢數(shù)根據(jù)查詢條件

47、查詢數(shù)據(jù),并放入內(nèi)表?yè)?jù),并放入內(nèi)表947.2 編寫(xiě)單界面REPORT 4、數(shù)據(jù)輸出、數(shù)據(jù)輸出 循環(huán)內(nèi)表,輸出數(shù)據(jù)循環(huán)內(nèi)表,輸出數(shù)據(jù)957.3 REPORT基本語(yǔ)法 1、 PARAMETERS 語(yǔ)句基本格式:語(yǔ)句基本格式:PARAMETERS () DEFAULT NO-DISPALY LOWER CASE OBLIGATORY AS CHECKBOX.分配缺省值分配缺省值禁止參數(shù)顯示禁止參數(shù)顯示允許接受大小寫(xiě)允許接受大小寫(xiě)參數(shù)必輸參數(shù)必輸創(chuàng)建復(fù)選框創(chuàng)建復(fù)選框967.3 REPORT基本語(yǔ)法 說(shuō)明:說(shuō)明: 該語(yǔ)句創(chuàng)建參數(shù)該語(yǔ)句創(chuàng)建參數(shù) 。附加項(xiàng)附加項(xiàng) 、 和和 與與DATA 語(yǔ)語(yǔ)句相同。用戶啟動(dòng)

48、報(bào)表程序時(shí),句相同。用戶啟動(dòng)報(bào)表程序時(shí), 的輸入字段將出現(xiàn)在選擇屏幕中。的輸入字段將出現(xiàn)在選擇屏幕中。 您可以如您可以如選擇文本選擇文本中描述中描述的那樣通過(guò)使用文字摘要來(lái)更改輸入字段左側(cè)的說(shuō)明的那樣通過(guò)使用文字摘要來(lái)更改輸入字段左側(cè)的說(shuō)明。977.3 REPORT基本語(yǔ)法 2.、在選擇屏幕上創(chuàng)建單選按鈕組:、在選擇屏幕上創(chuàng)建單選按鈕組: 語(yǔ)法:語(yǔ)法:PARAMETERS . RADIOBUTTON GROUP . 示例:示例:PARAMETERS: R1 RADIOBUTTON GROUP RAD1, R2 RADIOBUTTON GROUP RAD1 DEFAULT X, R3 RADIO

49、BUTTON GROUP RAD1, S1 RADIOBUTTON GROUP RAD2, S2 RADIOBUTTON GROUP RAD2, S3 RADIOBUTTON GROUP RAD2 DEFAULT X.987.3 REPORT基本語(yǔ)法組組1組組2997.3 REPORT基本語(yǔ)法99 2.、SELECT-OPTIONS 語(yǔ)句基本格式:語(yǔ)句基本格式:語(yǔ)法語(yǔ)法:SELECT-OPTIONS FOR DEFAULT TO NO INTERVALSNO-DISPALYLOWER CASEOBLIGATORY.說(shuō)明:說(shuō)明:該語(yǔ)句創(chuàng)建選擇表該語(yǔ)句創(chuàng)建選擇表 ,該表與數(shù)據(jù)庫(kù)表的列該表與數(shù)據(jù)庫(kù)表

50、的列 或內(nèi)部或內(nèi)部字段字段 相連接。該數(shù)據(jù)庫(kù)表必須在程序中用相連接。該數(shù)據(jù)庫(kù)表必須在程序中用 TABLES 語(yǔ)句聲明。語(yǔ)句聲明。 名稱名稱 最多可以包含最多可以包含 8 個(gè)字符。個(gè)字符。限制為單值限制為單值禁止參數(shù)顯示禁止參數(shù)顯示允許參數(shù)大小寫(xiě)允許參數(shù)大小寫(xiě)參數(shù)必輸參數(shù)必輸1007.3 REPORT基本語(yǔ)法100 3、格式化選擇屏幕:、格式化選擇屏幕: 要格式化選擇屏幕,請(qǐng)使用要格式化選擇屏幕,請(qǐng)使用 SELECTION-SCREEN 語(yǔ)句,語(yǔ)句,該語(yǔ)句使用戶能指定在選擇屏幕上參數(shù)和選擇標(biāo)準(zhǔn)格式。該語(yǔ)句使用戶能指定在選擇屏幕上參數(shù)和選擇標(biāo)準(zhǔn)格式。使用使用SELECTION-SCREEN 語(yǔ)句的

51、各種選項(xiàng),可以做下列工作語(yǔ)句的各種選項(xiàng),可以做下列工作 : 1.指定空行、下劃線和注釋指定空行、下劃線和注釋 2.將幾個(gè)元素放在一行上將幾個(gè)元素放在一行上 3.定位元素定位元素 4.創(chuàng)建元素塊創(chuàng)建元素塊 5.在應(yīng)用工具條中創(chuàng)建按鈕在應(yīng)用工具條中創(chuàng)建按鈕 6.在選擇屏幕上創(chuàng)建按鈕在選擇屏幕上創(chuàng)建按鈕1017.3 REPORT基本語(yǔ)法101 1. 指定空行、指定空行、 下劃線和注釋下劃線和注釋 a.空行:空行:SELECTION-SCREEN SKIP . b.下劃線:下劃線:SELECTION-SCREEN ULINE / MODIF ID . c.注釋:注釋:SELECTION-SCREEN

52、COMMENT / FOR FIELD MODIF ID .1027.3 REPORT基本語(yǔ)法102 2. 將幾個(gè)元素放在同一行將幾個(gè)元素放在同一行 將參數(shù)或注釋集合定將參數(shù)或注釋集合定 位在選擇屏幕的一行上位在選擇屏幕的一行上 ,必須在由下,必須在由下列兩條語(yǔ)句封閉的塊中聲明元素列兩條語(yǔ)句封閉的塊中聲明元素 :語(yǔ)法:語(yǔ)法:SELECTION-SCREEN BEGIN OF LINE. .SELECTION-SCREEN END OF LINE.1037.3 REPORT基本語(yǔ)法103示例:示例:SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN

53、COMMENT 1(10) TEXT-001. PARAMETERS: P1(3), P2(5), P3(1).SELECTION-SCREEN END OF LINE.P1P2P31047.3 REPORT基本語(yǔ)法104 3. 定位元素定位元素 語(yǔ)法:語(yǔ)法:SELECTION-SCREEN POSITION . 示例:示例:SELECT-OPTIONS AIRLINE FOR SPFLI-CARRID.SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION POS_HIGH. PARAMETERS FIELD(5).SELECTIO

54、N-SCREEN END OF LINE.1057.3 REPORT基本語(yǔ)法105參數(shù)參數(shù)FIELD1067.3 REPORT基本語(yǔ)法106 4. 創(chuàng)建元素塊創(chuàng)建元素塊 語(yǔ)法:語(yǔ)法:SELECTION-SCREEN BEGIN OF BLOCK WITH FRAME TITLE NO INTERVALS. .SELECTION-SCREEN END OF BLOCK .元素塊元素塊1077.3 REPORT基本語(yǔ)法107 5. 在應(yīng)用工具條創(chuàng)建按鈕在應(yīng)用工具條創(chuàng)建按鈕 在選擇屏幕在選擇屏幕 的應(yīng)用工具條中最多可以創(chuàng)建的應(yīng)用工具條中最多可以創(chuàng)建 5 個(gè)按鈕。這些個(gè)按鈕。這些按鈕自動(dòng)與功能鍵相連接

55、。語(yǔ)法如下所示:按鈕自動(dòng)與功能鍵相連接。語(yǔ)法如下所示:SELECTION-SCREEN FUNCTION KEY . 必須在必須在 1 到到 5 之間。必須在之間。必須在 ABAP/4 詞典字段詞典字段SSCRFIELDS-FUNCTXT_0 中指定要在運(yùn)行時(shí)間出現(xiàn)在按中指定要在運(yùn)行時(shí)間出現(xiàn)在按鈕上的文本。鈕上的文本。1087.3 REPORT基本語(yǔ)法1081097.3 REPORT基本語(yǔ)法109 6. 在選擇屏幕創(chuàng)建按鈕在選擇屏幕創(chuàng)建按鈕 要在選擇屏幕上創(chuàng)建按鈕,可以與要在選擇屏幕上創(chuàng)建按鈕,可以與PUSHBUTTON 參數(shù)一參數(shù)一起使用起使用 SELECTION-SCREEN 語(yǔ)句。語(yǔ)法如

56、下:語(yǔ)句。語(yǔ)法如下:SELECTION SCREEN PUSHBUTTON / USER-COMMAND MODIF ID .1107.3 REPORT基本語(yǔ)法基本語(yǔ)法110 7. 頁(yè)眉和頁(yè)腳頁(yè)眉和頁(yè)腳 頁(yè)眉:頁(yè)眉: TOP-OF-PAGE. WRITE: . 頁(yè)腳:頁(yè)腳: END-OF-PAGE. WRITE: .頁(yè)眉頁(yè)眉111第八章第八章 交互式報(bào)表交互式報(bào)表1111128.1 什么是什么是交互式報(bào)表交互式報(bào)表 傳統(tǒng)的、非交互式報(bào)表由創(chuàng)建單個(gè)列表的一個(gè)程序組成。這意味著啟動(dòng)報(bào)表傳統(tǒng)的、非交互式報(bào)表由創(chuàng)建單個(gè)列表的一個(gè)程序組成。這意味著啟動(dòng)報(bào)表之后之后 ,它創(chuàng)建的列表必須包含所有要求的數(shù)據(jù),

57、而不管用戶想查看的細(xì)節(jié)的數(shù),它創(chuàng)建的列表必須包含所有要求的數(shù)據(jù),而不管用戶想查看的細(xì)節(jié)的數(shù)目。目。 交互式報(bào)表允許用戶在會(huì)話期間積交互式報(bào)表允許用戶在會(huì)話期間積 極參與檢索和提出數(shù)據(jù)。交互式報(bào)表創(chuàng)建極參與檢索和提出數(shù)據(jù)。交互式報(bào)表創(chuàng)建的不是一個(gè)擴(kuò)展的不是一個(gè)擴(kuò)展 的和詳細(xì)的列表,而是一個(gè)精簡(jiǎn)的基本列表,通過(guò)定位光標(biāo)并的和詳細(xì)的列表,而是一個(gè)精簡(jiǎn)的基本列表,通過(guò)定位光標(biāo)并輸入命令,用戶可以從該列表中調(diào)用詳細(xì)信息。因此,交互式報(bào)表減少了實(shí)際需輸入命令,用戶可以從該列表中調(diào)用詳細(xì)信息。因此,交互式報(bào)表減少了實(shí)際需要檢索的數(shù)據(jù)信息。要檢索的數(shù)據(jù)信息。 交互式報(bào)表還允許從列交互式報(bào)表還允許從列 表中調(diào)用

58、事務(wù)和其它報(bào)表。然后,這些程序?qū)@示在表中調(diào)用事務(wù)和其它報(bào)表。然后,這些程序?qū)@示在列表中的值用作輸入值。列表中的值用作輸入值。 1121138.2 交互式報(bào)表的事件控制交互式報(bào)表的事件控制113下列事件是交互式列表環(huán)境特有的下列事件是交互式列表環(huán)境特有的 : AT LINE-SELECTION AT PF AT USER-COMMAND允許行選擇允許行選擇允許功能鍵選擇允許功能鍵選擇響應(yīng)功能代碼事件響應(yīng)功能代碼事件1148.3 頁(yè)眉和頁(yè)腳頁(yè)眉和頁(yè)腳114交互式報(bào)表次列表的頁(yè)眉交互式報(bào)表次列表的頁(yè)眉TOP-OF-PAGE DURING LINE-SELECTION. 說(shuō)明:說(shuō)明: 對(duì)每個(gè)次列表

59、,系統(tǒng)都觸發(fā)該事件對(duì)每個(gè)次列表,系統(tǒng)都觸發(fā)該事件 。如果要為不同列表級(jí)創(chuàng)建不同的頁(yè)眉,。如果要為不同列表級(jí)創(chuàng)建不同的頁(yè)眉,必須相應(yīng)地編寫(xiě)該事件的處理塊,例如必須相應(yīng)地編寫(xiě)該事件的處理塊,例如 ,通過(guò)使用系統(tǒng)字段,通過(guò)使用系統(tǒng)字段, 如控制語(yǔ)句(如控制語(yǔ)句(IF IF 和和CASECASE) 中的中的 SY-LSIND SY-LSIND 或或 SY-PFKEYSY-PFKEY。用戶垂直滾動(dòng)次列表時(shí)用戶垂直滾動(dòng)次列表時(shí) ,系統(tǒng)將,系統(tǒng)將保留頁(yè)眉而只保留頁(yè)眉而只 滾動(dòng)頁(yè)眉下面的列表行滾動(dòng)頁(yè)眉下面的列表行 。1158.4 列表中的消息列表中的消息115 在程序中使用在程序中使用MESSAGE 語(yǔ)句靜態(tài)

60、或語(yǔ)句靜態(tài)或 動(dòng)態(tài)地輸出信息,并確定信息類型動(dòng)態(tài)地輸出信息,并確定信息類型 。如果要靜態(tài)如果要靜態(tài) 地使用程序中特定標(biāo)識(shí)地使用程序中特定標(biāo)識(shí) 的消息,請(qǐng)使用的消息,請(qǐng)使用REPORT 或或PROGRAM 語(yǔ)語(yǔ)句的句的MESSAGE-ID 選項(xiàng):選項(xiàng):語(yǔ)法:語(yǔ)法:REPORT MESSAGE-ID . 由于該語(yǔ)句的作用,報(bào)表由于該語(yǔ)句的作用,報(bào)表 rep 可以使用存儲(chǔ)標(biāo)識(shí)可以使用存儲(chǔ)標(biāo)識(shí) id 下表格下表格 T100 T100 中的中的所有消息。如果動(dòng)態(tài)地指定消息標(biāo)識(shí),則可以忽略此選項(xiàng)。所有消息。如果動(dòng)態(tài)地指定消息標(biāo)識(shí),則可以忽略此選項(xiàng)。要靜態(tài)地指定消息號(hào),要靜態(tài)地指定消息號(hào), 請(qǐng)使用:請(qǐng)使用:

溫馨提示

  • 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)論