《ABAP语法概述》PPT课件.ppt_第1页
《ABAP语法概述》PPT课件.ppt_第2页
《ABAP语法概述》PPT课件.ppt_第3页
《ABAP语法概述》PPT课件.ppt_第4页
《ABAP语法概述》PPT课件.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ABAP,l 了解ABAP l ABAP语法概述 l ABAP语言的数据类型 l ABAP的语法格式 l 结构类型和结构体 l 内表 l 数据库操作,ABAP,ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。,语法概述,ABAP基本语法特点 由各自独立的语句构成。 每个语句的第一个单词必须是ABAP关键字。 单词之间至少要用一个空格分隔。 每个语句结束必须要用句号。 一个语句可以跨多行,只要不遇到句号,就认为是一个延续 的语句。 可以把多个语句放在一行。,ABAP基本语法特点(持续),ABAP不区分大小写,关键字和用户操作数都一样,为了便于阅读,一般把关键字大写,而操作数小写。 如果连续多行的第一个关键字相同,可以使用链语句方式减少输入 data: id type I. data: name type c. 可写为: data: id type I , name type c. 注释: 注释行由第一列的星号(*)开头,并且必须写在第一 列,前面不能有空格。 在行末的注释用双引号(”)作为前导。 data: id type i. “ 定义一个对象num数据类型为I,ABAP的命名规则,使用至少1个但不超过8个字符。 不要使用下列字符: 句点(.); 逗号(,); 空格( ); 括号(); 单引号(); 双引号(“); 等号(=); 星号(*); 百分号(%);,ABAP数据类型,(八种基本数据类型) D :日期类型,格式为YYYYMMDD,长度为8 T : 时间类型,格式为HHMMSS,长度为6 I : 整数类型,默认长度为4,初始值为0 F : 浮点类型,默认长度为8,初始值为0,常用于计算 C :字符串类型,定义变量时指定字符个数 N :数字字符串类型,定义变量时指定数值字符个数 X :字节序列类型,定义变量时指定字节数 P(压缩号) :允许的长度为1 到16 个字节,系统 会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单位的场合.,定义方法: f1 type I. f2 type p decimals num. f3 type f. 如: DATA number(10) type p value 9.876543210 decimals 9. 输出:9.876543210 如果decimals 8 输出: 9.87654321,ABAP数据类型,ABAP运算,数值运算(在ABAP中数学表达式可以任意多层嵌套) 算术运算 二元操作符包括: + :加法 :减法 * :乘法 / :除法 * :乘方 DIV :整除忽略余数 MOD :取模 需要注意,圆括号和操作符都是关键字,需要跟操作数之间 至少用一个空格分开。 (1+2)*3 应该写成( 1 + 2 ) * 3 注:ABAP中不能使用”&”或”+”做连接(详参见computer语句的关键字文档 数学函数 时间日期运算,ABAP运算,逻辑表达式 通用逻辑运算符 EQ( = ) NE( ) LT( ) GE( = ) IS操作符 IS INITIAL 检查字段是否为初始值 IS ASSIGNED 检查字段是否被分配 BETWEEN操作符 组合逻辑表达式 AND 与 OR 或 NOT 非,ABAP程序的关健字,关健字是语句的第一个词,它决定整个语句的意义,有四种不同类型的关健字 1.说明性关健字 TYPES,DATA,TABLES,这些关健字说明定义数据类型或者说明程序可以访问的数据对象 2.事件关健字 AT SELECTION SCREEN, START-OF-SELECTION End-of-selection 这些关健字在ABAP中定义处理块,处理块是当特定事件发生时进行处理的语句组,ABAP程序的关健字,3.控制关健字 IF ,WHILE,CASE 4.操作关健字 WRITE,MOVE,ADD 用于处理数据,在声明语句中定义对象的数据类型有两种 直接的: type 可直接将数据类型分配给已声明的数据对象 DATA number type I. 间接的: like 将另一个数据对象的数据类型分配给当前声明的对象,间接引用 DATA num like number.,语法格式,Constants语句:用于创建常量 Tables语句:用于创建表工作区 Types语句:1.用于创建用户自定义的数据类型 2.结构化数据类型 3.一个内表形式的数据类型 DATA语句:1.用于创建一个简单类型的变量 2.定义一个结构化的数据对象 3.定义内表,语法格式,语法格式,定义数据对象 DATA name TYPE type_name 例: DATA number TYPE I. DATA num TYPE I value 18. TYPES: address TYPE C. 注:TYPES语句用来创建用户定义的基本数据类型和结构化的数据类型,通过TYPES定义的类型不能直接使用,需要通过DATA进行定义其对应的变量后才可使用 如: DATA:address1 TYPE address,语法格式赋值,可以使用MOVE 关键字来对数据对象赋值,下面两个语句具有相同的功效。 DATA: var1 type I value 18, var2 type I. MOVE var1 TO var2. var2 = var1. 把var1的值赋给var2,如果var1 和var2 的数据类型不同,就存在类型冲突的可能 性,这时候如果存在转换规则,则会进行自动类型转换 关于类型冲突和自动转换,可以查MOVE 的帮助。 CLEAR 语句根据类型清除数据对象,恢复成默认值。,打印输出格式(WRITE),WRITE First line. WRITE Still first line. WRITE / Second line. WRITE /13 Third line. 这在屏幕上 生成如下输 出: First Line. Still first line. Second line. Third line.,分支结构(IF,CASE),使用IF的条件分支 IF . ELSEIF . ELSEIF . . ELSE. ENDIF.,使用CASE的条件分支,基本语法: CASE . WHEN . WHEN . WHEN . WHEN . WHEN OTHERS. ENDCASE.,循环结构(DO,WHILE),使用DO的无条件循环 DO TIMES VARYING FROM NEXT . ENDDO. TIMES 循环次数, 可以是数字或变量。如果是0或负数,系统不执行该循环 VARYING选项在每次循环中给变量重新赋值.第一次循环中,将分配给,第二次循环中,将分配给,以此类推。可以在一个DO语句中使用多个VARYING选项。 使用 DO 语句时要避免死循环。 如果不使用 TIMES 选项,则在语句块中至少应包含一个 EXIT、 STOP 或 REJECT 语句,以便系统能够退出循环。,使用WHILE的条件循环 语法: WHILE VARY FROM NEXT . ENDWHILE. 只要是真,或系统没有发现EXIT、STOP或REJECT语句,系统将继续执行由WHILE语句引导、ENDWHILE结束的语句块, VARY选项与DO循环的VARYING选项工作方式一样,循环终止(CONTINUE,CHECK,EXIT),无条件终止循环:CONTINUE 有条件终止循环:CHECK 完全终止循环:EXIT,事件关健字,这些关健字在ABAP中定义处理块,处理块是当特定事件发生时进行处理的语句组 AT SELECTION SCREEN: 其实就像一个FORM,所以在这个事件里声明的变量都是局部变量。用户在选择屏幕中执行某些功能后被触发。多用于权限判断,给出警告信息 START-OF-SELECTION: 报表程序必须执行的事件,在进入第二屏幕之前触发。选择开始事件,如果报表中含有选择屏幕,则在选择屏幕的处理结束后触发,是报表程序的默认事件块; End-of-selection: 第二屏幕显示完毕,结束处理。选择结束事件,如果程序中使用逻辑数据库,则在所有逻辑数据库处理结束后触发,一般在该事件之中输出列表。 ,结构类型和结构体,结构类型由多个数据元素作为组件构成 参照结构类型生成的数据对象称为结构体 定义方式 TYPES|DATA: BEGIN OF structure, k1 TYPE type | LIKE dobj , k2 TYPE type | LIKE dobj , kn TYPE type | LIKE dobj , END OF structure. 组件通过取组件运算符” - ”进行访问 structure-k1,Demo:,TYPES: BEGIN OF address, name TYPE string, street(30) TYPE C, city TYPE String, END OF address. DATA my_ add TYPE address. my_ add-name = li li . my_ add-street = zhangjiang . my_ add-city = shanghai . write: my_ add-name , my_ add-street , my_ add-city.,内 表,内表是可变长度的数据对象,在运行时内表可保存多个相同结构的数据,行数是动态的,系统可实时增加内表的大小。内存中,数据是一行一行的存储的,每行 都具有相同的结构 使用内表是一个大量结构化数据的简单办法,主要应用包括: 1.保存数据库的数据进行进一步的处理 2.为屏幕和打印输出格式化的数据,内表的属性 对数据表的访问:分为索引访问,键访问 表的类型(三种): 标准表,排序表,哈希表 内表的定义 TYPES|DATA Itab TYPE|LIKE tabkind OF line type|line obj WITH unique | non-unique key INITIAL SIZE n . Tabkind 内表种类 Linetype 行类型 key 表关键字 n 初始内存大小,内 表,内表类型(一),标准表 STANDARD TABLE 具有逻辑索引 寻址操作通过关键字或者索引 排序表 SORTED TABLE 具有逻辑索引 按表关键字升序后存储 寻址操作通过关键字或者索引 哈希表 HASHED TABLE 没有逻辑索引 寻址操作只通过关键字,DATA: BEGIN OF company, name(20) TYPE C, street(20) TYPE C, city(20) TYPE C, END OF company. DATA itab_company LIKE HASHED TABLE OF company WITH UNIQUE KEY name.,创建一个内表,内表操作,可以使用Append、Insert、Read、Modify、Delete 对内表的一行或多行执行操作。 Append:往内表的最后追加一条记录,只用于标准表 Insert:向内表插入一条记录,在标准表中跟append一样,在排序表里就插入到键指定的位置,在哈希表则根据哈希算法插入。 Read:把表的指定行拷贝到结构中 Modify:使用结构的内容重写表的指定行 Delete:删除表的指定行,内表操作(一),操作内表行 插入行 INSERT语句 插入单行 INSERT line INTO itab INDEX idx . 插入多行 INSERT lines OF itab1 FROM n1 TO n2 INTO TABLE itab2 INDEX idx. 内表itab1 的从n1到n2的多行数据插入到itab2 中。,内表操作(二),附加行 APPEND语句 附加单行 APPEND line TO itab . 附加多行 APPEND LINES OF itab1FROM n1 TO n2 TO itab .,内表操作,读取行 READ语句 利用索引读取 READ TABLE itab INTO wa INDEX idx . 利用关键字读取 READ TABLE itab FROM key INTO wa .,内表操作(三),修改行 MODIFY语句 根据索引修改 MODIFY itab FROM wa index idx TRANSPORTING f1 f2 . 来修改内表的第n 行 根据关键字修改 MODIFY TABLE itab FROM wa TRANSPORTING f1 f2 . 允许你修改内表itab 的一行 修改多行 MODIFY itab FROM wa TRANSPORTING f1 f2 WHERE cond . 在Transporting 后指定所有需要修改的字段,要把给这些字段 的值写在wa 中,使用WHERE 子句指定行的条件。,内表操作(四),删除行 DELETE语句 通过索引删除 DELETE itab INDEX idx .(删除内表中的第n 行) 通过关键字删除 DELETE TABLE itab FROM wa . 把想要删除的键字段值拷贝到工作区wa 中 删除多行 DELETE itab FROM n1 TO n2 WHERE,循环处理结果集合使用 LOOP语句 Loop语句一条条的读出数据行,写入INTO指定的结构中,结构内容可用于输出或写回内表. LOOP AT itab INTO wa FROM n1 TO n2 WHERE. ENDLOOP,内表操作(五),数据库操作,可以使用OPEN SQL 或NATIVE SQL 语句来从数据库读取数据。 Open sql 与Native sql 的区别: 1. open sql 只能使用DML, slelect,insert,update,delete,modify notive sql 可以使用DML和DDL和DCL 2.Open sql 是操作SAP数据库的语言, notive sql 是SAP使用的数据库本身的SQL语言,Open SQL操作(一),只包括数据操纵(DML) SELECT INSERT UPDATE MODIFY DELETE 不包括数据定义(DDL)和数据控制(DCL),Open SQL操作(二),提取数据 SELECT 语句 选择单行数据 SELECT SINGLE INTO FROM 选择多行数据:循环选择 SELECT DISTINCT ENDSELECT. 选择多行数据:选择至内表 SELECT INTO TABLE itab.,Open SQL操作(三 ),插入数据 INSERT语句 插入单行数据 INSERT INTO dbtab VALUES wa . 插入多行数据 INSERT dbtab FROM TABLE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论