您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > ABAP培训第二章基本语法【91ABAP-SAP实战中心】
SAP培训:知道:zhidao.91abap.com1第2章ABAP语言基本语法一、数据类型与数据对象二、字符串处理与流程控制三、程序中的消息SAP培训:知道:zhidao.91abap.com2数据类型的定义:数据类型描述了数据对象的技术属性(类型和长度),用于定义数据对象SAP培训:知道:zhidao.91abap.com3数据对象数据对象(如文本、变量、常量):主要指内存变量。SAP培训:知道:zhidao.91abap.com4ABAP数据类型的使用场合SAP培训:知道:zhidao.91abap.com5定义数据对象DATA变量1TYPE类型1.”的方式来定义一个新的数据对象.或者,DATA变量1LIKE变量2.”的方式来定义一个新的数据对象.SAP培训:知道:zhidao.91abap.com6ABAP数据类型可以直接定义数据对象类型:c、d、p、n、i、f和string.SAP培训:知道:zhidao.91abap.com7ABAP基本数据类型类型长度初始值说明定义数据对象例子D8'00000000'日期型格式:YYYYMMDDDATAmydateTYPEdVALUE'20080106'.I40整型(十进制为十位)DATAmyintTYPEiVALUE10.F80浮点型DATAmyfloatTYPEf.STRING变长‘’可变长字符串DATAmystrTYPEstring.SAP培训:知道:zhidao.91abap.com8ABAP基本数据类型类型默认大小有效大小(字节)初始值说明定义数据对象例子C11-65536SPACE文本、字符DATAs(10)TYPEcVALUE'hello'.N11-65536'00…0'数字文本DATAn1(4)TYPEnVALUE'3.14'.P81-160将两个十进制数字压缩到一个字节DATAp1(6)TYPEpDECIMALS2VALUE'67.56'.SAP培训:知道:zhidao.91abap.com9局部数据类型局部数据类型是由用户在程序自定义的,用TYPES关键字声明局部数据类型,只在被声明的程序中可见,因此称做局部类型。SAP培训:知道:zhidao.91abap.com10定义一个结构类型TYPES:BEGINOFTY_MARC,物料信息结构WERKSTYPEMARC-WERKS,工厂MATNRTYPEMARC-MATNR,物料编号ENDOFTY_MARC.并用它来定义一个工作区和内表SAP培训:知道:zhidao.91abap.com11内表的概念内表是在程序中定义,仅在程序运行时间内,存在于内存中的表格。作用:用来存储数据库表中的数据,实现复杂的的数据操作。特性:内表中的行数并不固定。内表的尺寸由ABAP运行环境自动进行扩展,内表中的记录数量仅限于系统的可用内存限制。SAP培训:知道:zhidao.91abap.com12ABAP数据类型分类ABAP语言中预定义的标准数据类型,如图①数据字典中的全局数据类型,如图②用户在程序中自定义的数据类型,如图③SAP培训:知道:zhidao.91abap.com13SAP培训:知道:zhidao.91abap.com14休息十分钟课间提问:1.什么是数据类型?2.什么是局部数据类型?3.d,c,i,p分别是什么类型?4.什么是工作区、内表?SAP培训:知道:zhidao.91abap.com15ABAP数据对象分类变量常量文字文本文字数字文字SAP培训:知道:zhidao.91abap.com16系统定义的数据对象系统定义的数据对象无需声明,可在程序中直接使用.SY-SUBRC:返回代码值(0代表操作成功)SY-UNAME:当前用户名SY-TCODE:当前事务SY-DATUM:当前日期SY-UZEIT:当前时间SY-REPID:当前程序名SAP培训:知道:zhidao.91abap.com17ABAP语法元素ABAP关键字分类声明型关键字:TYPES,DATA,TABLESTABLES:用来申明与一个数据库表同名的工作区.操作关键字:WRITE,ADD,MOVE-CORRESPONDINGSAP培训:知道:zhidao.91abap.com18整数和整数运算–当系统执行整数运算时,通常会四舍五入DATAintTYPEi.int=4/10.结果为0int=5/10.结果为1SAP培训:知道:zhidao.91abap.com19计算:语法–在ABAP中,可以任意多层嵌套数学表达式。–表达式按一般的代数顺序处理——圆括号最高,接下来是函数、幂、乘除,最后是加减。–DIV(整数除)和MOD(余数)操作都返回整数。SAP培训:知道:zhidao.91abap.com20–在计算时的运行错误:•应该被转换成数值的字段无法被解释成数值•除以0(零不能作除数)SAP培训:知道:zhidao.91abap.com21数据对象赋值通过声明性赋初始值:DATAmyid(10)TYPEcVALUE'100'.通过CLEAR操作使数据对象具有缺省值:CLEARvar1.SAP培训:知道:zhidao.91abap.com22处理字符串连接字符串:CONCATENATEs1...snINTOs[SEPARATEDBYc].拆分字符串:SPLITsATsepINTOs1...sn.获得字符串长度[COMPUTE]n=STRLEN(s).替换字符串内容:REPLACEALLOCCURRENCESOFREGEX','INW_CHARWITH''.*将外部金额转换成内部金额SAP培训:知道:zhidao.91abap.com23ABAP程序的流程控制-逻辑表达式运算符含义EQ或=等于NE或或不等于LT或小于LE或=小于等于GT或大于GE或=大于等于SAP培训:知道:zhidao.91abap.com24检查字段的初始值IFVAR1ISINITIAL.…ENDIF.SAP培训:知道:zhidao.91abap.com25ABAP程序的流程控制-条件分支语句If的条件分支IFcondition1.statementblock1ELSEIFcondition2.statementblock2.....ELSE.statementblocknENDIF.SAP培训:知道:zhidao.91abap.com26组合逻辑表达式使用逻辑连接运算符AND、OR和NOT,将几个逻辑表达式组合为一个表达式:用AND连接用OR连接用NOT取反优先级为:NOT优先于AND,AND优先于OR。建议使用任何小括号组合SAP培训:知道:zhidao.91abap.com27比较字符串运算符含义CO仅包含CN不仅包含CA包含任何(字符)NA不包含任何CS包含字符串NS不包含字符串SAP培训:知道:zhidao.91abap.com28休息十分钟课间提问:1.什么是数据对象?2.系统变量SY-SUBRC代表什么含义?3.赋值时WRITE和MOVE的区别是什么?SAP培训:知道:zhidao.91abap.com29CASE的条件分支CASEv.WHENv1.statementblock1WHENv2.statementblock2WHEN.........WHENOTHERS.statementblocknENDCASE.SAP培训:知道:zhidao.91abap.com30ABAP程序的流程控制-循环语句DO循环DO[nTIMES].statementblockENDDO.带条件的WHILE循环WHILEcondition.statementblockENDWHILE.SAP培训:知道:zhidao.91abap.com31提取数据selectSelect语法结构SELECTresultFROMsource[INTOtarget][WHEREcondition][GROUPBYfields][ORDERBYsort_order].SAP培训:知道:zhidao.91abap.com32子句说明SELECTresultSELECT子句定义选择的结果是单行还是一个表、选择的是哪些列、以及是否将排除相同的行。即:定义选择的结果FROMsourceFROM子句指定即将从中选取数据的数据库表或视图source。即:指定将读取的数据库表INTOtargetINTO子句确定即将读入选定数据的目标区target。该子句也可以放在FROM子句之前。如果没有指定INTO子句,系统将使用表工作区。表工作区是由TANLES语句自动创建的表头行。即:为选定的数值指定目标区WHEREconditionWHERE子句指定将按照指定的条件读取哪些行来作为选择。即:选择(筛选)条件GROUPBYfieldsGROUP-BY子句从几行组成的组中产生了作为结果的单行。一个组是在fields中列出的列中有相同值的行的集合。即:给行分组ORDERBYsort_orderORDER-BY子句为选定的行定义顺序sort_order。即:指定行的顺序SAP培训:知道:zhidao.91abap.com33选择单行数据语法结构selectsingleresultintotargetfromsourcewherecondition…SAP培训:知道:zhidao.91abap.com34选择多行数据选择至内表select…into[correspondingfieldsof]tableitab….SAP培训:知道:zhidao.91abap.com35循环读取内表元素数据LOOP语法:LOOPATitab[INTOwa][WHEREcondition]loopexpressionENDLOOP.实例:LOOPATITABINTOLINEWHERECOL1100.WRITE:/SY-TABIX,LINE-COL1.ENDLOOP.“仅读取COL1100的元素。SAP培训:知道:zhidao.91abap.com36选择字段选择全部字段select*选择指定字段selectfield1field2…from…into..where…selecttab1~field1tab2~field2…from…into…where…SAP培训:知道:zhidao.91
本文标题:ABAP培训第二章基本语法【91ABAP-SAP实战中心】
链接地址:https://www.777doc.com/doc-7534447 .html