版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
ABAP程序介紹
李國慶ABAP程序介紹1Sap發(fā)展歷史
1972年,五名IBM的員工離開了IBM,在德國曼海母創(chuàng)建了SAP公司.SAP的第一個產(chǎn)品是一個自動化財務(wù)和交易程序.命名RF,就是后來的R/11979年,SAP推出用于大型機的R/2.1992年,SAP推出了著名的R/3.它建立在SAPBASIS平臺的基礎(chǔ)上,包括大家非常熟悉的SD,MM,FI,CO,PP..等模塊.1996年,隨著互聯(lián)網(wǎng)的迅猛發(fā)展,SAP推出了支持Internet的新版R/33.1.1999年,SAP推出所謂的mySAPBusinessSuit.這其實又是新版的R/3,不過包含了CRM(Customer
Relationship
Management)和SCM(SupplyChainManagement)產(chǎn)品.ERP的版本變?yōu)?.6C,到后來的4.7.2004年,推出mySAPERP2004,技術(shù)平臺為SAPWAS6.4.2005年,推出mySAPERP2005,技術(shù)平臺為SAPWAS7.0.Sap發(fā)展歷史
1972年,五名IBM的員工離開了IBM,2
SAPRelease版本之間的差異和關(guān)系
版本4.6C以前是所謂傳統(tǒng)的R3系統(tǒng),建立在SAPBasis平臺的基礎(chǔ)上版本4.70以后,改為R3Enterprise,最大的變化是SAPWAS取代了傳統(tǒng)的Basis平臺,核心業(yè)務(wù)功能模塊也作了劃分;R3Enterprise之后改稱為mySAPERP2004-ECC5.0,推出了NetWeaver2004-集成應(yīng)用平臺.2005第4季度開始mySAPERP2005-ECC6.0的準(zhǔn)備,最大的變化將是全面轉(zhuǎn)向ESA體系(基于消息機制的企業(yè)應(yīng)用體系),并引入了新的功能模塊,比如PLM和SRM.
SAPRelease版本之間的差異和關(guān)系版本4.6C3應(yīng)用結(jié)構(gòu)應(yīng)用結(jié)構(gòu)4SAP的三層架構(gòu)體系SAP的三層架構(gòu)體系5ABAP開發(fā)和運行環(huán)境的圖例.ABAP開發(fā)和運行環(huán)境的圖例.6可用的工具可用的工具7傳輸傳輸8質(zhì)量保證質(zhì)量保證9運行過程運行過程10ABAP AdvancedBusinessApplicationProgramming的縮寫,是SAPR/2,R/3版本時期唯一的系統(tǒng)開發(fā)工具.目前的版本是ABAP/4。ABAP11ABAP介紹ABAP是SAPERP主要的開發(fā)軟件可以滿足企業(yè)的特定的需要,對通過系統(tǒng)配置不能實現(xiàn)的功能進行二次開發(fā)可以進行各種類型的程序、界面、業(yè)務(wù)流程設(shè)計,如企業(yè)報表、企業(yè)單據(jù)、與第三方系統(tǒng)的接口等ABAP介紹12ABAP程序分類可執(zhí)行程序:可分配事務(wù)代碼直接運行:報表、事務(wù)模塊化程序為其它程序提供模塊化支持不能單獨運行包括:功能模塊,include程序ABAP程序分類可執(zhí)行程序:13內(nèi)容報表基本語法內(nèi)表操作ABAP數(shù)據(jù)庫操作屏幕輸出Smartforms內(nèi)容報表14報表程序以report開頭不修改數(shù)據(jù)庫而從數(shù)據(jù)庫表格中讀取并分析數(shù)據(jù)的程序。結(jié)果通常是以列表的形式輸出到屏幕或發(fā)送到打印機上分為普通報表和交互式報表普通報表程序輸出結(jié)果格式固定,不能對其進行交互式操作;交互式報表程通過特定的觸發(fā)事件,比如雙擊,菜單,按鈕和功能鍵.可以對報表結(jié)果進行操作;報表程序15報表程序結(jié)構(gòu)ABAP是事件驅(qū)動的語言,程序的運行由事件引導(dǎo)由過程塊組成程序架構(gòu)事件關(guān)鍵字之間或事件關(guān)鍵字與form關(guān)鍵字之間的語句形成一個過程塊form和endform之間的語句形成一個子程序,子程序在過程塊中被調(diào)用報表程序結(jié)構(gòu)ABAP是事件驅(qū)動的語言,程序的運行由事件引導(dǎo)16報表程序組成全局申明過程塊子程序類型、變量、屏幕一個事件發(fā)生時執(zhí)行的模塊優(yōu)化程序的結(jié)構(gòu)報表程序組成全局申明類型、變量、屏幕一個事件發(fā)生時執(zhí)行的模塊17事件屬于某一特定事件關(guān)鍵字的語句形成一個過程塊原則上每個過程塊塊由各自的關(guān)鍵字為起始;事件塊的結(jié)束標(biāo)志為下一個事件塊的關(guān)鍵字;事件塊由ABAP運行時調(diào)用,其調(diào)用順序固定,與程序編碼順序無關(guān);缺省的事件塊START-OF-SELECTION事件屬于某一特定事件關(guān)鍵字的語句形成一個過程塊18主要事件塊關(guān)鍵字INITIALIZATIONATSELECTION-SCREENSTART-OF-SELECTIONTOP-OFEND-OFATLINE-SELECTION ATPFATUSER-COMMAND在選擇屏幕顯示前,對變量進行初始化賦值對選擇屏幕的數(shù)據(jù)輸入進行檢查選擇屏幕處理完后,數(shù)據(jù)的處理列表顯示啟動新頁,頁頭的輸出一頁結(jié)束時,頁尾的處理用戶雙擊選中某行觸發(fā)該事件當(dāng)用戶功能健時,觸發(fā)該事件設(shè)置自定義的菜單主要事件塊關(guān)鍵字INITIALIZATION在選擇屏幕顯示前19事件塊的簡單處理過程事件塊的簡單處理過程:ABAP程序運行的時候,INITIALIZATION首先被調(diào)用;經(jīng)過初始化的輸入屏幕會顯示在表示服務(wù)器;用戶離開輸入屏幕的時候,START-OF-SELCTION事件會被自動調(diào)用;結(jié)果數(shù)據(jù)會以列表的形式顯示在第二個屏幕上;事件塊的簡單處理過程事件塊的簡單處理過程:20事件塊的語法源代碼中的事件塊順序不影響事件的執(zhí)行順序事件塊的語法源代碼中的事件塊順序不影響事件的執(zhí)行順序21INITIALIZATION通常在此事件塊中設(shè)定輸入屏幕字段的初始值
例如:INITIALIZATION.P_DATE=‘20030201’.效果:輸入屏幕的日期字段初始顯示值為2003年2月1日事件塊編碼規(guī)則(1)INITIALIZATION例如:INITIALIZAT22ATSELECTION-SCREEN通常在此事件塊中進行用戶輸入數(shù)據(jù)的合法性檢查,發(fā)現(xiàn)錯誤則以消息的形式給出警示,直到用戶輸入正確的數(shù)值
例如:ATSELECTION-SCREEN.IFP_DATE=SPACE.MESSAGEE001.ENDIF.效果:如果字段P_DATE為空,則程序會用消息001“日期字段不能為空!”來提示用戶必須輸入一個日期。而且輸入屏幕會等待用戶輸入,知道該字段數(shù)值合法事件塊編碼規(guī)則(2)ATSELECTION-SCREEN例如:ATSELE23START-OF-SELCTION通常在此事件中針對業(yè)務(wù)需求進行系統(tǒng)數(shù)據(jù)的查詢例如:start-of-selection.performget_data_for_oil.效果:在輸入屏幕用戶按下執(zhí)行按鈕后,子程序get_data_for_oil被執(zhí)行,在其中獲得業(yè)務(wù)相關(guān)的數(shù)據(jù)存放到內(nèi)表或者其它變量,這些數(shù)據(jù)在END-OF-SELECTION事件塊中被輸出事件塊編碼規(guī)則(3)START-OF-SELCTION例如:事件塊編碼規(guī)則(3)24END-OF-SELCTION通常在此事件中進行結(jié)果清單的輸出例如:end-of-selection.write:23(1)sy-vline,24(20)tab-gas_planright-justified,效果:數(shù)據(jù)以清單的形式輸出事件塊編碼規(guī)則(4)END-OF-SELCTION例如:事件塊編碼規(guī)則(4)25事件塊編碼規(guī)則(5)ATLINE-SELECTION用于用戶交互,當(dāng)用戶雙擊頁面時,啟動該事件.例如:atline-selection.GETCURSORFIELDl_fieldLINEl_line.效果:獲取用戶點擊的行號和變量名事件塊編碼規(guī)則(5)ATLINE-SELECTION例如:26事件塊編碼規(guī)則(5)
SET
PF-STATUS<STATUS>設(shè)置用戶自定義菜單AT-USER-COMMAND設(shè)置功能碼的響應(yīng)操作事件塊編碼規(guī)則(5)
SET
PF-STATUS<STAT27ABAP程序詳細介紹解讀課件28選擇屏幕選擇屏幕29ABAP程序詳細介紹解讀課件30內(nèi)容報表基本語法內(nèi)表操作ABAP數(shù)據(jù)庫操作屏幕輸出Smartforms內(nèi)容報表31本小節(jié)包含內(nèi)容數(shù)據(jù)類型定義選擇屏幕基本數(shù)據(jù)操作WRITE語句控制語句本小節(jié)包含內(nèi)容數(shù)據(jù)類型32數(shù)據(jù)類型定義一個簡單的數(shù)據(jù)類型定義一個結(jié)構(gòu)化的數(shù)據(jù)類型定義一個內(nèi)表形式的數(shù)據(jù)類型數(shù)據(jù)類型定義一個簡單的數(shù)據(jù)類型33ABAP數(shù)據(jù)類型ABAP數(shù)據(jù)類型341,TYPES<t>[TYPE<type>|LIKE<obj>].2,TYPES<t>[(<length>)][TYPE<type>|
LIKE<obj>][DECIMALS<dec>].3,TYPES<t>.4,TYPES:BEGIN
OF<structure>,
<ti>...,
END
OF<structure>.5,TYPES<t>TYPE|LIKE<tabkind>OF<linetype>[WITH<key>].TYPES語句格式1,TYPES<t>[TYPE<type>|LIKE35通過系統(tǒng)標(biāo)準(zhǔn)類型定義通過數(shù)據(jù)庫表字段定義自定義結(jié)構(gòu)類型
TYPES語句實例TYPES:numberTYPEi,
lengthTYPEpDECIMALS2,code(3)TYPEc.TYPES:company
LIKEspfli-carrid.TYPES:BEGINOFaddress,
name
TYPEsurname,
street(30)TYPEc,
city
TYPEspfli_type-cityfrom,
ENDOFaddress.通過系統(tǒng)標(biāo)準(zhǔn)類型定義TYPES語句實例TYPES:numb36定義一個簡單類型的變量定義一個結(jié)構(gòu)化的數(shù)據(jù)對象定義一個內(nèi)表DATA語句—定義數(shù)據(jù)對象定義一個簡單類型的變量DATA語句—定義數(shù)據(jù)對象371,DATA<f>...[TYPE<type>|LIKE<obj>]...
[VALUE<val>].2,DATA<f>[(<length>)]TYPE<type>[DECIMALS<d>].3,DATA<f>.4,DATA:BEGINOF<structure>,
<fi>...,
ENDOF<structure>.DATA語句格式1,DATA<f>...[TYPE<type>|LI38DATA語句定義內(nèi)表DATA語句定義內(nèi)表39TYPES:BEGINOFstruct,
number_1TYPEi,
number_2TYPEpDECIMALS2,
ENDOFstruct.DATA:
wa_structTYPEstruct,
number
LIKEwa_struct-number_2,
date
LIKEsy-datum,
time
TYPEt.DATA:BEGINOFw_data,
number_3TYPEi,
number_4TYPEpDECIMALS2,
ENDOFw_data.DATA語句實例通過結(jié)構(gòu)類型定義結(jié)構(gòu)數(shù)據(jù)直接定義結(jié)構(gòu)數(shù)據(jù)TYPES:BEGINOFstruct,
40詳細見SYST表SY-SUBRC:ReturncodeforABAPstatements
(zeroifastatementisexecutedsuccessfully)SY-UNAME:logonnameoftheuserSY-REPID:CurrentABAPprogramSY-TCODE:currenttransactionSY-INDEX:NumberofthecurrentlooppassSY-DATUM系統(tǒng)日期SY-UZEIT系統(tǒng)時間預(yù)定義的數(shù)據(jù)對象詳細見SYST表預(yù)定義的數(shù)據(jù)對象41CONSTANTS:cns_piTYPEPDECIMALS10VALUE'3.1415926536‘,cns_flag(1)typecvalue‘X’.CONSTANTS:BEGINOFmyaddress,
name(20)
TYPEcVALUE'FredFlintstone',
street(20)
TYPEc
VALUE'CaveAvenue',
umber
TYPEp
VALUE
11,
postcode(5)TYPEn
VALUE
98765,
city(20)
TYPEc
VALUE
'Bedrock',
ENDOFmyaddress.常量定義CONSTANTS:cns_piTYPEPDECIM42選擇屏幕什么是選擇屏幕選擇屏幕是報表程序的一部分,通過設(shè)計選擇屏幕以便交互輸入字段值和選擇標(biāo)準(zhǔn)。在報表程序啟動之后,用戶在該屏幕中輸入值。選擇屏幕的實現(xiàn)方法通過簡單的語句創(chuàng)建字段、復(fù)選框、單選按鈕,并設(shè)計屏幕布局通過PARAMETERS語句,使用戶能夠給變量分配值通過SELECT-OPTIONS語句,使用戶能夠確定變量的區(qū)域選擇屏幕什么是選擇屏幕43PARAMETERS語句SELECT-OPTIONS語句選擇屏幕PARAMETERS語句選擇屏幕44SELECTION-SCREENBEGINOFBLOCK<block>
[WITHFRAME[TITLE<title>]]
PARAMETERS:…..SELECT-OPTIONS:…
SELECTION-SCREENENDOFBLOCK<block>.EXAMPLE:SELECTION-SCREENBEGINOFBLOCKRAD1
WITHFRAMETITLETEXT-002.
PARAMETERS:R1RADIOBUTTONGROUPGR1,
R2RADIOBUTTONGROUPGR1,
R3RADIOBUTTONGROUPGR1.
SELECTION-SCREENENDOFBLOCKRAD1.SELECTION-SCREEN語法SELECTION-SCREENBEGINOFBLOC45PARAMETERS<p>[(<length>)][TYPE<type>|LIKE<obj>][DECIMALS<d>][DEFAULT<f>][OBLIGATORY].PARAMETERS<p>ASCHECKBOXPARAMETERS<p>RADIOBUTTONGROUP<radi>
PARAMETERS語法EXAMPLE:PARAMETERSp_datumLIKEsy-datum.PARAMETERSp_checkboxTYPEcASCHECKBOX.PARAMETERSp_radioTYPECRADIOBUTTONGROUPradio1.PARAMETERS<p>[(<length>)][T46SELECT-OPTIONS語法SELECT-OPTIONS
<seltab>
FOR
<f>[DEFAULT
<g>
TO
<h>].SELECT-OPTIONSs_datumFORsy-datumDEFAULT‘20070101’TO‘20080101’.SELECT-OPTIONS語法SELECT-OPTIONS47PARAMETERS語法PARAMETERS語法48Write語句按照指定的格式把變量里邊的數(shù)據(jù)輸出到屏幕根據(jù)選項的不同,WRITE語句可以輸出到屏幕、輸出到變量、以復(fù)選框的形式輸出、以圖標(biāo)的格式輸出語法WritefWriteAT[/][<pos>][(<len>)]f.
SKIP[<n>].產(chǎn)生n個空白行SKIPTOLINE[<n>].跳到指定行
Writef<顯示格式參數(shù)>.ULINE{[AT][/][pos][(len)]}[NO-GAP]Write語句按照指定的格式把變量里邊的數(shù)據(jù)輸出到屏幕49LEFT-JUSTIFIED資料靠左顯示CENTERED資料靠中間顯示RIGHT-JUSTIFIED資料靠右顯示
UNDER<g>在資料項<g>的X軸開始坐標(biāo)顯示NO-GAP緊接著顯示,不留空格USINGEDITMASK<m>使用內(nèi)嵌字符顯示,如11:20:30USINGNOEDITMASK不使用內(nèi)嵌字符NO-ZERO數(shù)字前面0的部分不顯示NO-SIGN不顯示正負號DECIMALS<d>顯示d位小數(shù)字數(shù)EXPONENT<e>F(浮點數(shù))exponent的值ROUND<r>四舍五入至小數(shù)位數(shù)下r位CURRENCY<c>幣別顯示DD/MM/YY日期顯示格式顯示格式參數(shù)LEFT-JUSTIFIED資料靠左顯50
DATA:
X
TYPE
I
VALUE
'112030'.WRITE
X
USING
EDIT
MASK
'__:__:__'.WRITE
X
USING
EDIT
MASK
'$___,___'.
WRITE語句的例子一
WRITE
'First
Line'.
WRITE
/6
'Second
Line'.
DATA:
NUMBER
TYPE
I
VALUE
'1234',
TEXT(10)
VALUE
'ABCDEFGHIJ'.WRITE:
(5)
NUMBER,
/(6)
TEXT.DATA:
X
TYPE
I
VALUE
'11251WRITE語句的例子二ULINE
AT
10(10).
WRITE:
/10
sy-vline,
11(8)
'Text'
CENTERED,
19
sy-vline.
ULINE
AT
/10(10).WRITE語句的例子二ULINE
AT
10(10).
WR52基本數(shù)據(jù)操作數(shù)據(jù)賦值--使用MOVEMOVE<F1>TO<F2>MOVE<F1>[+<O1>]TO<F2>[+<O2>].MOVE-CORRESPODING<STRUCT1>TO<STRUCT2>.數(shù)據(jù)賦值—使用WRITE,將f1的值格式化至C型變量WRITE<F1>TO<F2>.WRITE(<F1>)TO<F2>.基本數(shù)據(jù)操作數(shù)據(jù)賦值--使用MOVE53基本數(shù)據(jù)操作DATA:
F1(10)
VALUE
'ABCDEFGHIJ',
F2(10)
,
F3(10).MOVE
F1
TO
F2.MOVE
F1+3(5)
TO
F3.WRITE:
/
F2
,
F3.DATA:BEGINOFADDRESS,FIRSTNAME(10)VALUE‘LULU’, LASTNAME(10)VALUE‘CHOU’,TEL(12)VALUE‘4660570’,ENDOFADDRESS.DATA:BEGINOFNAME,FIRSTNAME(10), LASTNAME(10),E_MAIL(30),ENDOFNAME.MOVE-CORRESPONDINGADDRESSTONAME.基本數(shù)據(jù)操作DATA:
F1(10)
VALUE
'ABCD54基本數(shù)據(jù)操作DATA:
int
TYPE
IVALUE
100,
ch(10)
TYPE
C.WRITE
int
TO
ch.DATA:
F1(10)
VALUE
'ABCDEFGHIJ',
F2(10)
,
F3(10).MOVE
F1
TO
F2.MOVE
F1+3(5)
TO
F3.WRITE:
/
F2
,
/
F3.基本數(shù)據(jù)操作DATA:
int
TYPE
IVALUE
55清除變量內(nèi)容CLEAR<f>清除變量現(xiàn)在內(nèi)容,恢復(fù)成初值Example:DATANTYPEIVALUE‘100’.WRITEN.“100CLEARN.WRITE/N.“0
基本數(shù)據(jù)操作清除變量內(nèi)容基本數(shù)據(jù)操作56算術(shù)操作**冪*乘/除+加-減DIV整數(shù)除法MOD余數(shù)除法基本數(shù)據(jù)操作算術(shù)操作基本數(shù)據(jù)操作57數(shù)值函數(shù)
ABS(N):傳回數(shù)值N的絕對值
SIGN(N):1ifN>0
0ifN=0-1ifN<0CEIL(N):傳回大于數(shù)值N的最小整數(shù)
FLOOR(N):傳回小于數(shù)值N的最大整數(shù)
TRUNC(N):傳回數(shù)值N的整數(shù)部分
FRAC(N):傳回數(shù)值N的小數(shù)部分
COS(A),SIN(A),TAN(A):傳回三角函數(shù)cosA,sinA,tanA的值,A為弳度量EXP(N):傳回e^N值
LOG(N):傳回
logeN值
LOG10(N):傳回
logN值SQRT(N):傳回
N的平方根值
基本數(shù)據(jù)操作數(shù)值函數(shù)基本數(shù)據(jù)操作58日期與時間運算
1.日期數(shù)據(jù)的運算.日期數(shù)據(jù)可以直接運算,如加法與減法
DATA:MdataTYPED.Mdate=SY-DATUM.“如傳回19971015
Mdate+6(2)=‘01’“Mdate變成19971001
Mdate=Mdate-1“Mdate變成19970931
2.時間數(shù)據(jù)的運算 時間格式為‘hhmmss’,如‘212030’表’21:20:30’ DATA:HOURSTYPEI, MINUTESTYPEI,
T2TYPETVALUE‘200000’,T1TYPETVALUE‘183000’.HOURS=(T2-T1)/3600.“計算有幾小時MINUTES=(T2–T1)/60.“計算幾分鐘
基本數(shù)據(jù)操作日期與時間運算 基本數(shù)據(jù)操作59字符串?dāng)?shù)據(jù)處理
1.字符串移位語法:SHIFT<c>[BY<n>PLACES][<modes>]<modes>:(1).空白,字符串往左移一位
(2).LEFT,字符串往左移n位(3).RIGHT,字符串往右移n位(4).CIRCULAR:字符串以環(huán)狀方式移位舉例:DATASTRING(10)VALUE‘ABCDEFGHIJ’SHIFTSTRING.“得到‘BCDEFGHI’SHIFTSTRINGBY2PLACESRIGHT.“得到‘BDCDEFGHI’基本數(shù)據(jù)操作字符串?dāng)?shù)據(jù)處理基本數(shù)據(jù)操作60基本數(shù)據(jù)操作字符串移位2.取代字符串內(nèi)容語法:REPLACE<string1>WITH<string2>INTO<c>舉例:DATA:STRING(10)VALUE‘ABCDEFGHI’,STR1(3)VALUE‘DEF’,STR2(3)VALUE‘123’.REPLACESTR1WITHSTR2INTOSTRING.WRITE/STRING.“得到ABC123GHI基本數(shù)據(jù)操作字符串移位61字符串?dāng)?shù)據(jù)處理3.大小寫的轉(zhuǎn)換語法:TRANSLATE<c>TOUPPERCASE.“轉(zhuǎn)成大寫TRANSLATE<c>TOLOWERCASE.“轉(zhuǎn)成小寫4.字符串長度語法STRLEN(<c>)Example:
INT=STRLEN(‘XYZABC’).“得到65.拆分字符串
語法
SPLITdobjATsepINTO{{result1result2...}|{TABLEresult_tab}}
基本數(shù)據(jù)操作字符串?dāng)?shù)據(jù)處理基本數(shù)據(jù)操作62比較符號
=或EQ:等于
<>或><或NE:不等于<或LT:小于<=或LE:小于等于>或GT:大于
>=或GE:大于等于AND:與OR:或
NOT:非控制語句(1)比較符號控制語句(1)63IF語句
IF<Condition1><Statement1>ELSEIF<Condition2><Statement2>ELSEIF<Condition3>
<Stetement……ENDIF.控制語句(2)條件語句CASE語句CASE<f>
WHEN<f11>OR<f12>OR..]<Statementblock>WHEN<f21>OR<f22>OR..]<Statementblock>…..ENDCASE.IF語句控制語句(2)條件語句CASE語句64循環(huán)語句
1.計次循環(huán)DO[nTIMES][VARYING<f>FROM<start>TO<end>.<StatementBlock>.ENDDO.
DO2TIMES.WRITE/‘X’.ENDDO.2.條件循環(huán)WHILE<Condition>.<StatementBlock>ENDWHILE.
I=1.S=0. WHILEI<=10.S=S+I.I=I+1.ENDWHILE.控制語句(3)循環(huán)語句控制語句(3)65控制循環(huán)語句
CONTINUE跳到下一次循環(huán)DO3TIMES.IFSY-INDEX=2.CONTINUEWRITESY-INDEX.
ENDDOCHECK<Condition>條件不滿足則跳到下一次循環(huán)DO5TIMES.CHECKSY-INDEXBETWEEN2AND4.WRITESY-INDEX.ENDDO
EXIT.結(jié)束循環(huán)
DO10TIMES.IFSY-INDEX=4.EXIT.ENDIFWRITESY-INDEX.ENDDO.
控制語句(4)控制循環(huán)語句控制語句(4)66內(nèi)容報表基本語法內(nèi)表操作ABAP數(shù)據(jù)庫操作屏幕輸出Smartforms內(nèi)容報表67什么是內(nèi)表在程序運行事件存在的表格,行數(shù)動態(tài)可以使用內(nèi)表在數(shù)據(jù)庫表格的子集上執(zhí)行表格計算根據(jù)程序需要重新組織數(shù)據(jù)庫表格的內(nèi)容什么是內(nèi)表在程序運行事件存在的表格,行數(shù)動態(tài)68定義內(nèi)表定義內(nèi)表類型
TYPES<t>TYPE|LIKE<tabkind>OF<linetype>[WITH<key>][INITIALSIZE<n>].定義內(nèi)表對象參考已經(jīng)聲明的內(nèi)表類型、DATA<itab>TYPE<type>|LIKE<obj>
[WITHHEADERLINE].聲明一個新的內(nèi)表
DATA<itab>TYPE|LIKE<tabkind>OF<linetype>WITH<key>[INITIALSIZE<n>][WITHHEADERLINE].定義內(nèi)表定義內(nèi)表類型69操作內(nèi)表操作內(nèi)表70內(nèi)表操作INSERTLINESOFitab1[FROMn1][TOn2]INTO[TABLE]itab2[INDEXidx]APPENDLINESOFitab1[FROMn1][TOn2]TOitab2READTABLEitabINTOwaINDEXidx.READTABLEitabWITHKEYk1=f1…ki=fi[INTOwa]MODIFYitab[FROMwa][INDEXidx][TRANSPORTINGf1f2..]MODIFYitabFROMWATRANSPORTINGf1f2…WHEREcond.DELETEitabINDEXidxDELETETABLEitabWITHTABLEKEYk1=f1…ki=fiDELETEitab[FROMn1][TOn2][WHEREcond]LOOPATitabINTOwa[FROMn1][TOn2][WHEREcond]ENDLOOP.內(nèi)表操作INSERTLINESOFitab1[FRO71內(nèi)表操作對整個內(nèi)表進行操作MOVE<itab1>[[]]TO<itab2>[[]].DATA:BEGINOFLINE,
COL1,
COL2,
ENDOFLINE.DATA:ETABLIKETABLEOFLINEWITHHEADERLINE,
FTABLIKETABLEOFLINE.LINE-COL1='A'.LINE-COL2='B'.APPENDLINETOETAB.MOVEETAB[]TOFTAB.LOOPATFTABINTOLINE.
WRITE:/LINE-COL1,LINE-COL2.ENDLOOP.
Theoutputis:AB內(nèi)表操作對整個內(nèi)表進行操作72操作內(nèi)表對內(nèi)表進行初始化CLEAR<itab>.CLEAR<itab>[].REFRESH<itab>.FREE<itab>.比較內(nèi)表
<itab1><operator><itab2>...<operator>:EQ,=,NE,<>,><,GE,>=,LE,<=,GT,>,LT,<
排序內(nèi)表
SORT<itab>[ASCENDING|DESCENDING][ASTEXT][STABLE].操作內(nèi)表對內(nèi)表進行初始化73內(nèi)容報表基本語法內(nèi)表操作數(shù)據(jù)庫操作屏幕輸出Smartforms內(nèi)容報表74OPENSQL目的:避免不同的數(shù)據(jù)庫表直接的不兼容性,使ABAP/4程序能在應(yīng)用中獨立于數(shù)據(jù)庫系統(tǒng)。OPENSQL目的:避免不同的數(shù)據(jù)庫表直接的不兼容性,使75SELECT語句SELECT
<result>
INTO
<target>
FROM
<source>
[WHERE
<condition>]
[GROUPBY<fields>]
[HAVING
<cond>]
[ORDERBY<fields>].數(shù)據(jù)庫操作數(shù)據(jù)庫操作76WHERE語句BETWEEN<g1>AND<g2>LIKE<g> _表示一個字符 %表示一個字符串IN(<g1>….<g2>)數(shù)據(jù)庫操作(4)--OPENSQLWHERE語句數(shù)據(jù)庫操作(4)--OPENSQL77多表結(jié)合查詢
LEFTOUTERJOIN
SELECT..FROMtableLEFT[OUTER]JOINdbtab[ASaliasA]ON<cond>INNORJOINSELECT…FROMtable[INNER]JOINjointable1[ASaliasA]ON<cond>SELECTp~carridp~connidf~fldateINTOCORRESPONDINGFIELDSOFTABLEitabFROM(spfliASpINNERJOINsflightASfONp~carrid=f~carridANDp~connid=f~connid)WHEREp~cityfrom='FRANKFURT'ANDp~cityto='NEWYORK'.數(shù)據(jù)庫操作(6)--
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年農(nóng)莊土地承包經(jīng)營權(quán)轉(zhuǎn)讓協(xié)議版
- 2024版裝修一口價協(xié)議細則版
- 幼兒園垃圾分類處理工作方案
- 2024-2025學(xué)年度上學(xué)期高一數(shù)學(xué)期中模擬試題3含答案
- 電焊氣焊和切割專項施工方案
- 游船項目招商協(xié)議書
- N2-N2-Dimethylguanosine-Standard-生命科學(xué)試劑-MCE
- 班級管理學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- BIM技術(shù)應(yīng)用學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- Mobam-生命科學(xué)試劑-MCE
- 安全生產(chǎn)培訓(xùn)系列課件之安全生產(chǎn)意識篇.ppt
- 高路堤邊坡水毀防護穩(wěn)固措施分析
- 銀行審計部工作職責(zé)
- 教育實習(xí)對學(xué)前教育師范生職業(yè)認同的影響-幼有所育政策背景下的研究_2
- 勞務(wù)分包合同結(jié)算單標(biāo)準(zhǔn)格式(共3頁)
- 復(fù)合地基靜載荷試驗、動力觸探檢測完整報告一套
- 人教版四年級上冊數(shù)學(xué)《第三單元角的度量 整理和復(fù)習(xí)》教學(xué)課件
- ERP系統(tǒng)常見物料分類及編碼規(guī)則
- 起重機吊裝方案.doc
- 技術(shù)咨詢合同上海市科學(xué)技術(shù)委員會
- GPS生產(chǎn)方式 通過徹底地排除浪費從而降低成本的推進方略剖析
評論
0/150
提交評論