ABAP基本语法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*拆分字符串
• • • • • • • • data: text type string, itab type table of string. text = 'abap is a programming language'. split text at space into table itab. loop at itab into text. "loop at 用于循环输出内表的每一行数据 write / text. endloop. search语句 用于查找一个子字符串
SAP三层体系结构
• 表现层(Presentation Layer):这是SAP用户和R/3系统交 流的接口,用户在这一层对SAP系统进行操作。这 层将用户的命令或者操作传送给R/3系统,然后系统 进行相应的处理后把数据返还给用户。 • 应用层(Application layer):这层包括一个或者多个应 用服务器和一个消息服务器。每一个应用服务器包 括一系列服务以便运行应用程序。所有的服务分置 在这些应用服务器之中,其实用户需要的只是其中 的一个应用服务器,多个服务器之间传递信息以决 定用户到底需要的是哪个服务器的服务。 • 数据库层(Database layer):这里就是SAP系统的核心, 存放了所有SAP系统的数据。
基本数据操作
• • • • • • • • • • • • • data: x_1 type i value 6,x_2 type i value 3,x_3 type i. x_3 = x_1 + x_2. write: 'x_3='. write: x_3, /. x_3 = x_1 - x_2. write: 'x_3='. write: x_3, /. x_3 = x_1 * x_2. write: 'x_3='. write: x_3, /. x_3 = x_1 / x_2. write: 'x_3='. write: x_3, /.
语法概述
• • • • • • • ABAP基本语法特点 由各自独立的语句构成。 每个语句的第一个单词必须是ABAP关键字。 单词之间至少要用一个空格分隔。 每个语句结束必须要用句号。 支持分块缩进,便于阅读。 一个语句可以跨多个行,只要不遇到句号,就 认为是一个延续的语句。 • 可以把多个语句放在一行。
ABAP语言的基本元素
• • • • • • • • • • 数据类型 D:日期类型,格式为YYYYMMDD,长度为8 T:时间类型,格式HHMMSS,长度为6 L:整数类型,长为4 F:浮点类型,长度为8 String:变长字符串类型 Xstring:变长字节序列类型 C:字符串类型,定义变量时指定字符个数 N:数字字符串类型,定义变量时指定数值字符个数 X:字节序列类型,定义变量时指定长度和小数点后位数
case/endcase结构
• • • • • • • • • • • • • data: sy type i value 5. CASE sy. WHEN 1 . WRITE / '1the season now is winter.'. WHEN 2 . WRITE / '2the season now is winter.'. WHEN 3 . WRITE / '3the season now is winter.'. WHEN 5 . WRITE / '4the season now is winter.'. WHEN OTHERS. WRITE 'this is illegal date'. ENDCASE.
循环控制
• 无循环条件 • do语句实现 • exit stop reject 语句可以强制结束循环 • do sy times. • write '123'. • exit. • enddo.
循环控制
• • • • • • • • • •
• • • • • • •
有循环条件 DATA: len TYPE i, string(30) TYPE c VALUE 'beijing 2008'. write: string, / . WHILE string NE space. len = sy-index. SHIFT string. write: string, / . ENDWHILE. WRITE: / 'length of string:', len.
*简单内表操作
• • • • • • • • • • DATA: BEGIN OF line, "work area num TYPE i, sqr TYPE i, END OF line, "internal itab LIKE STANDARD TABLE OF line WITH KEY table_line. DO 5 TIMES . line-num = sy-index. line-sqr = sy-index ** 2. APPEND line TO itab.
case/endcase结构
• • • • • • • • • • • • • • 例题 data: sy type i value 5. CASE sy. WHEN 1 OR '01' OR '02'. WRITE / '1the season now is winter.'. WHEN 2 OR '04' OR '07'. WRITE / '2the season now is winter.'. WHEN 3 OR '07' OR '08'. WRITE / '3the season now is winter.'. WHEN 5 OR '10' OR '5'. WRITE / '4the season now is winter.'. WHEN OTHERS. WRITE 'this is illegal date'. ENDCASE.
*concatenate 语句连接字符串
• • • • • • • data: s1(9) type c value 'firstname', s2(10) type c value 'secondname', s3(20), sep(1) type c value '.'. concatenate s1 s2 into s3. write / s3. concatenate s1 s2 into s3 separated by sep. write / s3.
ABAP运算
• • • • • • • • 数值运算(在ABAP中数字表达式可以任意多层嵌套) - 算术运算 - 数学函数 - 时间日期运算 逻辑表达式 - 通用逻辑运算符 EQ(=) NE(<>) LT(<) LE(<=) GT(>) GE(>=) -IS操作符 · IS initial 检查字段是否为初始值 · IS assigned 检查字段是否被分配 - between 操作符
ABAP程序的关键字
3.控制关键字 if, while,case if 语句 DATA: muth TYPE i VALUE 5, muth1 TYPE i VALUE 8. IF muth < muth1. WRITE / 'good morning'. ENDIF. IF muth > muth1. WRITE / 'good morning'. else. write / 'good afternoon'. ENDIF. IF muth > muth1. WRITE / 'good morning'. elseif muth < muth1. write / 'good afternoon'. ENDIF. 循环控制:1,无条件循环语句 2,条件循环语句 4.操作关键字 write,move,add 用于处理数据 数据输出 相关语句有write uline format skip
基本数据操作
包括:赋值,计算,输出 • 数据赋值用 move 和 = 两个等价 • clear数据还原 • describe语句得到这些属性长度 • data: source type i value 123,destination type i. • move source to destination. • write destination. 结构体的赋值 • 两个相同的结构体数据进行赋值操作 • move-corresponding source_struct to destination_struct. 算数运算+ ,—,*,/整除,取余,乘方 compute 计算 是abap中的关键字 • add y to x. • subtract y from x. • multiply x by y. • divide x by y.
ABAP基本语法特点(持续)
• ABAP不区分大小写,关键字和用户操作数都一样,为了便于阅读,一 般把关键字大写,而操作数小写。 • 由于编程的时候随时切换大小写比较麻烦,可以在ABAP编辑器中“规 范化打印机”按钮来自动转换。 • 如果连续多行的第一个关键字相同,可以使用链语句链语句的方式减 少输入 • 注释:注释 • 注释行由第一列的星号(*)开头,并且必须写在第一列了,前面不能有 空格。 • 编译器忽略注释行,不会执行。 • 在行未的注释用双引号(”)作为前导。
DATA: l TYPE i value 5,k type i. while l > k. k = sy-index. //系统索引每次循环都执行加加 * shift string. //将字符串整体或子串进行左移位 write '123456'. //skip表示空一行执行 endwhile. write: / k.
基本数据操作
• data: x_4 type i value 2,x_5 type i value type i. • x_6 = x_4 div x_5."整除 • write: 'x_6='. • write: x_6, / . • x_6 = x_4 mod x_5."取余 • write: 'x_6='. • write: x_6, / . • x_6 = x_4 ** x_5."乘方 • write: 'x_6='. • write: x_6, / . 3,x_6
-组合逻辑表达式 AND 与 OR或 NOT 非
ABAP程序的关键字
• 关键字是语句的第一个词,它决定整个语句的意义,有四 种不同类型的关键字 1.说明性关键字 types,data,tables,这些关键字说明定义数据类型或者说明程 序可以访问的数据对象 2.事件关键字 at selection screen, start-of-selection at user-command 这些关键字在ABAP中定义处理块是当特定事件发生时进行 处理的语句组
ABAP
• • • • • • • • 了解ABAP SAP的三层体系结构 ABAP语法概述 ABAP语言的基本元素 ABAP的语法格式 结构类型和结构体 内表 数据库操作
ABAP
• ABAP(Advanced business application program), 是一种高级企业应用编程语言,它支持封 装性和继承性,封装性是面向对象的基础, 而继承性是建立在封装性基础上的重要特 性。它适合生成报表,支持对数据库的操 作,如:SQLserver,Oracle,DB2等主流数据库 系统。
Biblioteka Baidu
循环控制
• continue 用于无条件使用终止当前循环 跳 过当前 • check 用于有条件中的终止当前循环 与 continue类似 加了条件判断 • exit 用于无条件完全终止程序 但在嵌套仅 退出当前整个循环 • Continue check exit
条件循环语句
• • • • • • • • • • • • • • • • • 条件循环语句 DO 4 TIMES. IF sy-index = 2. continue. ENDIF. WRITE sy-index. ENDDO. SKIP. DO 4 TIMES. CHECK sy-index BETWEEN 2 AND 3. WRITE sy-index. ENDDO. skip. DO 4 TIMES. IF sy-index = 3. EXIT. ENDIF. WRITE sy-index. ENDDO. SKIP.