ABAP基础知识(完整版)---自学

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ABAP基础知识(完整版)-上SAPABAP/4基础知识学习数据类型C:字符串D:日期型格式为YYYYMMDD例:'1999/12/03'F:浮点数长度为8I:整数N:数值组成的字符串如:011,'302'P:PACKED数用于小数点数值如:12.00542T:时间格式为:HHMMSS如:'14:03:00'X:16进制数如:'1A03'*-------------------------------------------------------------------------------------*变量声明DATAF[Length]type[value][decimals]F变量名称lengthtype变量类型及长度value初值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关键字声明的变量仅在目前的程序中使用,结束后会自动释放语法:STATICSc[length]type[value][decimals]系统专用变量说明系统内部专门创建了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关键字则是用在指定资料型态。TABLES关键字用来声明TableWorkArea的数据,对应至ABAP/4资料文件(DictionaryObject),由SQL指令加载所需数据语法:TABLESdbtabExample:TABLES:SPFL.SELECT*FROMSPFL.WRITE:SPFL-MANDT,SPFL-CARRID,SPFL-CONNECTION.ENDSELECT.从ABAP/4Dictionary的SPFL档载入MANDT,CARRID,CONNECTION三个字段至SPFL此TableWorkArea*-------------------------------------------------------------------------------------*输出一.WRITE语句ABAP/4用来在屏幕上输出资料的指令是WRITE指令,例如:WRITE:'USERNAMEIS:',SY-UNAME.二.指定屏幕输出位置指定输出位置的语句格式为:WRITE:[AT][/][pos][(len)]资料项[par]其中:/:在下一行输出pos:指定输出的行号;(len):指定输出位数(长度)par:指定显示格式参数,参数有:LEFT-JUSTIFIED资料*左对齐CENTERED资料*中间对齐RIGHT-JUSTIFIED资料*右对齐UNDERg正对在资料项g的下面显示NO-GAP紧接着显示,不留空格USINGEDITMASKm:使用内嵌子元显示,如12:03:20USINGNOEDITMASK:不使用内嵌子元NO-ZER数字前面0的部分不显示NO-SIGN:不显示正负号DECIMALSd:显示d位小数EXPOENTe:F(浮点数)指数的值ROUNDr:四舍五入至小数点后r位CURRENCYc:币别显示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语句:语法WRITEF1TOF2[option].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[/][pos][(len)]].它等同于WRITE[AT[/][pos][(len)]]SY-ULINE.AT后的格式规范,与在在屏幕上定位WRITE输出(页28)中为WRITE语句说明的格式规范完全一样。如果没有格式规范,系统则开始新的一行,并用水平线填充该行。否则,只按指定输出水平线。生成水平线的另一种方法,是在WRITE语句中键入恰当数量的连字符,如下所示:WRITE[AT[/][pos][(len)]]'-----...'.垂直线用下列语法,可以在输出屏幕上生成垂直线:语法WRITE[AT[/][pos]]SY-VLINE.或WRITE[AT[/][pos]]'|'.空行用下列语法,可以在输出屏幕上生成空行:语法SKIP[n].该语句从当前行开始,在输出屏幕上生成n个空行。如果没有指定n的值,就输出一个空行。要将输出定位在屏幕的指定行上,请使用:语法SKIPTOLINEn.该语句允许将输出位置向上或向下移动。四.显示图示:语法:WRITE:symbol-nameASSYMBOL.WRITE:icon-nameASICON.例如:INCLUDESYMBOL.INCLUDEICON.WRITE:/'Phonesymbol:',SYM_PHONEASSYMBOL.WRITE:/'AlarmIcon:',ICON_VOICE_OUTPUTASICON.要查看系统所提供有那些符号及图示,可选择'EDIT'下的'InsertStatement',选择'Write',接下来选择要查看的群组,如SYMBOL或ICON,接下来按'Display'即可.*-------------------------------------------------------------------------------------*一.InternalTable的声明ABAP/4中的InternalTable是一种DataStructure,类似于其他语言中的STRUTURE,它可以由几个不同类型的栏位(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔资料表示具有相同属性的多个事物.Internaltable的定义有以下几种格式:格式一.DATA:BEGINOFinternaltableOCCURSn,field1TYPEtype1,[field2TYPEtype2,field3TYPEtype3,…]ENDOFinternaltable.语法:DATAftypeOCCURSn[WITHHEADERLINE]Example:DATAVECTORTYPEIOCCURS10WITHHEADERLINE.格式二.TYPES:BEGINOFworkarea,field1TYPEtype1,[field2TYPEtype2,field3TYPEtype3,…]ENDOFworkarea.TYPESinternaltableTYPEworkareaOCCURSn.格式三.DATA:BEGINOFworkarea.INCLUDESTRUCTUREtablename.DATA:ENDOFworkarea.DATA:internaltableLIKEworkareaOCCURSn.exp:TYPESVECTORTYPEIOCCURS10.TYPES:BEGINOFLINE,COLUMN1TYPEI,COLUMN2TYPEI,COLUMN3TYPEI,ENDOFLINE.TYPESITABTYPELINEOCCURS10.TYPES:BEGINOFDEEPLINE,TABLE1TYPEVECTOR,TABLE2TYPEITAB,ENDOFDEEPLINE.TYPESDEEPTABLETYPEDEEPLINEOCCURS10.本示例创建与上例相同的内表数据类型(VECTOR和ITAB)。然后创建数据类型DEEPLINE作为字段串,包含这些内表作为组件。通过该字段串,数据类型DEEPTABLE被创建为内表。因此该内表的元素本身就是内表。exp:TYPES:BEGINOFLINE,COLUMN1TYPEI,COLUMN2TYPEI,COLUMN3TYPEI,ENDOFLINE.TYPESITABTYPELINEOCCURS10.DATATAB1TYPEITAB.DATATAB2LIKETAB1WITHHEADERLINE.同创建内表数据类型(页99)中所示,该示例创建数据类型ITAB作为内表。通过使用DATA语句的TYPE参数引用ITAB,使数据对象TAB1与ITAB结构相同。通过使用DATA语句的LIKE参数引用TAB1,使数据对象TA

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功