日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ABAP基础

發(fā)布時(shí)間:2025/3/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP基础 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)類(lèi)型
C :字符串
D :日期型 格式為 YYYYMMDD? 例:'1999/12/03'
F : 浮點(diǎn)數(shù)? 長(zhǎng)度為8
I :整數(shù)
N :數(shù)值組成的字符串 如:011,'302'
P : PACKED數(shù) 用于小數(shù)點(diǎn)數(shù)值? 如:12.00542
T : 時(shí)間 格式為:HHMMSS 如:'14:03:00'
X : 16進(jìn)制數(shù) 如:'1A03'
*-------------------------------------------------------------------------------------*
變數(shù)宣告

DATA <F> [<Length>] <type> [<value>][decimals]
???? <F> 變數(shù)名稱(chēng)
???? <length><type> 變數(shù)類(lèi)型 及 長(zhǎng)度
???? <value> 初值
???? <decimals> 小數(shù)位數(shù)
????
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.
?另外,有關(guān)DATA宣告的指令還有: CONSTANTS(宣告常數(shù))STATICS(臨時(shí)變數(shù)宣告).
exp:
?CONSTANTS? PI? TYPE? P? DECIMALS? 5? VALUE? '3.14159'.
?STATICS 敘述
?宣告的變數(shù)僅在目前的程式中使用, 結(jié)束后會(huì)自動(dòng)釋放
?語(yǔ)法:?
??????? STATICS <c> [<length>] <type> [<value>] [<decimals>]
?
系統(tǒng)專(zhuān)用變數(shù)說(shuō)明
?? 系統(tǒng)內(nèi)部專(zhuān)門(mén)創(chuàng)建了SYST這個(gè)STRUCTURE,里面的欄位存放系統(tǒng)變數(shù),常用的系統(tǒng)變數(shù)有:
?? SY-SUBRC :? 系統(tǒng)執(zhí)行某指令后,表示執(zhí)行成功與否的變數(shù),'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 code
?? SY-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 NUMBER
?? SY-VLINE:? 畫(huà)豎線(xiàn)
?? SY-ULINE:? 畫(huà)橫線(xiàn)
??
TYPE 敘述
? 用來(lái)指定資料型態(tài)或宣告自定資料型態(tài)
? 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 用在已有值的資料項(xiàng), 如系統(tǒng)變數(shù), 而TYPE敘述則是用
?? 在指定資料型態(tài)
??
*-------------------------------------------------------------------------------------*
輸出

一. WRITE 語(yǔ)句
ABAP/4用來(lái)在屏幕上輸出資料的指令是WRITE指令,例如:
???? WRITE: 'USER NAME IS:', SY-UNAME.
二. 指定屏幕輸出位置
指定輸出位置的語(yǔ)句格式為:
????? WRITE: [AT] [ / ] [<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:20
????????? USING NO EDIT MASK: 不使用內(nèi)嵌子元
????????? NO-ZERO:??????? 數(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/MM
????????? MM/DD/YYYY:
????????? DD/MM/YYYY
????????? YYYY/MM/DD:
????????? YYYY/DD/MM:
例如1: WRITE: /10(6) 'ABCDEFGHIJK'.
輸出結(jié)果為:??????? ABCDEF
例如2: DATA: X TYPE I VALUE '112030',
???????????? A(5)? TYPE C VALUE 'AB?? CDE'.
????? WRITE: / X USING EDIT MASK '__:__:__'.
????? WRITE: / X USING EDIT MASK '$___,___'.
????? WRITE: / Y NO-GAP.
輸出結(jié)果為:
??????? 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 語(yǔ)句的基本 形式
要將值(文 字)或源字 段內(nèi)容寫(xiě)入 目標(biāo)字段, 可以使用 WRITE TO 語(yǔ)句:
語(yǔ)法
WRITE <F1> TO <F2> [<option>].

DATA: NUMBER TYPE F VALUE '4.3',
????? TEXT(10),
????? FLOAT TYPE F,
????? PACK? TYPE P DECIMALS 1.
WRITE NUMBER.
WRITE NUMBER 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.
COMPUTE COUNTER = COUNTER + 1.
COUNTER = COUNTER + 1.
ADD 1 TO COUNTER.
在此,三條 運(yùn)算語(yǔ)句進(jìn) 行相同算術(shù) 運(yùn)算

輸出屏幕上 的線(xiàn)和空行

用下列語(yǔ)法 ,可以在輸 出屏幕上生 成水平線(xiàn):
語(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)始新 的一行,并 用水平線(xiàn)填 充該行否 則,只按指 定輸出水平 線(xiàn)
生成水平線(xiàn) 的另一種方 法,是在 WRITE 語(yǔ)句中鍵入 恰當(dāng)數(shù)量的 連字符,如 下所示:
WRITE [AT [/][<pos>][(<len>)]] '-----...'.
垂直線(xiàn)
用下列語(yǔ)法 ,可以在輸 出屏幕上生 成垂直線(xiàn):
語(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 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)及圖示,可選擇'EDIT'下的'Insert Statement',選擇'Write',接下來(lái)選擇要查看的群組,如SYMBOL 或ICON, 接下來(lái)按'Display'即可.
*-------------------------------------------------------------------------------------*

一.?Internal Table 的宣告
ABAP/4中的Internal Table是一種Data Structure,類(lèi)似于其他語(yǔ)言中的STRUTURE,它可以由幾個(gè)不同類(lèi)型的欄位(field)組成,用來(lái)表示具有不同屬性的某一事物,單獨(dú)一筆資料表示某個(gè)事物,多筆資料表示具有相同屬性的多個(gè)事物.

Internal table 的定義有以下幾種格式:
格式一.?? 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>.
???? 語(yǔ)法:
?????????? DATA? <f>? <type>? OCCURS? <n>? [WITH? HEADER? LINE]
?????????? Example:
?????????????????? DATA? VECTOR? TYPE? I? OCCURS? 10? WITH? HEADER? LINE.
??????????????????
格式二.?? 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 <table 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 VECTOR,
????????? TABLE2 TYPE ITAB,
?????? END OF DEEPLINE.
TYPES DEEPTABLE TYPE DEEPLINE OCCURS 10.
本示例創(chuàng)建 與上例相同 的內(nèi)表數(shù)據(jù) 類(lèi)型(VECTOR 和 ITAB) 然后創(chuàng)建 數(shù)據(jù)類(lèi)型 DEEPLINE 作為字段串 ,包含這些 內(nèi)表作為組 件通過(guò)該 字段串,數(shù) 據(jù)類(lèi)型 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 10.
DATA TAB1 TYPE ITAB.
DATA TAB2 LIKE TAB1 WITH HEADER LINE.
同 創(chuàng)建內(nèi)表數(shù) 據(jù)類(lèi)型 (頁(yè) 99) 中所示,該 示例創(chuàng)建數(shù) 據(jù)類(lèi)型 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 OCCURS 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ù) 類(lèi)型 VECTOR_TYPE, 其行包含首 先創(chuàng)建的基 本類(lèi)型 I 字段然后 ,通過(guò)引用 VECTOR_TYPE 創(chuàng)建數(shù)據(jù)對(duì) 象 VECTOR 通過(guò)使用 WITH HEADER LINE 選項(xiàng)還創(chuàng)建 表格工作區(qū) 域 VECTOR 在這種情況 下,表格工 作區(qū)域包含 一種類(lèi)型 I 字段,可以 通過(guò)名稱(chēng) VECTOR 定位
DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.
在這種情況 下,通過(guò)直 接在 DATA 語(yǔ)句中使用 OCCURS 選項(xiàng)創(chuàng)建完 全一樣的數(shù) 據(jù)類(lèi)型 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 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.
DO 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 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.

舉例三. (加入另一個(gè)Internal table的元素)
?????? 格式: APPEND LINES OF <itab1> [FROM <n1> ] [TO <n2>] TO <itab2>.
?????? 將<itab1>的元素加入至<itab2>中,可選取自<n1>至<n2>的范圍.
?????? APPEND LINES OF ITAB TO JTAB.

COLLECT LINE
COLLECT 指令也是將元素加入Internal table中,與APPEND 的區(qū)別是: COLLECT指令在非數(shù)值欄位相同的情況下,將數(shù)值欄位匯總.
格式:? COLLECT [<work area> INTO ] <itab>
DATA: BEGIN OF ITAB OCCURS 3,
???????????? COL1(3)? TYPE C,
???????????? COL2???? TYPE I,
?????? END OF ITAB.
?????? ITAB-COL1 = 'ABC'.??? ITAB-COL2 = 10.
?????? COLLECT? ITAB.
?????? ITAB-COL1 = 'XYZ'.??? ITAB-COL2 = 20.
?????? COLLECT? ITAB.
?????? ITAB-COL1 = 'ABC'.??? ITAB-COL2 = 80.
?????? COLLECT? ITAB.
此時(shí), internal table中放的是2筆數(shù)據(jù), 分別為:
?????? ITAB-COL1??????? ITAB-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>即work area,工作區(qū)中的元素.
[INITIAL LINE INTO] :插入一筆初始化的記錄.
<itab>: internal table
[INDEX <idx>]: internal table 的記錄號(hào).(新加入的元素放在此記錄前面)

???????? Example:
????????????????? DATA:? BEGIN? OF? LINE,
?????????????????????????? COL1? TYPE? I,
?????????????????????????? COL2? TYPE? I,
?????????????????????????? END? OF? LINE.
????????????????? DATA? ITAB? LIKE? LINE? OCCURS? 10.
????????????????? DO? 3? TIMES.
???????????????????? LINE-COL1 = SY-INDEX *10.
???????????????????? LINE-COL2 = SY-INDEX *20.
???????????????????? APPEND? LINE? INTO? ITAB.
????????????????? ENDDO.
????????????????? LINE-COL1=100.
????????????????? LINE-COL2=200.
????????????????? INSERT? LINE? INTO? ITAB? INDEX? 2.? "插入在位置2之前
????????????????? LOOP? AT? ITAB? INTO? LINE.
??????????????????? WRITE:? /? SY-TABIX,LINE-COL1,LINE-COL2. "SY-TABIX為T(mén)able位置
???????????????? ENDLOOP.
???????????????? 執(zhí)行結(jié)果:
??????????????????????????? 1??????? 10?????? 20
??????????????????????????? 2?????? 100????? 200? "插入的元素
??????????????????????????? 3??????? 20?????? 40
??????????????????????????? 4??????? 30?????? 60
?
插入另一Internal Table元素
?? 語(yǔ)法:
???????? INSERT? LINES? OF? <itab1>? [FROM <n1> TO <n2>]? TO? <itab2>? INDEX <idx>
??????? 將<itab1>的元素插入至<itab2>中, 位置在 <idx>之前, 可選取自<n1>至<n2>的范圍
???????? Example:
????????????????? APPEND? LINES? OF? ITAB? TO? JTAB? INDEX? 3.
????????????????? 將ITAB所有元素插入JTAB中, 位置在第三個(gè)元素之前
*-------------------------------------------------------------------------------------*
讀取internal table
格式一:
LOOP AT <itab> [INTO <wa>][FROM <n1> TO <n2>][WHERE <conditions>]
?????? <statement>
ENDLOOP.

???????? Example:
????????????????? LOOP? AT? ITAB? INTO? LINE? WHERE? COL1 >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-INDEX.
????????? ITAB-COL2 = SY-INDEX * 2.
????????? APPEND ITAB.
ENDDO.
READ TABLE ITAB INDEX 3.
(或者: READ TABLE? ITAB WITH KEY COL1 = 3.)
WRITE: / 'ITAB-COL1 = ', ITAB-COL1, 'ITAB-COL2 = ', ITAB-COL2.
執(zhí)行結(jié)果同樣是:
ITAB-COL1 =????? 3
ITAB-COL2 =????? 6.

???????? Example:
?????????????????? READ? TABLE? ITAB? INTO? LINE? INDEX? 5
?????????????????? 讀取 ITAB的第5個(gè)元素資料, 放入 LINE的欄位中

根據(jù)欄位內(nèi)容尋找
?? 語(yǔ)法:
????????? READ? TABLE? <itab>? INTO? <wa>
????????? Example:
????????????????? ITAB-COL1 = 'ABC'.
????????????????? READ? TABLE? ITAB? INTO? LINE.
????????????????? 找出ITAB 中 COL1 欄位內(nèi)容是 ABC 的元素, 找到的值放入 LINE 中
????????????????? 若找到 SY-SUBRC傳回0, 找不到則傳回 4, <itab>必須宣告有 work area
*-------------------------------------------------------------------------------------*

修改internal table 中的值
格式: MODIFY <itab> [FROM <wa>][INDEX <idx>][TRANSPORTING <f1><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> INDEX <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:
???????????????? SORT? ITAB? DESCENDING? BY? COL2.
???????????????? 將 ITAB 根據(jù) COL2欄位遞減排序
*-------------------------------------------------------------------------------------*
確定內(nèi)表屬 性
如果在處理 過(guò)程中想知 道內(nèi)表一共 包含多少行 ,或者想知 道定義的 OCCURS 參數(shù)的大小 ,請(qǐng)使用 DESCRIBE 語(yǔ)句,用法 如下:
語(yǔ)法
DESCRIBE TABLE <itab> [LINES <lin>] [OCCURS <occ>].
如果使用 LINES 參數(shù),則將 填充行的數(shù) 量寫(xiě)入變量 <lin> 如果使用 OCCURS 參數(shù),則將 行的初始號(hào) 寫(xiě)入變量 <occ>
?
DATA: BEGIN OF LINE,
???????? COL1 TYPE I,
???????? COL2 TYPE I,
????? END OF LINE.
DATA ITAB LIKE LINE OCCURS 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.
其輸出為:
???????? 0???????? 10
???? 1.000???????? 10
在此創(chuàng)建內(nèi) 表 ITAB 在填充表格 前后執(zhí)行 DESCRIBE 語(yǔ)句更改 當(dāng)前行號(hào), 但無(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 table

REFRESH <itab>.? 清空<itab>中的值.使用在沒(méi)有 HEADER LINE 的 Internal Table中, 清除所有元素
CLEAR?? <itab>.? 清空<itab>的Header Line.使用在有 HEADER LINE 的 Internal Table中, 清除所有元素
FREE???? <itab>.? 釋放記憶體空間.釋放(Release) Internal Table所占的記憶體空間, 用在 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.
輸出為:
??????? 10
???????? 0
CLEAR 語(yǔ)句將字段 NUMBER 的內(nèi)容從10 重置為默認(rèn) 值 0
*-------------------------------------------------------------------------------------*

? ?添加字段 順序并將結(jié) 果賦給另一 個(gè)字段
語(yǔ)法
ADD <n1> THEN <n2> UNTIL <nz> GIVING <m>.
如果 <n1> <n2> ... <nz> 是在內(nèi)存中 相同類(lè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)其它相 似變體的信 息,參見(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 SUM.
WRITE / SUM.
輸出如下:
?????? 150
?????? 350
在此,將 N1 到 N5 組件內(nèi)容求 和并將其值 賦給字段 SUM然 后,將 N2 到 N6組件求 和并將其添 加到 SUM 的值中
*-------------------------------------------------------------------------------------*
?????????
屏幕輸入命令

ABAP/4中要從螢?zāi)惠斎胱兞? 使用的命令是 PARAMETERS 及SELECTION-OPTIONS:
??? 1. PARAMETER: 輸入一個(gè)變量或欄位內(nèi)容
??? 2. SELECTION-OPTIONS: 使用條件篩選畫(huà)面來(lái)輸入數(shù)據(jù)???

PARAMETERS 指令
基本的輸入命令, 類(lèi)似如BASIC的INPUT命令, 但無(wú)法使用F格式(浮點(diǎn)數(shù))
??? 語(yǔ)法:
??????? PARAMETERS? <p>? [DEFAULT <f>]? [LOWER CASE]
?????????????????????????? [OBLIGATORY]? [AS CHECKBOX]
?????????????????????????? [RADIOBUTTON GROUP <rad>]
?????? Example:
??????????? PARAMETERS:? NAME(8),
?????????????????????????? AGE? TYPE? I,
?????????????????????????? BIRTH? TYPE? 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)? DEFAULT? 'DELTA',
?????????????????? BIRTH? TYPE? D? DEFAULT? '19650201'.
2.?? LOWER CASE
???? ABAP/4預(yù)設(shè)是將字串輸入值自動(dòng)轉(zhuǎn)換為大寫(xiě), 加上此參數(shù)會(huì)將輸入的資料轉(zhuǎn)成小寫(xiě),
3.?? OBLIGATORY
強(qiáng)制要求輸入, 螢?zāi)簧蠒?huì)出現(xiàn)一個(gè) ? , 使用者必須要輸入才可.
4.?? AS CHECKBOX
?輸入 CHECKBOX的格式
?Example:
????????? PARAMETERS:? TAX? AS? CHECKBOX? DEFAULT 'X',
???????????????????????? NTD? AS? CHECKBOX.
????????? 執(zhí)行結(jié)果:
???
5.??? RADIOBUTTON GROUP <rad>
????? 輸入 RADIO BUTTON GROUP 的方式
????? Example:
???? PARAMETERS: BOY? RADIOBUTTON GROUP? SEX? DEFAULT 'X',????????
?????????????????? GIRL? RADIOBUTTON GROUP? SEX.
exp :
TABLES SPLFI.
PARAMETERS: LOW? LIKE SPFLI-CARRID,
??????????? HIGH LIKE SPFLI-CARRID.
SELECT * FROM SPLFI WHERE CARRID BETWEEN LOW AND HIGH.
?? ........
ENDSELECT.
*-------------------------------------------------------------------------------------*
??
SELECTION-OPTIONS
?? SELECTION-OPTIONS所輸入的值實(shí)際上是放在internal table中的,該Internal table 有四個(gè)欄位,分別是:SIGN,OPTION,LOW,HIGH.. 條件篩選檢查條件輸入畫(huà)面指令, 輸入條件后可配合SELECT指令自TABLE讀取符合條件的資料, 直接執(zhí)行或放入 Internal Table中, 條件有四個(gè)參數(shù):
1. SIGN:
???? I: 表篩選條件符合的資料
???? E: 表篩選條件不符合的資料
2. OPTION: 比較的條件符號(hào)
????????? EQ(等於),NE(不等於),GT(大於),LE(小於),CP(包含),NP(不包含)
3. LOW: 最小值
4. HIGH: 最大值
?? 語(yǔ)法:
????????? SELECTION-OPTIONS? <check-option>? FOR? <table-field>
Example:
????????? TABLES? SPFLI.
????????? SELECT-OPTIONS? AIRLINE? FOR? SPFLI-CONNID.
將條件的輸入值存放入 AIRLINE, 篩選選擇為SPFLI中的CONNID欄位

改變條件輸入格式
1.?DEFAULT? <begin>? TO? <end>
設(shè)定開(kāi)始結(jié)束范圍輸入預(yù)設(shè)值
???? Example:
???? SELECT-OPTIONS? AIRLINE? FOR? SPFLI-CONNID DEFAULT? '2042'? TO? '4555'.
2.?NO-EXTENSION
設(shè)定不要Multi-Option輸入畫(huà)面
3.?NO? INTERVALS
設(shè)定不要區(qū)間范圍輸入畫(huà)面
4.?LOWER CASE
輸入轉(zhuǎn)換成大寫(xiě)
5.?OBLIGATORY
強(qiáng)制要求輸入
*-------------------------------------------------------------------------------------*

配合 SELECT 命令
?? 條件輸入完后要將符合條件的資料篩選出來(lái), 可配合使用 SELECT 指令
?? 1.使用WHERE <條件式>
Example:
? TABLES? SPFLI.
? SELECT-OPTIONS? AIRLINE? FOR? SPFLI-CONNID.
? SELECT? *? FROM? SPFLI? WHERE? CONNID? IN? AIRLINE.
?????? WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.
? ENDSELECT.
2.使用CHECK參數(shù)
Example:
? TABLES? SPFLI.
? SELECT-OPTIONS? AIRLINE? FOR? SPFLI-CONNID.
????? SELECT? *? FROM? SPFLI.
????? CHECK? AIRLINE.
????? WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.
? ENDSELECT.
? *
exp:?
TABLES SPFLI.
SELECT-OPTIONS: S_CARRID FOR SPFLI-CARRID,
??????????????? S_CITYFR FOR SPFLI-CITYFROM,
??????????????? S_CITYTO FOR SPFLI-CITYTO,
??????????????? S_CONNID FOR SPFLI-CONNID.
SELECT * FROM SPFLI.
? CHECK: SPFLI-CARRID IN S_CARRID,
?????? SPFLI-CITYFR IN S_CITYFR,
?????? SPFLI-CITYTO IN S_CITYTO,
?????? SPFLI-CONNID IN S_CONNID.
?? WRITE: / SPFLI-CARRID, SPFLI-CONNID,
????????? SPFLI-CITYFROM, SPFLI-CITYTO.
ENDSELECT.
?
3.使用 IF IN 敘述
???? Example:
???????? SELECT-OPTIONS? AIRLINE? FOR? SPFLI-CONNID.
???????? SELECT? *? FROM? SPFLI.
??????????? IF? SPFLI-CONNID? IN? AIRLINE.
????????????? WRITE: / SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.
??????????????? ENDIF.
???????????? ENDSELECT.
*-------------------------------------------------------------------------------------*

SELECTION-SCREEN
??? 1.產(chǎn)生空白列
語(yǔ)法:
????? SELECTION-SCREEN? SKIP? [<n>]
????????? Example:
?????????????????? SELECTION-SCREEN? SKIP? 2.
?????????????????? 產(chǎn)生兩列空白列
??? 2.產(chǎn)生底線(xiàn)
語(yǔ)法:
????? SELECTION-SCREEN? ULINE? / <pos>(length)
????????? Example:
?????????????????? SELECTION-SCREEN? ULINE? /10(30).
?????????????????? 自第10格開(kāi)始產(chǎn)生長(zhǎng)度30的底線(xiàn)
?? 3.印出備注說(shuō)明
???? 語(yǔ)法:
????? SELECTION-SCREEN? COMMENT? / <pos>(length)? <name>
????????? Example:
?????????????????? REMARK = 'Pls enter your name'.
?????????????????? SELECTION-SCREEN? COMMENT? /10(30)? REMARK.
??? 4. 同一列中輸入數(shù)個(gè)資料項(xiàng)
語(yǔ)法:
????? SELECTION-SCREEN? BEGIN? OF? LINE.
????????
????? SELECTION-SCREEN? END? OF? LINE.
????? Example:
????????????? SELECTION-SCREEN? BEGIN? OF? LINE.
????????????????? SELECTION-SCREEN? POSITION 20.
????????????????? PARAMETERS? NAME(10).
????????????????? SELECTION-SCREEN? POSITION 40.
????????????????? PARAMETERS? BIRTH? TYPE? D.
????????????? SELECTION-SCREEN? END? OF? LINE.
????????????? 在20格輸入NAME內(nèi)容, 40格輸入 BIRTH的內(nèi)容

??? 5. 繪出BLOCK PANEL
語(yǔ)法:
SELECTION-SCREEN? BEGIN? OF? BLOCK? <block>
????????????????????? [WITH? FRAME? [TITLE? <title>].
????????? .
SELECTION-SCREEN? END? OF? BLOCK? <block>.
Example:
?SELECTION-SCREEN? BEGIN? OF? BLOCK? RADIO????????????????????????? WITH? FRAME .
????????????????? PARAMETER? R1? RADIOBUTTON? GROUP? GR1.
????????????????? PARAMETER? R2? RADIOBUTTON? GROUP? GR1.
????????????????? PARAMETER? R3? RADIOBUTTON? GROUP? GR1.
?????????????? SELECTION-SCREEN? END? OF? BLOCK? RADIO.?
*-------------------------------------------------------------------------------------*

SQL語(yǔ)法
???? 我們?cè)诰帉?xiě)ABAP4程式的時(shí)候,經(jīng)常需要從TABLE中根據(jù)某些條件讀取數(shù)據(jù),.讀取數(shù)據(jù)最常用的方法就是通過(guò)SQL語(yǔ)法實(shí)現(xiàn)的.
ABAP/4中可以利用SQL語(yǔ)法創(chuàng)建或讀取TABLE,SQL語(yǔ)法分為DDL(DATA DEFINE LANGUAGE)語(yǔ)言和DML(DATA MULTIPULATION LANGUAGE)語(yǔ)言,DDL語(yǔ)言是指數(shù)據(jù)定義語(yǔ)言,例如CREATE等, DML語(yǔ)言是數(shù)據(jù)操作語(yǔ)言,例如SELECT, INSERT等語(yǔ)句. SQL語(yǔ)句有OPEN SQL語(yǔ)句和NATIVE SQL語(yǔ)句.? OPEN SQL語(yǔ)句不是標(biāo)準(zhǔn)SQL語(yǔ)句,是ABAP/4語(yǔ)言,利用OPEN SQL語(yǔ)句能在Databases 和 Command 之間產(chǎn)生一個(gè)BUFFER,所以它有一個(gè)語(yǔ)言轉(zhuǎn)換的過(guò)程.
而NATIVE SQL語(yǔ)句則是標(biāo)準(zhǔn)的SQL語(yǔ)句, 它直接針對(duì)Databases操作.

OPEN SQL

SELECT語(yǔ)句
語(yǔ)法格式:
SELECT <result> [INTO <target>] [FROM <source>] [WHERE <condition>]
?????????????? [GROUP BY <fields>] [ORDER BY <sort order>]
?其中: <result>指定要抓取的欄位
????? <target>將讀取的記錄存放在work area中
????? <source>指定從那個(gè)TABLE中讀取資料
????? <condition>抓取資料的條件
????? <fields>指定按那些欄位分組
????? <sort order>排序的欄位及方式
相關(guān)的系統(tǒng)變量:
???? SY-SUBRC = 0? 表示讀取數(shù)據(jù)成功
?????????????? <> 0 表示未找到符合條件的記錄
???? SY-DBLNT: 被處理過(guò)的記錄的筆數(shù).
相關(guān)的命令:
???? EXIT. 退出循環(huán).
???? CHECK <logistic statement>.如果邏輯表達(dá)式成立,則繼續(xù)執(zhí)行,否則,開(kāi)
??????????????????????????? 始下一次循環(huán).
??
利用循環(huán)方式讀取所有記錄
SELECT .ENDSELECT.是循環(huán)方式讀取記錄的.
???? 例如:
TABLES MARD.
SELECT [DISTINCT] * FROM MARD WHERE MATNR = '3520421700'.
??? <Statements>.
ENDSELECT.
(從MARD中抓取所有料號(hào)=3520421700的資料)
讀取一筆資料
????? Example:
?????????????? TABLES? SPFLI.
?????????????? SELECT? SINGLE? *? FROM? SPFLI???
???????????????????? WHERE? PLANT ='CHUNGLI'? AND? TEL='4526174'.
?????????????? WRITE:? /? SPFLI-COMPANY,SPFLI-PLANT,SPFLI-TEL.
將讀取的記錄放在work area中,并且加入Internal table 中.
格式有:
?? ... INTO <work area>
?? ... INTO CORRESPONDING FIELDS OF <work area>
?? ... INTO (f1, ..., fn) 變量組.
?? ... INTO TABLE <internal table>
?? ... INTO CORRESPONDING FIELDS OF TABLE <internal table>
?? ... APPENDING TABLE <internal table>
?? ... APPENDING CORRESPONDING FIELDS OF TABLE <internal table>
舉例一:
TABLES MARD.
DATA:? BEGIN OF ITAB OCCURS 10,
????????????? MATNR LIKE MARD-MATNR,
????????????? WERKS LIKE MARD-WERKS,
????????????? LGORT LIKE MARD-LGORT,
????????????? LABST LIKE MARD-LABST,
??????? END OF ITAB.
SELECT MATNR WERKS LGORT LABST?
????????????? INTO CORRESPONDING FIELDS OF ITAB
????????????? FROM MARD
????????????? WHERE MATNR = '3520421700'.
?????? APPEND ITAB.
?????? CLEAR ITAB.
ENDSELECT.
(將讀取的結(jié)果放在Internal table ITAB中)

DATA: BEGIN OF WA,
??????? LINE(240),
????? END OF WA.
DATA NAME(10).
NAME = 'SPFLI'.
SELECT * FROM (NAME) INTO WA.
? WRITE: / WA-LINE.
ENDSELECT.
數(shù)據(jù)庫(kù)表名 稱(chēng) SPFLI 被賦給字符 字段 NAME SELECT 語(yǔ)句將所有 的行從 SPFLI 中讀到目標(biāo) 區(qū) WA 中在該示 例中,WA 與 SPFLI 的結(jié)構(gòu)并不 相同,每一 行都將自動(dòng) 地轉(zhuǎn)換成字 符字段.

舉例二.
TABLES MARD.
SELECT MATNR? MTART? MAKTX? INTO (t_matnr, t_mtart, maktx)
?????????????? FROM MARD
?????????????? WHERE MATNR = '3520421700'.
?????? <Statements>.
ENDSELECT.
(從MARD中抓取料號(hào)=3520421700的料號(hào)類(lèi)型和描述,放在變量t_matnr, t_mtart, maktx中)

??????? Example:
???????????????? TABLES? SPFLI.
???????????????? DATA? WA? LIKE? TABLES.
???????????????? SELECT? *? FROM? SPFLI? INTO? WA.
??????????????????? WRITE:? /? WA-COMPANY,WA-PLANT.
???????????????? ENDSELECT.
???????????????? 逐筆寫(xiě)入WA 工作區(qū)中
舉例三.
將讀取的資料寫(xiě)入 Initial Table 中
? 語(yǔ)法:
??????? SELECT? .. INTO? TABLE? <itab>??
??????? Example:
??????? TABLES? SPFLI.
??????? DATA? ITAB? LIKE? SPFLI? OCCURS? 10? WITH? HEADER? LINE.
??????? SELECT? *? FROM? SPFLI? INTO? ITAB.
??????? 一次讀10筆(Initial Table的長(zhǎng)度)記錄存入 ITAB 中
???????
??????? SELECT? .. INTO? TABLE? <itab>? PACKAGE? SIZE <n>
??????? 一次讀取 <n> 筆記錄至 <itab>中
??????? Example:
?????????? TABLES? SPFLI.
?????????? DATA? ITAB? LIKE? SPFLI? OCCURS? 10? WITH? HEADER? LINE.
?????????? SELECT? *? FROM? SPFLI? INTO? ITAB? PACKAGE? SIZE? 5.
?????????? 一次讀取 5 筆記錄

exp :

TABLES SPFLI.
DATA: BEGIN OF WA,
???????? NUMBER TYPE I VALUE 1,
???????? CITYFROM LIKE SPFLI-CITYFROM,
???????? CITYTO?? LIKE SPFLI-CITYTO,
????? END OF WA.
SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF WA.
?? WRITE: / WA-NUMBER, WA-CITYFROM, WA-CITYTO.
ENDSELECT.
輸出如下所 示:

在該示例中 ,系統(tǒng)只將 數(shù)據(jù)庫(kù)表 SPFLI 中選定行的 列 CITYFROM 和 CITYTO 傳送到 WA 中WA 中的組件 NUMBER? 保持不變
*-------------------------------------------------------------------------------------*

按指定的欄位排序
TABLES SBOOK.
SELECT * FROM SBOOK?? WHERE CARRID = 'LH' AND
??????????????????????????? CONNID = '0400' AND
??????????????????????????? FLDATE = '19950228'
??????????????????????????? ORDER BY BOOKID ASCENDING.
?? WRITE: / SBOOK-BOOKID,?? SBOOK-CUSTOMID,
?????????? SBOOK-CUSTTYPE,? SBOOK-SMOKER,
?????????? SBOOK-LUGGWEIGHT, SBOOK-WUNIT,
?????????? SBOOK-INVOICE.
ENDSELECT.
(利用參數(shù)ORDER BY所指定的欄位排序)
*-------------------------------------------------------------------------------------*

?抓取數(shù)據(jù)的條件敘述
(1)?BETWEEN <g1>? AND? <g2>
例如:? WHERE YEAR BETWEEN 1995 AND 2000.
(2)?LIKE <g>
例如:? WHERE NAME LIKE 'MIKE%'.
('%'是通配符號(hào))
(3)?IN (<g1><gn>)
是<g1><gn>里面的任意一個(gè)值即可.
例如: WHERE PLANT IN ('CHUNGLI', 'TAOYUAN','LIUTU').
(表示PLANT 只要是'CHUNGLI'或'TAOYUAN'或'LIUTU'都可以).
(4)? ORDER? BY 敘述
???? 指定排序的欄位或順序
???? (1). ..ORDER? BY? PRIMARY? KEY.
??????? 根據(jù) PRIMARY KEY 遞增排序
???? (2)ORDER? BY? <f1> [DESCENDING]? <f2> [DESCENDING]
??????? Example:
????????????????? SELECT? *? FROM? IM? ORDER? BY? PART .
*-------------------------------------------------------------------------------------*

INSERT 語(yǔ)句
從work area 加入到Internal Table中
格式: INSERT INTO <database> VALUES <work area>
例如:
DATA:? BEGIN OF WA,
????????????? CODE(6) TYPE C,
????????????? NAME(30) TYPE C,
??????? END OF WA.
DATA:? VEN LIKE WA OCCURS 10.

WA-CODE? =? '530120'.
WA-NAME? =? 'XINGDA ELECTRONICS CO.,LTD'.
INSERT INTO VEN VALUES WA .
如果work area的名稱(chēng)就是internal table的名稱(chēng),可以直接寫(xiě)成:
????? INSERT <internal table>
例如:
DATA:? BEGIN OF WA OCCURS 10,
????????????? CODE(6) TYPE C,
????????????? NAME(30) TYPE C,
??????? END OF WA.

WA-CODE = '530120'.
WA-NAME? =? 'XINGDA ELECTRONICS CO., LTD'.
INSERT WA.
從另外一個(gè)Internal table中INSERT 資料
格式:
INSERT <itab1> FROM TABLE <itab2> [ACCEPTING DUPLICATE KEY]
將<itab2>中非NULL的資料加入<itab1>中,加上[ACCEPTING DUPLICATE KEY]能限制相同PRIMARY KEY不重復(fù)加入.

?? 加入一筆記錄至資料庫(kù)

?? 1.自 Work Area 工作區(qū)
?? 語(yǔ)法:
??????? INSERT? INTO? <database>? VALUES? <wa>
??????? Example:
???????????????? TABLES? SPFLI.
???????????????? DATA? WA?? LIKE? SPFLI.
???????????????? WA-NO = '34051920'.
???????????????? WA-COMPANY='DELTA'.
???????????????? INSERT? SPFLI? VALUES? WA.
???????????????? 將 ITAB 資料加入 SPFLI中, 也可寫(xiě)成 INSERT? SPFLI? FROM? ITAB.
??????????
????????????????? SPFLI-NO='34299876'.
????????????????? SPFLI-COMPANY='HP'.
????????????????? INSERT? SPFLI? FROM? SPFLI.
????????????????? 將Work Area? SPFLI中的資料加入資料庫(kù)檔案 SPFLI中
????????????????? 因Work Area SPFLI的結(jié)構(gòu)與資料檔 SPFLI一樣, 所以也可
????????????????? 寫(xiě)成 INSERT? SPFLI.

?? 2.自 Internal Table
???? 語(yǔ)法:
?????????? INSERT? <database>? FROM? TABLE? <itab>? [ACCEPTING DUPLICATE KEY]
?????????? 將 <itab>中非 NULL的資料加入 <database>中, 加上 [ACCEPTING DUPLICATE
?????????? KEY]能檢查不加入有重覆primary key, 若有重覆則 SY-SUBRC 會(huì)傳回 4
?????????? Example:
??????????????????? TABLES? SPFLI.
??????????????????? DATA? ITAB? LIKE? SPFLI? OCCURS? 10? WITH? HEADER LINE.
??????????????????? ITAB-NO = '34051920'.
??????????????????? ITAB-COMPANY = 'DELTA'.
??????????????????? APPEND? ITAB.
??????????????????? .
??????????????????? INSERT? SPFLI? FROM? TABLE? ITAB?
???????????????????????????? ACCEPTING? DUPLICATE? KEY.
*-------------------------------------------------------------------------------------*

UPDATE 指令
?? 異動(dòng)已存在的記錄內(nèi)容

1.使用 Primary Key
? 語(yǔ)法:
??????????? UPDATE? <database>? FROM? <wa>
??????????? Example:
???????????????????? TABLES? SPFLI.
???????????????????? DATA? WA? LIKE? SPFLI.
???????????????????? WA-NO='34051920'.
???????????????????? WA-COMPANY='DELTA'.
??????????????????? UPDATE? SPFLI? FROM? WA.
??????????????????? 如 SPFLI 的 Primary Key是 NO, 則會(huì)找到 NO='34051920'
??????????????????? 的記錄, 將其 COMPANY欄位異動(dòng)為 DELTA

2.使用條件式
? 語(yǔ)法:
??????? UPDATE? <database>? SET? < f1>=<values>? WHERE? <condition>
??????? 根據(jù)條件式異動(dòng)符合條件式的記錄
??????? Example:
???????????????? UPDATE? SPFLI? SET? NO='34051920'
??????????????????????????????????????? COMPANY = 'DELTA'
????????????????????????????????? WHERE? TEL='4526107'.
*-------------------------------------------------------------------------------------*

3.?? MODIFY 語(yǔ)法
???? MODIFY <internal table> [FROM <work area>].
根據(jù) Primary Key 尋找資料檔中符合的記錄, 若找到則更新異動(dòng), 若找不到則新增記錄
語(yǔ)法:
?????? MODIFY? <database>? FROM? <wa>
?????? Example:
??????????????? WA-NO='34051920'.
??????????????? WA-COMPANY='DELTA'.
??????????????? MODIFY? SPFLI? FROM? WA.
????
4.?? DELETE 語(yǔ)法
???? DELETE <internal table> [FROM <work area>].
??? 或: DELETE <internal table> [WHERE <conditions>]
?? 刪除資料檔的記錄

1.使用 Primary Key
? 語(yǔ)法:
??????????? DELETE? <database>? FROM? <wa>
??????????? Example:
???????????????????? TABLES? SPFLI.
???????????????????? DATA? WA? LIKE? SPFLI.
???????????????????? WA-NO='34051920'.
???????????????????? WA-COMPANY='DELTA'.
???????????????????? DELETE? SPFLI? FROM? WA.
???????????????????? 如 SPFLI 的 Primary Key是 NO, 則會(huì)找到 NO='34051920'
???????????????????? 的記錄, 找到后將此筆刪除

2.使用條件式
? 語(yǔ)法:
??????? DELETE? FROM? <database>? WHERE? <condition>
??????? 根據(jù)條件式刪除符合條件式的記錄
??????? Example:
???????????????? DELETE? FROM? SPFLI? WHERE? AREA = 'AMERICAN'.
???????????????????????????????????????
*-------------------------------------------------------------------------------------*

5.?DATABASE CURSOR
?? Database Cursor是一個(gè)資料庫(kù)暫存區(qū), 將經(jīng)SELECT指令讀取的記錄存放至此暫存區(qū), 再由此暫存區(qū)放至Work Area中, 可減少資料庫(kù)讀取的次數(shù).
1.開(kāi)啟 Database Cursor
? 語(yǔ)法:
??????? OPEN? CURSOR? <c>? FOR? SELECT ? WHERE <condition>
??????? Example:
??????????????? TABLES? SPFLI.
??????????????? DATA:? WA? LIKE? SPFLI,
??????????????????????? C1? TYPE? CURSOR.
??????????????? OPEN? CURSOR? C1 FOR SELECT? *? FROM? SPFLI
?????????????????????? WHERE? AREA ='TAIWAN'.
? 2.讀取 Database Cursor的資料存入 Work Area
語(yǔ)法:
????? FETCH? NEXT? CURSOR? <c>? INTO? <wa>
????????? Example:
?????????????????? FETCH? NEXT? CURSOR? C1? INTO? WA.
? 讀取下一筆Cursor位置的資料存入WA, 如果已無(wú)資料可讀, SY-SUBRC <>0.
關(guān)閉 Database Cursor
語(yǔ)法:
????? CLOSE? CURSOR? <c>
????? Example:
?????????????? CLOSE? CURSOR? C1.

*-------------------------------------------------------------------------------------*

COMMIT WORK & ROLLBACK WORK
要確定資料成功寫(xiě)入資料庫(kù),可使用COMMIT WORK指令,如:
?? COMMIT? WORK.
相反的, 如果反悔要復(fù)原, 可使用 ROLLBACK? WORK, 可復(fù)原在上個(gè)COMMIT WORK指令之后的資料, 如:
?? ROLLBACK? WORK.
*-------------------------------------------------------------------------------------*
使用NATIVE SQL指令
語(yǔ)法格式:
EXEC SQL [PERFORMING <form>].
???? <statements>
ENDEXEC.
舉例一.
EXEC SQL.
? CREATE TABLE AVERI_CLNT (
???????? CLIENT?? CHAR(3)? NOT NULL,
???????? ARG1???? CHAR(3)? NOT NULL,
???????? ARG2???? CHAR(3)? NOT NULL,
???????? FUNCTION CHAR(10) NOT NULL,
???????? PRIMARY KEY (CLIENT, ARG1, ARG2)
????????????????????????? )
ENDEXEC.
舉例二.
DATA: F1(3), F2(3), F3(3).
F3 = ' 1 '
EXEC SQL.
? SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT
???????? WHERE ARG2 = :F3
ENDEXEC

PERFORMING <form name>的使用:
如果NATIVE SQL的SELECT命令執(zhí)行結(jié)果是抓到多筆記錄,我們想要逐筆記錄處理時(shí),就用PERFORMING 參數(shù),這個(gè)FORM能被逐次調(diào)用.如果想中止調(diào)用,就用EXIT FORM SQL結(jié)束調(diào)用.
例如:
DATA: F1(3), F2(3), F3(3).

F3 = '010'
EXEC SQL PERFORMING WRITE_AVERI_CLNT.
? SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT
???????? WHERE ARG2 = :F3
ENDEXEC.
FORM WRITE_AVERI_CLNT.
? WRITE: / F1, F2.
ENDFORM.

???????????????? DATA: BEGIN? OF? WA,
??????????????????????? NAME(8),
??????????????????????? AGE? TYPE? I,
??????????????????????? END?? OF? WA.
???????????????? DATA? F1? TYPE? I.
???????????????? FI = 20.
???????????????? EXEC? SQL? PERFORMING? OUTPUT.
??????????????????? SELECT? NAME,AGE? INTO? :WA? FROM? NAME_TABLE
???????????????????????????? WHERE? AGE >= :F1.
???????????????? ENDEXEC..
???????????????? FORM? OUTPUT.
?????????????????? WRITE:? /? WA-NAME,WA-AGE.
???????????????? ENDFORM.

注意:
a.?NATIVE SQL把TABLE中的MANDT(client)欄位當(dāng)作一般欄位使用,所以在抓取資料時(shí)必須指定特定的Client;
b.? NATIVE SQL中的SELECT語(yǔ)句沒(méi)有CHECK權(quán)限的功能;
c.?在登入SAP R/3系統(tǒng)時(shí),我們已經(jīng)自動(dòng)與Database連接,所以在執(zhí)行NATIVE
SQL時(shí)并不需要CONNECT語(yǔ)句;
d.?一條NATIVE SQL語(yǔ)句可以以分號(hào);結(jié)束,一般情況下是以句號(hào).結(jié)束.
e.?某些數(shù)據(jù)庫(kù)系統(tǒng)對(duì)TABLE名字和FIELD名字有大小寫(xiě)區(qū)別,要正確書(shū)寫(xiě).
f.?在NATIVE SQL中,雙引號(hào)"不表示注釋.
*-------------------------------------------------------------------------------------*

結(jié)果語(yǔ)句

條件述敘
?? 1. IF 述敘
? 語(yǔ)法:
??????? IF? <Condition1>.
????????? <Statement 1 >
??????? ELSEIF? <Condition2>.
????????? <Statement 2>
??????? ELSEIF? <Condition3>.
????????? <Stetement 3>
??????? ..
??????? ELSE.
????????? <else Statement >
??????? ENDIF.
??????? (1).在每個(gè)判斷敘述之后要加上 .
??????? (2).在巢狀迥圈之中無(wú)法使用 ELSE 敘述, ELSE 敘述屬 IF 敘述
??????? Example:
???????????????? IF? 3 > 8.
?????????????????? WRITE / '3 is less than 8'.
??????????????? ENDIF.
?????????????????

2. CASE 敘述
? 語(yǔ)法:
?????? CASE? <變數(shù)f>.
???????? WHEN <Value1>.
??????????? <Statement1>
???????? WHEN <Value2>.
??????????? <Statement2>
???????? .
???????? WHEN OTHERS.
??????????? <others Statement>
?????? ENDCASE.
?????? Example:
???????????????? S = 'A'.
???????????????? CASE? S.
??????????????????? WHEN? 'X'.
?????????????????????? WRITE / 'String is X'.
??????????????????? WHEN OTHERS.
?????????????????????? WRITE / 'String is not X'.
???????????????? ENDCASE.
?
迥圈敘述
1.計(jì)次迥圈
? 語(yǔ)法:
?????? DO? [n TIMES]? [VARYING? <f>? FROM? <start>? TO? <end>.
????????? <loop block>
?????? ENDDO.
?????? Example:
??????????????? DO? 2? TIMES.
??????????????????? WRITE /? 'X'.
??????????????? ENDDO.
??????????????? 執(zhí)行結(jié)果:
?????????????????????????? X
?????????????????????????? X
??????????????? DO? VARYING? I? FROM1? TO? 10.
?????????????????? S = S + I.
??????????????? ENDDO.
??????????????? WRITE: / ,'1+2+3++10=',S
??????????????? 執(zhí)行結(jié)果:? 1+2+3++10=55
? 2.條件迥圈
語(yǔ)法:
???? WHILE? <Condition>.
??????? <Statement Block>
???? ENDWHILE
???? Example:
????????????? I = 1.
????????????? S=0.
???????????? WHILE? I <= 10.
??????????????? S = S+I.
??????????????? I=I+1.
???????????? ENDWHILE.
???????????? WRITE: / ' 1+2+3++10=',S.
???????????? 執(zhí)行結(jié)果為: 1+2+3++10=55

迥圈控制敘述
1.?CONTINUE
跳至迥圈的下一次
Example:
??????? DO? 3? TIMES.
?????????? IF? SY-INDEX = 2.
???????????? CONTINUE.
?????????? WRITE / SY-INDEX.
??????? ENDDO.
??????? 執(zhí)行結(jié)果:
????????????????? 1
????????????????? 3
2.?CHECK <Condition>
CHECK 之后條件成立才繼續(xù)往下執(zhí)行迥圈
? Example:
?????????? DO? 5? TIMES.
????????????? CHECK? SY-INDEX? BETWEEN? 2? AND? 4.
????????????? WRITE? /? SY-INDEX.
?????????? ENDDO.
?????????? 執(zhí)行結(jié)果:
???????????????????? 2
???????????????????? 3
???????????????????? 4
3.?EXIT
跳離迥圈敘述
Example:
???????? DO? 10? TIMES.
??????????? IF? SY-INDEX = 4.
????????????? EXIT.
??????????? ENDIF
??????????? WRITE / SY-INDEX.
???????? ENDDO.
???????? 執(zhí)行結(jié)果:
?????????????????? 1
?????????????????? 2
?????????????????? 3

無(wú)窮迥圈
?? DO .
???? <Statement Block>
?? ENDDO.
?? 無(wú)窮迥圈必須配合 EXIT 敘述來(lái)執(zhí)行
*-------------------------------------------------------------------------------------*

搜索字符串

要搜索特定 模式的字符 串,請(qǐng)使用 SEARCH 語(yǔ)句,用法 如下:
語(yǔ)法
SEARCH <c> FOR <str> <options>.
該語(yǔ)句在字 段 <c> 中搜索<str> 中的字符串 如果成功 ,則將 SY-SUBRC 的返回代碼 值設(shè)置為0并 將 SY-FDPOS 設(shè)置為字段 <c> 中該字符串 的偏移量 否則將 SY-SUBRC 設(shè)置為4
搜索串 <str> 可為下列格 式之一:
<str>?目 的
<pattern>?搜 索 <pattern>( 任何字符順 序)忽略 尾部空格
?.<pattern>.?搜 索 <pattern> ,但是不忽 略尾部空格
*<pattern>?搜 索以 <pattern> 結(jié)尾的詞
?<pattern>*?搜 索以 <pattern> 開(kāi)始的詞
?單詞之間用 空格逗號(hào) 句號(hào)分 號(hào)冒號(hào) 問(wèn)號(hào)嘆號(hào) 括號(hào)斜 杠加號(hào)和 等號(hào)等分隔
?
DATA STRING(30) VALUE 'This is a little sentence.'.
WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
ULINE /1(26).
SEARCH STRING FOR 'X'.
WRITE: / 'X', SY-SUBRC UNDER 'SY-SUBRC',
?????????????? SY-FDPOS UNDER 'SY-FDPOS'
SEARCH STRING FOR 'itt?? '.
WRITE: / 'itt?? ', SY-SUBRC UNDER 'SY-SUBRC',
?????????????????? SY-FDPOS UNDER 'SY-FDPOS'
SEARCH STRING FOR '.e .'.
WRITE: / '.e .', SY-SUBRC UNDER 'SY-SUBRC',
????????????????? SY-FDPOS UNDER 'SY-FDPOS'.
SEARCH STRING FOR '*e'.
WRITE: / '*e ', SY-SUBRC UNDER 'SY-SUBRC',
??????????????? SY-FDPOS UNDER 'SY-FDPOS'.
SEARCH STRING FOR 's*'.
WRITE: / 's* ', SY-SUBRC UNDER 'SY-SUBRC',
??????????????? SY-FDPOS UNDER 'SY-FDPOS'.
該過(guò)程的輸 出如下:
SEARCHED SY-SUBRC SY-FDPOS
X??????????? 4??????? 0
itt????????? 0?????? 11
.e .???????? 0?????? 15
*e?????????? 0?????? 10
s*?????????? 0?????? 17

搜索字符字 段 <c> 的各種選項(xiàng) (<options>) 如下
? ?ABBREVIATED
在字段 <c> 中搜索包含 <str> 中指定字符 串的單詞, 其中字符可 能被其它字 符隔開(kāi)單 詞和字符串 的第一個(gè)字 母必須相同
? ?STARTING AT <n1>
在字段 <c> 中搜索從 <n1> 開(kāi)始的 <str> 結(jié)果 SY-FDPOS 參照相對(duì)于 <n1> 的偏移量而 不是字段的 開(kāi)始
? ?ENDING AT <n2>
在字段 <c> 搜索 <str> 直到位置 <n2>
? ?AND MARK
如果找到搜 索串,則將 搜索串中的 所有字符( 和使用 ABBREVIATED 時(shí)的所有字 符)轉(zhuǎn)換為 大寫(xiě)形式
?
DATA: STRING(30) VALUE 'This is a fast first example.',
????? POS TYPE I,
????? OFF TYPE I.
WRITE / STRING.
SEARCH STRING FOR 'ft' ABBREVIATED.
WRITE: / 'SY-FDPOS:', SY-FDPOS.
POS = SY-FDPOS + 2.
SEARCH STRING FOR 'ft' ABBREVIATED STARTING AT POS AND MARK.
WRITE / STRING.
WRITE: / 'SY-FDPOS:', SY-FDPOS.
OFF = POS + SY-FDPOS -1.
WRITE: / 'Off:', OFF.
該過(guò)程的輸 出如下:
This is a fast first example.
SY-FDPOS:??? 10
This is a fast FIRST example.
SY-FDPOS:??? 4
Off:??????? 15
請(qǐng)注意,在 找到單詞' fast' 之后,為了 查找包含' ft'的第 二個(gè)單詞, 必須在偏移 量 SY-FDPOS 上加2,然 后從位置 POS 開(kāi)始查找 否則,會(huì)再 次找到單詞 'fast' 要獲得' first' 相對(duì)于字段 STRING 開(kāi)始的偏移 量,從 POS 和 SY-FDPOS 計(jì)算
獲得字符串 長(zhǎng)度

要決定字符 串到最后一 個(gè)字符而不 是 SPACE 的長(zhǎng)度,請(qǐng) 使用內(nèi)部函 數(shù) STRLEN, 用法如下:
語(yǔ)法
[COMPUTE] <n> = STRLEN( <c> ).
STRLEN 將操作數(shù) <c> 作為字符數(shù) 據(jù)類(lèi)型處理 ,而不考慮 其實(shí)際類(lèi)型 不進(jìn)行轉(zhuǎn) 換
關(guān)鍵字 COMPUTE 可選有關(guān) 內(nèi)部函數(shù)的 詳細(xì)信息, 參見(jiàn) 使用數(shù)學(xué)函 數(shù) (頁(yè) 49)
?
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é)果分別是 5,0 和 4
*-------------------------------------------------------------------------------------*

Standard Report
?? 一個(gè)典型的報(bào)表程式是由許多的程式區(qū)塊(Code Block)所組成,在區(qū)塊間最好能加上一些
?? 說(shuō)明以利程式可讀性,一個(gè)典型的報(bào)表程式格式如下:

*? PROGRAM SOURCE HEADER? : 說(shuō)明程式名稱(chēng)及目的
* Program Name:
* Description:
* Date/Author:
* Table Update:
* Special Logic:
* Include:
*-------------------------------------------------------------------------------------*
*? MODIFICATION LOG : 程式修改更新記錄
*-------------------------------------------------------------------------------------*
* ChangeDate Programmer??? Request????? Description
*-------------------------------------------------------------------------------------*
*?????????????????????????????????????? NEW PROGRAM
*-------------------------------------------------------------------------------------*
* REPORT NAME : 宣告程式名稱(chēng)及報(bào)表格式,
*-------------------------------------------------------------------------------------*
REPORT Z_____
?????? NO STANDARD PAGE HEADING
????????? MESSAGE-ID __??? " 所使用的MESSAGE
????????? LINE-COUNT ___?? " 每頁(yè)報(bào)表列數(shù)
????????? LINE-SIZE? ___.? " 每頁(yè)報(bào)表寬度

*? TABLE DESCRIPTION : 宣告程式會(huì)使用的TABLE

*-------------------------------------------------------------------------------------*
TABLES:
???????????????
* DATA : 宣告程式所使用的變數(shù)及自定型態(tài)
*-------------------------------------------------------------------------------------*
TYPES:

DATA:
?????

*? SELECTION SCREEN / OPTION / PARAMETER : 螢?zāi)惠斎雸?bào)表篩選條件
*-------------------------------------------------------------------------------------*

? SELECTION-SCREEN BEGIN OF BLOCK ____
?????? SELECT-OPTIONS:

? SELECTION-SCREEN END OF BLOCK ___

* INITIALIZATION : 啟動(dòng)程式開(kāi)始執(zhí)行, 如SELECT-OPTION及PARAMETER
*-------------------------------------------------------------------------------------*
INITIALIZATION.

INCLUDE ____.

* AT START SELECTION : 輸入結(jié)束后啟動(dòng)的區(qū)塊, 如按下<F8>
*-------------------------------------------------------------------------------------*
START-OF-SELECTION.
? SET PF-STATUS ____.? " 指定報(bào)表執(zhí)行時(shí)所用的 GUI-STATUS名稱(chēng)

? PERFORM READ_DATA.
? PERFORM PROCESS_DATA.
? PERFORM PRINT_DATA.
? PERFORM PRINT_SUMMARY.

* AT USER Commaand : 執(zhí)行在GUI-STATUS中自定的命令
*-------------------------------------------------------------------------------------*
AT USER_COMMAND.

* AT LINE SELECTION : 由在報(bào)表中按下<F2>或Double-Click啟動(dòng)
*-------------------------------------------------------------------------------------*
AT LINE-SELECTION.


* TOP OF PGAE : 每頁(yè)開(kāi)始列印時(shí)執(zhí)行, 用於定義報(bào)表表頭
*-------------------------------------------------------------------------------------*

* END OF PAGE : 報(bào)表列印完最后一頁(yè)后啟動(dòng)
*-------------------------------------------------------------------------------------*
END-OF-PAGE

* END OF SELECTION : 在結(jié)束列印資料后啟動(dòng), 如可用來(lái)印出USER輸入的條件
*-------------------------------------------------------------------------------------*
END-OF-SELECTION.
INCLUDE? _____
* FORM : 撰寫(xiě)程式中所使用到的副程式
*-------------------------------------------------------------------------------------*
* Read Data : 自TABLE讀取資料放入Internal Table
*-------------------------------------------------------------------------------------*
FORM READ_DATA.
? SELECT * FROM ______
?????????? INTO _______
?????????? WHERE _______.
???? IF SY-SUBRC = 0.

???? ENDIF.
???? APPEND _____.? " 增加Internal Table元素
? ENDSELECT.

ENDFORM.

* Process Data : 處理Internal Table的資料, 如排序及匯總
*-------------------------------------------------------------------------------------*
FORM PROCESS_DATA.

ENDFORM.

* Print Data : 依序輸出 Internal Table的資料
*-------------------------------------------------------------------------------------*
FORM PRINT_DATA.

ENDFORM.

* Print Summary : 印出數(shù)值資料加總
*-------------------------------------------------------------------------------------*
FORM PRINT_SUMMARY.

ENDFORM.

* Include Program : 列出所含入的其它程式source code, 如副程式
*-------------------------------------------------------------------------------------*
INCLUDE _____
INCLUDE _____

*-------------------------------------------------------------------------------------*
*
REPORT rep.
Additions:
1. ... NO STANDARD PAGE HEADING
2. ... LINE-SIZE col
3. ... LINE-COUNT n(m)
??????????? 表單輸出每頁(yè)由n行,其中的m行作為頁(yè)腳;
4. ... MESSAGE-ID mid ??????? 消息對(duì)象
5.? ... DEFINING DATABASE ldb
?????? 使用邏輯數(shù)據(jù)庫(kù),自動(dòng)產(chǎn)生
*
事件塊
INITIALIZATION
AT SELECTION-SCREEN
START-OF-SELECTION
GET
END-OF-SELECTION
TOP-OF-PAGE
END-OF-PAGE
*
事件塊的簡(jiǎn)單處理過(guò)程:
*
ABAP程序運(yùn)行的時(shí)候,INITIALIZATION首先被調(diào)用;
經(jīng)過(guò)初始化的輸入屏幕會(huì)顯示在表示服務(wù)器;
用戶(hù)離開(kāi)輸入屏幕的時(shí)候,START-OF-SELCTION事件會(huì)被自動(dòng)調(diào)用;
結(jié)果數(shù)據(jù)會(huì)以列表的形式顯示在第二個(gè)屏幕上;
*
源代碼中的事件塊順序不影響它們的執(zhí)行順序
*
事件塊編碼規(guī)則(1)
INITIALIZATION
??? 通常在此事件塊中設(shè)定輸入屏幕字段的初始值
*
事件塊編碼規(guī)則(2)
AT SELECTION-SCREEN
??? 通常在此事件塊中進(jìn)行用戶(hù)輸入數(shù)據(jù)的合法性檢查,發(fā)現(xiàn)錯(cuò)誤則以消息的形式給出警示,直到用戶(hù)輸入正確的數(shù)值
例如: AT SELECTION-SCREEN .
??????????????????? IF P_DATE = SPACE .
??????????????????????? MESSAGE E001 .
??????????????????? ENDIF.
??? 效果: 如果字段P_DATE為空,則程序會(huì)用消息001日期字段不能為空!來(lái)提示用戶(hù)必須輸入一個(gè)日期而且輸入屏幕會(huì)等待用戶(hù)輸入,知道該字段數(shù)值合法
*
事件塊編碼規(guī)則(3)
START-OF-SELCTION
??? 通常在此事件中針對(duì)業(yè)務(wù)需求進(jìn)行系統(tǒng)數(shù)據(jù)的查詢(xún)
例如:
???? start-of-selection .
????????? perform get_data_for_oil .
效果:
???? 在輸入屏幕用戶(hù)按下執(zhí)行按鈕后,子程序get_data_for_oil被執(zhí)行,? 在其中獲得業(yè)務(wù)相關(guān)的數(shù)據(jù)存放到內(nèi)表或者其它變量,這些數(shù)據(jù)在END-OF-SELECTION事件塊中被輸出
*
事件塊編碼規(guī)則(4)
END-OF-SELCTION
??? 通常在此事件中進(jìn)行結(jié)果清單的輸出
例如:
??? end-of-selection .
???????? write : 23(1) sy-vline,
?????????? 24(20) tab-gas_plan right-justified ,
效果:
??? 數(shù)據(jù)以清單的形式輸出
*
事件塊編碼規(guī)則(5)
GET
??? 從邏輯數(shù)據(jù)庫(kù)中得到數(shù)據(jù)(較少用)

TOP-OF-PAGE
??? 在此事件塊中設(shè)計(jì)輸出清單的頁(yè)頭
TOP-OF-PAGE
?????????????????? write : /1(240) '汽柴油日出廠(chǎng)情況表' centered .
?????????????????? write : /20(8) '日期:' ,
?????????????????????????????? 29(10) s_date ,
?????????????????????????????? 180(6) '單位:' ,
?????????????????????????????? 190(10) '噸' .
*
事件塊編碼規(guī)則(6)
END-OF-PAGE
??? 在此事件中設(shè)定輸出清單的頁(yè)腳
例如:
??? END-OF-PAGE .

總結(jié)

以上是生活随笔為你收集整理的ABAP基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

色偷偷男人的天堂av | 91新人在线观看 | 亚洲欧洲成人 | 激情 一区二区 | 亚洲精品xxx| 99久久精品网 | 成人小视频免费在线观看 | 蜜臀av夜夜澡人人爽人人桃色 | 欧美三人交 | 日韩美精品视频 | 四虎影院在线观看av | 久久影视一区二区 | 国产精品久久久久久a | 日韩欧美在线视频一区二区 | 黄色国产高清 | 久久爱影视i| 91成品人影院 | 91成人破解版 | 国产精品毛片一区二区在线看 | 久久久精品日本 | 99re8这里有精品热视频免费 | 97视频在线观看免费 | 亚洲aⅴ免费在线观看 | 精品电影一区 | 精品国产一区二区三区久久久蜜月 | www.五月天婷婷 | 99久久久国产精品免费99 | 国产一区 在线播放 | 免费在线国产精品 | 精品国产免费人成在线观看 | 成人毛片一区二区三区 | 中文字幕第一页在线vr | 黄色亚洲 | 国精产品满18岁在线 | 婷婷在线视频观看 | 欧美日产在线观看 | 久久99精品久久久久久久久久久久 | 成人一级黄色片 | 一级黄色免费 | 国产字幕在线看 | 午夜电影 电影 | 国产福利一区二区在线 | 成人久久久久久久久 | www天天操 | 在线中文视频 | 九九热在线免费观看 | 国产 视频 久久 | 探花视频网站 | 亚洲欧美综合 | 91在线观看高清 | 亚洲色图激情文学 | 久久人人干 | 人人爽人人爽人人爽人人爽 | 午夜精品一区二区三区视频免费看 | 91av蜜桃| 久久8精品 | 久久综合桃花 | 亚洲精品在线免费观看视频 | 成年人在线免费视频观看 | 视频国产在线 | 国产精品2区 | 日韩系列| 超碰在线人人草 | 久久99国产精品自在自在app | 97超碰人人澡人人爱 | 色视频在线免费观看 | 欧美另类xxx | 日韩a免费 | 国产成人一区二区三区在线观看 | av超碰在线 | 一区二区久久久久 | 天天射天天操天天干 | 激情视频区 | 黄色av电影在线 | 男女视频91| 国产精品国内免费一区二区三区 | 欧美在线久久 | 亚洲精品国产日韩 | 人人干人人做 | 午夜精品久久久久久久99 | 欧美在线一 | 视频在线观看国产 | 在线观看中文字幕视频 | 免费观看一级 | 88av网站| www.操.com| 久久夜色精品国产欧美乱 | 日韩v在线91成人自拍 | 日韩免费中文 | 国产精品免费一区二区三区在线观看 | 欧美一级在线观看视频 | 日韩欧美专区 | 97成人在线观看 | 国产一区二区在线免费观看 | 中文字幕一区二区在线播放 | 久久www免费视频 | 日韩一级黄色大片 | 久久综合狠狠综合久久狠狠色综合 | 操操综合 | 久久精品三级 | 日韩在线观看一区二区三区 | 人人狠狠综合久久亚洲婷 | av免费在线网站 | 国产专区在线视频 | 国产精品中文字幕av | 久久精品国产亚洲 | 91最新在线| 欧美天天综合 | 久草视频手机在线 | 亚洲成人精品在线观看 | 五月婷婷,六月丁香 | 久草久视频 | 精品免费观看 | 999视频在线播放 | 一区二区三区在线观看中文字幕 | 天天操网站 | 久久久黄视频 | 久99久精品 | 国产欧美综合视频 | 精品国产免费观看 | 亚州精品视频 | 国产午夜精品一区二区三区四区 | 福利一区二区三区四区 | 日韩av手机在线看 | 亚洲精品视频在线观看网站 | 国产一级黄色片免费看 | 亚洲高清精品在线 | 婷婷草| 久久久久久久久久毛片 | 成人黄色小说视频 | 亚洲综合网站在线观看 | 青青草华人在线视频 | 欧美一级黄色视屏 | av中文字幕在线观看网站 | 国产一二区免费视频 | 欧美性另类 | 蜜桃麻豆www久久囤产精品 | 蜜桃视频成人在线观看 | 99精品在线免费 | 高清日韩一区二区 | 成人免费在线观看电影 | 久草爱视频 | 色噜噜在线观看视频 | 国产精品视频资源 | 国内精品久久久久久久久久 | 成人av电影在线播放 | 美女亚洲精品 | 五月天婷婷免费视频 | 欧美激情第一区 | 日韩一区二区三区在线观看 | avav片| 91污污| 国产精品免费小视频 | 中文在线免费一区三区 | 日韩欧在线 | 成人蜜桃网 | av一级免费 | 免费福利片 | 亚洲综合成人婷婷小说 | 手机在线看a | 在线天堂日本 | 国产精品久久久久av | 成年人国产视频 | 日韩欧美综合精品 | 久久你懂的 | 国产成人av综合色 | 啪啪免费视频网站 | 中文字幕91视频 | 久久99国产精品久久 | 国产在线精品观看 | 亚洲天堂网在线视频 | 日韩精品无 | 国产成人精品一区二区在线 | 日韩高清黄色 | 嫩小bbbb摸bbb摸bbb | 欧美日韩有码 | 成人国产网址 | 99r在线精品| 99久久精品国产一区二区三区 | 97韩国电影 | 成年人黄色大全 | 国产精品入口66mio女同 | 日日夜夜干 | 天堂中文在线播放 | 97超碰资源网 | 91av99 | 日韩免费成人av | 国产黄色免费 | av线上看 | 国产一区免费视频 | 久久久精品视频网站 | 亚洲三级精品 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产精品高清免费在线观看 | 99re国产| 五月婷婷六月丁香 | 国产不卡一二三区 | 99视频 | 男女免费视频观看 | 99re久久资源最新地址 | 人人插人人费 | 久久精品第一页 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产香蕉久久精品综合网 | 久久久久久久久久久久影院 | 国产精品成人免费精品自在线观看 | 天天拍天天干 | 91av视频播放 | 久久综合九色欧美综合狠狠 | 最近中文字幕完整视频高清1 | 麻豆视频免费在线观看 | 免费黄a大片 | 91视频久久久久久 | av资源免费观看 | 欧美性久久久 | 国产在线一区二区三区播放 | 亚洲精品国产成人 | 在线看福利av | 久久激情视频网 | 狠狠综合久久av | 亚洲精品视频网站在线观看 | 久久久久99精品成人片三人毛片 | 亚洲精品免费在线视频 | 狠狠色狠狠色终合网 | 国产在线观看一 | 日日射av| 91色欧美 | 国产精品欧美日韩在线观看 | 午夜在线日韩 | 欧美日韩不卡在线观看 | 91精品1区2区 | 精品国产自在精品国产精野外直播 | 亚洲精品乱码久久久久久久久久 | 国产一区久久久 | 天天操天天谢 | 久久草av | 9797在线看片亚洲精品 | 国产品久精国精产拍 | 中文字幕在线人 | 国产高清视频免费在线观看 | 三级视频日韩 | 久久视频一区 | 视频一区在线播放 | 波多野结衣在线中文字幕 | 麻豆精品视频在线观看免费 | 成人精品在线 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 日本精品视频一区 | 精品一二三区视频 | 天天拍夜夜拍 | 国产精品视频在线观看 | 亚洲精品高清视频在线观看 | 最新av免费在线 | 久久久久久综合 | 免费在线国产黄色 | 久久成人午夜 | 久青草视频在线观看 | 三级av在线免费观看 | 日本中文字幕久久 | 亚洲国产欧美在线人成大黄瓜 | 毛片一区二区 | 久久综合亚洲鲁鲁五月久久 | av在线播放中文字幕 | 成人中心免费视频 | 精品99免费视频 | 精品久久久久久久 | 国产久草在线 | 免费看一级一片 | www.天天操.com | av在线色 | 人人干人人草 | 久久久九色精品国产一区二区三区 | 永久免费av在线播放 | 91污视频在线 | 999在线视频 | 亚洲国产无| 国产精品午夜8888 | 日韩高清免费在线 | 国产视频精品免费播放 | 四虎www com | 久草在线免费资源 | 爱爱一区 | 欧美日韩国产二区三区 | 久久成人国产精品一区二区 | 超碰在97 | 亚洲精品免费在线观看 | 午夜天使 | 久久精品79国产精品 | 久久综合天天 | 亚洲最大av| 国产成人一区二区三区免费看 | 欧美日韩精品影院 | 精品女同一区二区三区在线观看 | 中文字幕在线精品 | 中文字幕在线观看不卡 | 久久久精品亚洲 | 亚洲成人午夜av | 久久综合色天天久久综合图片 | 欧美在线观看视频一区二区三区 | 日韩一区二区三区高清在线观看 | avlulu久久精品| 成人黄色av免费在线观看 | 婷婷免费在线视频 | 亚洲va在线va天堂va偷拍 | 日韩精品一区二 | 国产福利精品一区二区 | 久草精品在线 | 天天操天天操天天爽 | 天天av综合网 | 激情av网址 | 亚洲国产中文在线观看 | 最新av中文字幕 | 国产明星视频三级a三级点| 久久男人中文字幕资源站 | 99色免费视频 | 天天操天天摸天天爽 | 2023av| 国产黄色免费 | www.伊人色.com | 欧美日韩一级在线 | 欧美成人精品在线 | 亚洲成a人片在线观看网站口工 | 在线观看不卡的av | 久久久污 | 91精品国产自产在线观看永久 | 91chinesexxx| 亚洲丝袜一区二区 | 日本aa在线 | 九九热在线免费观看 | 不卡国产在线 | 深爱激情五月网 | 最近日本韩国中文字幕 | 伊人久久在线观看 | 在线视频1卡二卡三卡 | 国产一区二区三区在线 | 国产黄色观看 | 国产麻豆精品免费视频 | 中文字幕有码在线 | 成人黄色片免费 | 99电影| 成人黄色大片在线免费观看 | 亚洲最大成人免费网站 | 久久久久一区二区三区四区 | 成人中文字幕+乱码+中文字幕 | 国产精品欧美日韩 | 亚洲春色综合另类校园电影 | 国产精品黄色影片导航在线观看 | 超碰在线中文字幕 | 成人av电影在线播放 | 丁香激情综合 | 国产在线1区 | 日韩免费电影一区二区 | 国产三级香港三韩国三级 | 国产 一区二区三区 在线 | 97色在线观看免费视频 | 又黄又网站 | 91麻豆文化传媒在线观看 | 久久精品国产精品亚洲 | 首页中文字幕 | 激情丁香在线 | 一区二区三区四区久久 | 91精品久久久久久综合乱菊 | 成年人在线观看 | 欧美日韩精品在线 | 91精品国自产拍天天拍 | 久久精品女人毛片国产 | 欧美一级性生活视频 | 丁香婷婷综合五月 | 亚洲 欧美 成人 | 国产精品嫩草影视久久久 | 狠狠干2018| 婷婷视频在线播放 | 成人av电影网址 | 蜜臀av免费一区二区三区 | 成人黄色中文字幕 | 亚洲成人中文在线 | 日韩专区在线观看 | 成人av一二三区 | 国产精品wwwwww | japanese黑人亚洲人4k | 91精品久久久久久久91蜜桃 | 国产中文字幕视频在线 | 国产r级在线观看 | 国产日本亚洲高清 | 久久精品综合视频 | 久久avav| 97视频在线免费播放 | 97人人视频 | 中文字幕一区二区三区四区视频 | 亚洲精品在线观看的 | 夜夜躁狠狠躁日日躁视频黑人 | 久久精品中文 | 午夜色性片 | 一区二区精品视频 | 欧美精品久久久久久久久久白贞 | 丁香六月天婷婷 | 日韩亚洲在线视频 | 久草在线免费电影 | 国产精品精品 | 国产福利一区二区在线 | 天天操偷偷干 | av黄网站| 国产精品视频久久 | 五月婷婷激情综合 | 一区二区三区在线免费播放 | 国产精品久久电影观看 | 精品久久久久久久久久岛国gif | 五月婷婷激情综合网 | 色就色,综合激情 | 丁香视频 | 欧亚久久 | 五月婷婷在线观看 | 国产精品成人自产拍在线观看 | 久久久久久久久久久免费 | 天天综合精品 | 91成年视频 | 国产理论在线 | 久久一区国产 | 国产精品久久久久久久毛片 | 又黄又爽又色无遮挡免费 | 中文字幕av一区二区三区四区 | 日韩伦理一区二区三区av在线 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产精品麻豆免费版 | www.色午夜 | av在线播放快速免费阴 | 97超碰香蕉 | av在线免费不卡 | 久久国色夜色精品国产 | 成人av亚洲 | 日韩高清精品一区二区 | 成人va天堂| 成年人免费观看国产 | 久草在线在线精品观看 | 国产免费高清视频 | 人人狠 | 免费av片在线 | 99久久久国产精品免费99 | 99久久精品国产免费看不卡 | 精品免费观看视频 | 日韩视| 久久免费的精品国产v∧ | 99精品热 | 国产在线免费av | 久久久久久久久久久久久9999 | 欧美日韩国产精品一区二区亚洲 | 操久在线| 婷婷丁香六月天 | 久久精品在线 | av丁香| 久久免费观看少妇a级毛片 久久久久成人免费 | 日本中文字幕系列 | 玖玖爱在线观看 | 一区av在线播放 | 日韩精品一区二区三区电影 | 色姑娘综合天天 | 五月婷视频 | 黄色日本片 | 99视频在线观看免费 | 777视频在线观看 | 国产美女被啪进深处喷白浆视频 | 一级黄色片在线免费看 | 欧美a级在线免费观看 | 黄色一二级片 | 激情五月婷婷激情 | 91av免费观看 | 欧美激情操 | 国产午夜精品av一区二区 | 草久电影 | 在线免费视频a | 98超碰在线 | 国产91在线观看 | 成人亚洲精品久久久久 | 天天视频亚洲 | 毛片美女网站 | 日韩视频免费看 | 久久久在线 | 国产香蕉97碰碰久久人人 | 欧美九九九 | 国产99久久久国产精品免费看 | 亚洲国产网址 | 久草久草视频 | 成人黄大片 | 成人一级片在线观看 | 天天操天天操天天操天天操天天操 | 不卡国产在线 | 精品久久网 | 五月婷婷亚洲 | 久久99久久99久久 | 99热九九这里只有精品10 | 欧美色综合天天久久综合精品 | 少妇av片| 久久久久久久久免费 | 日韩午夜高清 | 天天干夜夜擦 | 欧美小视频在线 | 国产精品毛片一区二区 | 中文字幕欧美激情 | 狠狠色伊人亚洲综合网站色 | 免费在线观看日韩 | 久草视频在线观 | 干 操 插 | 99免费在线视频观看 | 久热电影 | 91网址在线看 | 午夜免费福利片 | 成人国产精品免费观看 | 亚洲精品午夜aaa久久久 | 国产经典三级 | 国产九色视频在线观看 | 久久久精品免费观看 | 中文字幕精品三区 | 精品99视频 | 一区二区中文字幕在线播放 | 日本最新一区二区三区 | 欧美一区中文字幕 | 久久精品综合 | 国产一区二区久久久 | 久久好看免费视频 | 97碰在线 | 91在线蜜桃臀 | 亚洲成人资源在线 | 99精品久久久久 | 国产一区二区在线免费播放 | 久久久久久久毛片 | 2021av在线 | 久久久久中文 | 最近免费中文字幕mv在线视频3 | 全久久久久久久久久久电影 | 久久免费播放视频 | 中文字幕在线看片 | 国产精品麻豆欧美日韩ww | 99热精品久久 | 狠狠综合网 | 国产一区二区午夜 | 99精品亚洲 | 99精品视频中文字幕 | 国产一区二区三区免费观看视频 | 在线观看久久 | 国精产品999国精产品岳 | 久久午夜羞羞影院 | 911香蕉视频 | 久久情侣偷拍 | 黄色免费大片 | 亚洲精品美女在线观看播放 | 国产又粗又猛又色又黄网站 | 久久久久亚洲最大xxxx | 草久视频在线观看 | 91精品国产成 | 免费无遮挡动漫网站 | 99在线精品免费视频九九视 | 欧美在线视频一区二区三区 | 玖玖精品在线 | 三级a毛片 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 黄色亚洲精品 | 成人中文字幕+乱码+中文字幕 | 2018好看的中文在线观看 | 国产综合久久 | av福利在线播放 | 91久久电影 | 亚洲 中文字幕av | 午夜精品久久久久久中宇69 | 九九综合九九 | 久久国产精品一二三区 | 久久美女高清视频 | 五月av在线 | 狠狠伊人 | 18女毛片 | 免费久久网站 | 国产一二区免费视频 | 99热这里只有精品国产首页 | 蜜桃av人人夜夜澡人人爽 | 国产资源网 | 韩国一区二区三区在线观看 | av官网在线 | 亚洲国产精品va在线看黑人动漫 | 香蕉视频在线免费 | 精品人人爽 | 999在线视频 | 天天人人综合 | 97精品超碰一区二区三区 | 国产毛片aaa| 国产区在线看 | 成人91在线 | 黄在线免费观看 | 在线观看av国产 | 不卡日韩av | 激情狠狠干 | 国产精品黄色av | 中文字幕在线观看视频免费 | 亚洲精品中文在线 | 国产精品乱码高清在线看 | 久久免费视频网 | 国产日产精品一区二区三区四区 | 色视频在线免费 | 久久久av免费 | 亚洲精品午夜aaa久久久 | 成人亚洲网 | 亚洲国产999| 91福利社在线观看 | 狠狠狠狠狠狠狠 | 黄色成人影院 | 日韩视频在线播放 | 久久精品视频在线看 | 成人毛片a | 欧美激情另类 | 欧美成人中文字幕 | 激情动态| 久久免费在线 | 国产高清视频在线播放 | 国产精品久久久久久久久久久久午夜片 | 国产精品6 | 天堂网中文在线 | 欧美日本啪啪无遮挡网站 | 亚洲精品乱码久久久久久按摩 | 国产免费精彩视频 | 草久电影 | 中文字幕在线播放一区 | 亚洲一级片在线观看 | 99精品久久99久久久久 | 天天干夜夜夜操天 | 日韩电影黄色 | 人人玩人人添人人 | 日韩欧美在线视频一区二区三区 | 色av色av色av | 黄在线免费看 | 国产一级免费在线 | 久久久久国产成人精品亚洲午夜 | 一区二区三区在线电影 | 在线看日韩av | 国产精品短视频 | 日韩中字在线观看 | 久青草视频 | 日韩精品视频免费在线观看 | 久久精品99视频 | 精品欧美一区二区精品久久 | 精品视频中文字幕 | 黄色一级动作片 | 日韩精品视频在线观看网址 | 久久久久成人精品免费播放动漫 | 欧美一性一交一乱 | 久草网视频在线观看 | www.色就是色 | 欧美精品乱码久久久久 | 日韩av影视在线观看 | 国产精品综合在线 | 在线视频91 | 毛片精品免费在线观看 | 97av影院 | 黄网站大全 | 亚洲四虎影院 | 日韩欧美一区二区在线观看 | 国产高清福利在线 | 日本久久久久久久久久久 | 日韩高清不卡一区二区三区 | 日本在线视频网址 | 亚洲国产精品小视频 | 黄色免费网站 | 天天干天天干天天射 | 中文字幕中文字幕中文字幕 | 久久综合国产伦精品免费 | 人人澡视频 | 成人国产精品久久久春色 | 九色自拍视频 | 韩国av一区二区三区 | 国产三级视频在线 | 日韩欧在线 | 国产精品成人免费精品自在线观看 | 天天操伊人 | 97在线视频免费观看 | 亚洲伊人网在线观看 | 97超碰在线久草超碰在线观看 | 日韩伦理片一区二区三区 | 8x成人免费视频 | 人人爽人人做 | 国产精品免费高清 | 日韩精品字幕 | 亚洲国产wwwccc36天堂 | 久久久久久高潮国产精品视 | 97人人添人澡人人爽超碰动图 | 成年人免费看av | 超碰人人在线观看 | 99久e精品热线免费 99国产精品久久久久久久久久 | 91丨九色丨蝌蚪丨老版 | 91天天操 | 超碰九九 | 69精品在线 | 粉嫩av一区二区三区免费 | 亚洲国产人午在线一二区 | 国产精品久免费的黄网站 | 午夜av免费看 | 欧美午夜精品久久久久久孕妇 | 六月色丁 | 国产亚洲久一区二区 | 91一区二区三区久久久久国产乱 | 国产一区高清在线观看 | 国产美女视频免费观看的网站 | 韩国av在线播放 | 色偷偷人人澡久久超碰69 | 人人插人人草 | www.国产精品 | 91丨精品丨蝌蚪丨白丝jk | 免费看黄的 | 亚洲成av人电影 | 夜添久久精品亚洲国产精品 | 国产成人在线免费观看 | 精品福利在线 | 婷婷丁香在线视频 | 久久久久女人精品毛片九一 | 久久网址| 国产精品第一页在线观看 | 国产精彩视频一区二区 | 国产成人精品午夜在线播放 | 久久人人爽| 欧美一级在线 | 日韩剧 | 国产精品原创 | 久久国内精品99久久6app | 亚洲精品国产精品国自产观看浪潮 | 麻豆视频免费在线 | 亚洲精品白浆高清久久久久久 | 人交video另类hd | 日韩高清免费在线观看 | 激情久久小说 | 福利网址在线观看 | 日韩免费一区 | 婷婷黄色片 | 亚洲精品97 | 在线观看成人av | 国产手机在线 | 国产呻吟在线 | 国产精品欧美一区二区三区不卡 | 国产999在线| 久草com| 草久中文字幕 | 久久综合久久88 | 五月天丁香亚洲 | 综合色亚洲 | 久久精品视频在线免费观看 | 亚洲狠狠操 | 亚洲精品97 | 久久综合成人网 | 免费精品人在线二线三线 | 91精品视频在线免费观看 | 最近中文字幕免费观看 | 欧美视频二区 | 99久高清在线观看视频99精品热在线观看视频 | 国产最顶级的黄色片在线免费观看 | 99视频在线观看视频 | 午夜精品久久久久久久爽 | 9色在线视频 | 日韩电影精品 | 韩日视频在线 | 91av视频在线观看免费 | 国产网站在线免费观看 | 国产高清视频在线播放一区 | 婷婷网址 | 青青久草在线视频 | 国产精品成久久久久三级 | 最新婷婷色 | 成人国产一区二区 | 婷婷丁香花五月天 | 在线视频一区二区 | 狠狠色丁香婷婷综合久小说久 | av中文字幕网站 | 最新高清无码专区 | 97成人啪啪网 | 中文字幕久久网 | 丁香五婷 | 久久免费视频这里只有精品 | 国产精品亚洲人在线观看 | 国产精品女同一区二区三区久久夜 | 国产一区二区三精品久久久无广告 | 五月天婷亚洲天综合网精品偷 | 国产精品va最新国产精品视频 | .国产精品成人自产拍在线观看6 | 成人性生交大片免费观看网站 | 婷婷丁香在线观看 | www.久草.com | 成人午夜av电影 | 久久97精品 | 亚洲狠狠丁香婷婷综合久久久 | 免费在线成人av | 色视频一区| 久久最新网址 | 99热精品国产一区二区在线观看 | 黄色h在线观看 | 国产午夜三级一二三区 | 国产精品久久久久久久久久免费 | 美国av片在线观看 | 欧美伦理电影一区二区 | av天天在线观看 | 丝袜av一区| 亚洲精品大片www | 91亚洲国产成人 | 五月婷婷综 | 九九久久久久久久久激情 | 在线观看aaa | 成人一级视频在线观看 | 欧美 亚洲 另类 激情 另类 | 99精品视频免费观看 | 国产精品一区免费看8c0m | 国产亚洲人成网站在线观看 | 二区在线播放 | 成人av电影在线 | 国产精品一区二区在线播放 | 在线播放一区 | 午夜精品视频在线 | 久操97| www.狠狠操.com | 91福利视频一区 | 日韩免费电影网站 | 久久视频精品在线观看 | 国产丝袜美腿在线 | 久久伊人精品一区二区三区 | 欧日韩在线 | 成人免费视频网站在线观看 | 麻豆视频在线免费 | 欧美做受xxx | 亚洲国产精品视频在线观看 | 国产精品欧美激情在线观看 | 五月激情久久 | 成人av电影免费观看 | 久久久91精品国产一区二区三区 | 深夜激情影院 | 久久久久久中文字幕 | 成人欧美一区二区三区在线观看 | 黄在线免费观看 | 日韩一区二区免费视频 | 亚洲毛片一区二区三区 | 久久久久99精品成人片三人毛片 | 国产一级片直播 | 成人黄色资源 | 久草国产视频 | 欧美日韩1区 | 国产精品嫩草影院9 | 日韩超碰| 国产999精品久久久久久绿帽 | 国产高清绿奴videos | 深爱激情亚洲 | 欧美精品小视频 | 一区二区三区中文字幕在线 | 91热这里只有精品 | .国产精品成人自产拍在线观看6 | 最新av中文字幕 | 日韩久久影院 | 久久视频精品在线 | 丁香五婷 | 最近中文字幕mv | 高清久久久久久 | 九草视频在线观看 | 欧美性色综合 | 麻豆视频国产精品 | 免费电影一区二区三区 | 91人人揉日日捏人人看 | 免费黄a大片 | 欧美日韩国产二区三区 | 国产精品免费一区二区三区 | 五月在线 | 人人看人人爱 | 激情视频91 | 久久久综合色 | 在线观看免费 | 日韩在线免费小视频 | 国产中文字幕视频在线观看 | 日韩av电影免费在线观看 | 国产黄av | 精品久久久久久久久久久久 | 在线电影中文字幕 | 在线成人小视频 | 久草精品视频在线看网站免费 | 日本在线成人 | 久色小说| 蜜臀91丨九色丨蝌蚪老版 | 在线v片免费观看视频 | 国产女人40精品一区毛片视频 | 国产综合激情 | 在线中文字幕观看 | 在线观看爱爱视频 | 亚洲国产资源 | 国产精品美女网站 | 亚洲自拍偷拍色图 | 96av麻豆蜜桃一区二区 | 国产视频69| 国产在线色 | 91爱看片 | 欧美精品视| 久久中文字幕视频 | 91网址在线观看 | 亚洲国产人午在线一二区 | 2020天天干夜夜爽 | 97国产在线视频 | 免费看片在线观看 | 久久99精品久久久久久久久久久久 | 五月综合激情婷婷 | 99视频免费 | 日韩性片| 免费在线一区二区 | 国产精品一区二区62 | 久久影视一区 | 日日操操 | 午夜精品999 | 中文乱码视频在线观看 | 8x成人在线 | www.com久久| 亚洲精品国产欧美在线观看 | 亚洲美女精品区人人人人 | 91精品国产电影 | 91色蜜桃| 精品国产色 | 日日操夜 | 在线观看亚洲精品 | 久草久草在线观看 | 少妇bbbb搡bbbb桶 | 国产亚洲精品v | 国产涩涩网站 | 久久在线视频在线 | 91亚色视频在线观看 | 波多野结衣网址 | 国产一级片一区二区三区 | 香蕉视频亚洲 | 久久激情小视频 | v片在线播放 | 懂色av一区二区三区蜜臀 | 五月天九九 | 日韩在线观看第一页 | 国产精品高 | 亚洲永久精品在线观看 | 久久av影院 | 亚洲精品在线资源 | 一 级 黄 色 片免费看的 | 国产第一页在线播放 | 天天爱天天操 | 91精品系列 | 久久久久久欧美二区电影网 | 99综合视频 | 免费国产在线精品 | 91成人蝌蚪 | 五月婷香蕉久色在线看 | 日韩中文字幕免费电影 | 日韩精品播放 | 久久久麻豆精品一区二区 | 午夜在线看片 | 午夜精品久久久久久久爽 | 麻豆免费视频 | 91精品1区2区| 97香蕉超级碰碰久久免费软件 | 99久久精品电影 | 亚洲三级在线免费观看 | 一区二区三区播放 | 国产精品色在线 | 亚洲自拍偷拍色图 | 日韩久久午夜一级啪啪 | 久久短视频 | 久久精品最新 | 日韩一区二区三区在线观看 | 婷婷色 亚洲 | 免费在线观看一区二区三区 | 久久久国产毛片 | 97国产在线观看 | 国产精品午夜av | 国产成人一区二区三区在线观看 | 欧美成人亚洲成人 | 日本丶国产丶欧美色综合 | 99tvdz@gmail.com | 久操操 | 在线色亚洲 | 中文av不卡 | 97在线观看视频国产 | 久久婷婷影视 | 国产福利精品一区二区 | 国产精品中文字幕av | 成人在线网站观看 | 色婷婷综合久久久中文字幕 | 国产中文字幕视频在线观看 | 黄色精品免费 | 黄色国产区 | 91av播放 | 免费在线观看黄 | 亚洲片在线资源 | 国产中文字幕三区 | 国产99久 | 天天操夜夜看 | 中文字幕乱码视频 | 精品国产一区二区三区男人吃奶 | 国产字幕在线观看 | 成人aⅴ视频 | 亚洲国产成人精品在线观看 | 国产精品激情偷乱一区二区∴ | 黄网站app在线观看免费视频 | 干干操操 | 国产123av| 久久男人免费视频 | 亚洲综合激情小说 | 午夜av电影| 黄色成品视频 | 97成人资源 |