SAP必备基础语法.docx

上传人:b****3 文档编号:1431745 上传时间:2022-10-22 格式:DOCX 页数:9 大小:29.88KB
下载 相关 举报
SAP必备基础语法.docx_第1页
第1页 / 共9页
SAP必备基础语法.docx_第2页
第2页 / 共9页
SAP必备基础语法.docx_第3页
第3页 / 共9页
SAP必备基础语法.docx_第4页
第4页 / 共9页
SAP必备基础语法.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

SAP必备基础语法.docx

《SAP必备基础语法.docx》由会员分享,可在线阅读,更多相关《SAP必备基础语法.docx(9页珍藏版)》请在冰豆网上搜索。

SAP必备基础语法.docx

SAP必备基础语法

ABAP基础知识

数据类型C:

字符串D:

日期型格式为YYYYMMDD例:

'1999/12/03'F:

浮点数长度为8I:

整数N:

数值组成的字符串如:

011,'302'P:

PACKED数用于小数点数值如:

T:

时刻格式为:

HHMMSS如:

'14:

03:

00'X:

16进制数如:

'1A03'*-------------------------------------------------------------------------------------*变数宣告DATA[][][decimals]变数名称变数类型及长度初值小数位数exp:

DATA:

COUNTERTYPEPDECIMALS3.NAME(10)TYPECVALUE'DELTA'.S_DATETYPEDVALUE'19991203'.exp:

DATA:

BEGINOFPERSON,NAME(10)TYPEC,AGETYPEI,WEIGHTTYPEDECIMALS2,ENDOFPERSON.另外,有關DATA宣告的指令還有:

CONSTANTS(宣告常數)、STATICS(臨時變數宣告).exp:

CONSTANTSPITYPEPDECIMALS5VALUE'3.14159'.STATICS敘述宣告的變數僅在目前的程式中利用,結束後會自動釋放語法:

STATICS[][][]系統專用變數說明系統內部專門創建了SYST這個STRUCTURE,里面的欄位寄存系統變數,经常使用的系統變數有:

SY-SUBRC:

系統執行某指令后,表示執行成功与否的變數,'0'表示成功SY-UNAME:

當前利用者登入SAP的USERNAME;SY-DATUM:

當前系統日期;SY-UZEIT:

當前系統時間;SY-TCODE:

當前執行程式的TransactioncodeSY-INDEX:

當前LOOP循環過的次數SY-TABIX:

當前處理的是internaltable的第几筆SY-TMAXL:

Internaltable的總筆數SY-SROWS:

屏幕總行數;SY-SCOLS:

屏幕總列數;SY-MANDT:

CLIENTNUMBERSY-VLINE:

畫豎線SY-ULINE:

畫橫線TYPE敘述用來指定資料型態或宣告自定資料型態Example:

TYPES:

BEGINOFMYLIST,NAME(10)TYPEC,NUMBERTYPEI,ENDOFMYLIST.DATALISTTYPEMYLIST.LIKE敘述跟TYPE敘述利用格式相同,如DATATRANSCODELIKESY-TCODE.不同的是LIKE用在已有值的資料項,如系統變數,而TYPE敘述則是用在指定資料型態。

*-------------------------------------------------------------------------------------*输出一.WRITE語句ABAP/4用來在屏幕上輸出資料的指令是WRITE指令,例如:

WRITE:

'USERNAMEIS:

',SY-UNAME.二.指定屏幕輸出位置指定輸出位置的語句格式為:

WRITE:

[AT][/][][()]資料項[]其中:

/:

在下一行輸出:

指定輸出的行號;():

指定輸出位數(長度):

指定顯示格式參數,參數有:

LEFT-JUSTIFIED資料*左對齊CENTERED資料*中間對齊RIGHT-JUSTIFIED資料*右對齊UNDER正對在資料項的下面顯示NO-GAP緊接著顯示,不留空格USINGEDITMASK:

利用內嵌子元顯示,如12:

03:

20USINGNOEDITMASK:

不利用內嵌子元NO-ZER數字前面0的部份不顯示NO-SIGN:

不顯示正負號DECIMALS:

顯示位小數EXPOENT:

F(浮點數)指數的值ROUND:

四舍五入至小數點后位CURRENCY:

幣別顯示DD/MM/YY:

日期顯示格式MM/DD/YY:

YY/MM/DD:

YY/DD/MMMM/DD/YYYY:

DD/MM/YYYYYYYY/MM/DD:

YYYY/DD/MM:

例如1:

WRITE:

/10(6)'ABCDEFGHIJK'.輸出結果為:

ABCDEF例如2:

DATA:

XTYPEIVALUE'11:

20:

30',A(5)TYPECVALUE'ABCDE'.WRITE:

/XUSINGEDITMASK'__:

__:

__'.WRITE:

/XUSINGEDITMASK'$___,___'.WRITE:

/YNO-GAP.輸出結果為:

11:

20:

30$112,030ABCDEF例如3:

DATA:

LENTYPEIVALUE10,POSTYPEIVALUE11,TEXT(10)VALUE'1234567890'WRITE'Thetext------------appearsinthetext.'.WRITEATPOS(LEN)TEXT.WRITETO语句的大体形式要将值(文字)或源字段内容写入目标字段,能够利用WRITETO语句:

语法WRITETO[].DATA:

NUMBERTYPEFVALUE'4.3',TEXT(10),FLOATTYPEF,PACKTYPEPDECIMALS1.WRITENUMBER.WRITENUMBERTOTEXTEXPONENT2.WRITE/TEXT.WRITENUMBERTOFLOAT.WRITE/FLOAT.WRITENUMBERTOPACK.WRITE/PACK.MOVENUMBERTOPACK.WRITE/PACK.exp:

DATA:

NAME(10)VALUE'SOURCE',SOURCE(10)VALUE'Antony',TARGET(10)....WRITE(NAME)TOTARGET.WRITE:

TARGET.exp:

DATA:

COUNTERTYPEI.COMPUTECOUNTER=COUNTER+1.COUNTER=COUNTER+1.ADD1TOCOUNTER.在此,三条运算语句进行相同算术运算输出屏幕上的线和空行用以下语法,能够在输出屏幕上生成水平线:

语法ULINE[AT[/][][()]].它等同于WRITE[AT[/][][()]]SY-ULINE.AT后的格式规范,与在在屏幕上定位WRITE输出(页28)中为WRITE语句说明的格式标准完全一样。

若是没有格式标准,系统那么开始新的一行,并用水平线填充该行。

否那么,只按指定输出水平线。

生成水平线的另一种方法,是在WRITE语句中键入适当数量的连字符,如下所示:

WRITE[AT[/][][()]]'-----...'.垂直线用以下语法,能够在输出屏幕上生成垂直线:

语法WRITE[AT[/][]]SY-VLINE.或WRITE[AT[/][]]'|'.空行用以下语法,能够在输出屏幕上生成空行:

语法SKIP[].该语句从当前行开始,在输出屏幕上生成个空行。

如果没有指定的值,就输出一个空行。

要将输出定位在屏幕的指定行上,请利用:

语法SKIPTOLINE.该语句许诺将输出位置向上或向下移动。

2.利用條件式語法:

UPDATESET=…WHERE根據條件式異動符合條件式的記錄Example:

UPDATESPFLISETNO='34051920'COMPANY='DELTA'WHERETEL='4526107'.*-------------------------------------------------------------------------------------*3.MODIFY語法MODIFY[FROM].根據PrimaryKey尋找資料檔中符合的記錄,假设找到則更新異動,假设找不到則新增記錄語法:

MODIFYFROMExample:

WA-NO='34051920'.WA-COMPANY='DELTA'.MODIFYSPFLIFROMWA.4.DELETE語法DELETE[FROM].或:

DELETE[WHERE]刪除資料檔的記錄1.利用PrimaryKey語法:

DELETEFROMExample:

TABLESSPFLI.DATAWALIKESPFLI.WA-NO='34051920'.WA-COMPANY='DELTA'.DELETESPFLIFROMWA.如SPFLI的PrimaryKey是NO,則會找到NO='34051920'的記錄,找到後將此筆刪除2.利用條件式語法:

DELETEFROMWHERE根據條件式刪除符合條件式的記錄Example:

DELETEFROMSPFLIWHEREAREA='AMERICAN'.*-------------------------------------------------------------------------------------*5.DATABASECURSORDatabaseCursor是一個資料庫暫存區,將經SELECT指令讀取的記錄寄存至此暫存區,再由此暫存區放至WorkArea中,可減少資料庫讀取的次數.1.開啟DatabaseCursor語法:

OPENCURSORFORSELECT…WHEREExample:

TABLESSPFLI.DATA:

WALIKESPFLI,C1TYPECURSOR.OPENCURSORC1FORSELECT*FROMSPFLIWHEREAREA='TAIWAN'.2.讀取DatabaseCursor的資料存入WorkArea語法:

FETCHNEXTCURSORINTOExample:

FETCHNEXTCURSORC1INTOWA.讀取下一筆Cursor位置的資料存入WA,若是已無資料可讀,SY-SUBRC<>0.關閉DatabaseCursor語法:

CLOSECURSORExample:

CLOSECURSORC1.*-------------------------------------------------------------------------------------*COMMITWORK&ROLLBACKWORK要確定資料成功寫入資料庫,可利用COMMITWORK指令,如:

COMMITWORK.相反的,若是反悔要復原,可利用ROLLBACKWORK,可復原在上個COMMITWORK指令之後的資料,如:

ROLLBACKWORK.*-------------------------------------------------------------------------------------*利用NATIVESQL指令語法格式:

EXECSQL[PERFORMING

窗体顶端

].ENDEXEC.舉例一.EXECSQL.CREATETABLEAVERI_CLNT(CLIENTCHAR(3)NOTNULL,ARG1CHAR(3)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1