版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1ABAP培训第二章基本语法【91ABAP SAP实战中心】2第2章ABAP语言基本语法 一、数据类型与数据对象 二、字符串处理与流程控制 三、程序中的消息3数据类型的定义: 数据类型描述了数据对象的技术属性(类型和长度),用于定义数据对象4数据对象数据对象(如文本、变量、常量):主要指内存变量。5ABAP数据类型的使用场合 6定义数据对象DATA TYPE .”的方式来定义一个新的数据对象.或者, DATA LIKE .”的方式来定义一个新的数据对象.7ABAP 数据类型可以直接定义数据对象类型:c、d、p、n 、i、f和string.8ABAP基本数据类型基本数据类型类型长度初始值说明定义
2、数据对象例子D800000000日期型 格式: YYYYMMDDDATA mydate TYPE d VALUE 20080106.I40整型(十进制为十位)DATA myint TYPE i VALUE 10.F80浮点型DATA myfloat TYPE f.STRING变长可变长字符串DATA mystr TYPE string.9ABAP基本数据类型基本数据类型类型默认大小有效大小(字节)初始值说明定义数据对象例子C11 - 65536SPACE文本、字符DATA s(10) TYPE c VALUE hello.N11 - 65536000数字文本DATA n1(4) TYPE n
3、VALUE 3.14.P81 - 160将两个 十进制数字 压缩到一个 字节 DATA p1(6) TYPE p DECIMALS 2 VALUE 67.56.10局部数据类型 局部数据类型是由用户在程序自定义的,用TYPES关键字声明局部数据类型,只在被声明的程序中可见,因此称做局部类型。11定义一个结构类型TYPES: BEGIN OF TY_MARC, 物料信息结构 WERKS TYPE MARC-WERKS, 工厂 MATNR TYPE MARC-MATNR, 物料编号 END OF TY_MARC.并用它来定义一个工作区和内表12内表的概念内表是在程序中定义,仅在程序运行时间内,存在
4、于内存中的表格。作用:用来存储数据库表中的数据,实现复杂的的数据操作。特性:内表中的行数并不固定 。内表的尺寸由ABAP运行环境自动进行扩展,内表中的记录数量仅限于系统的可用内存限制。13ABAP数据类型分类 ABAP语言中预定义的标准数据类型,如图数据字典中的全局数据类型,如图用户在程序中自定义的数据类型,如图1415休息十分钟课间提问:1.什么是数据类型?2.什么是局部数据类型?3.d,c,i,p分别是什么类型?4.什么是工作区、内表?16ABAP数据对象分类 变量 常量文字 文本文字 数字文字17系统定义的数据对象 系统定义的数据对象无需声明,可在程序中直接使用.SY-SUBRC: 返回
5、代码值(0代表操作成功)SY-UNAME: 当前用户名SY-TCODE: 当前事务SY-DATUM: 当前日期SY-UZEIT:当前时间SY-REPID: 当前程序名18ABAP语法元素 ABAP关键字分类 声明型关键字:TYPES, DATA, TABLESTABLES:用来申明与一个数据库表同名的工作区.操作关键字:WRITE, ADD,MOVE-CORRESPONDING19整数和整数运算 当系统执行整数运算时,通常会四舍五入 DATA int TYPE = 4 / 10. 结果为0int = 5 / 10. 结果为120计算:语法 在ABAP 中,可以任意多层嵌套数学表达式
6、。 表达式按一般的代数顺序处理圆括号最高,接下 来是函数、幂、乘除,最后是加减。 DIV(整数除)和MOD(余数)操作都返回整数。21 在计算时的运行错误: 应该被转换成数值的字段无法被解释成数值 除以0(零不能作除数)22数据对象赋值数据对象赋值 通过声明性赋初始值: DATA myid(10) TYPE c VALUE 100. 通过CLEAR操作使数据对象具有缺省值: CLEAR var1.23处理字符串 连接字符串连接字符串 :CONCATENATE . INTO SEPARATED BY .拆分字符串拆分字符串 : SPLIT AT INTO . .获得字符串长度获得字符串长度 CO
7、MPUTE = STRLEN( ).替换字符串内容替换字符串内容 :REPLACE ALL OCCURRENCES OF REGEX , IN W_CHAR WITH . *将外部金额转换成内部金额24ABAP程序的流程控制程序的流程控制-逻辑表达式逻辑表达式运算符含义EQ或 = 等于NE或 或 不等于LT或 小于LE或 大于GE或 =大于等于25检查字段的初始值 IF IS INITIAL .ENDIF.26ABAP程序的流程控制-条件分支语句 If的条件分支 IF . ELSEIF . .ELSE. ENDIF.27组合逻辑表达式使用逻辑连接运算符AND、OR 和 NOT,将几个逻辑表达式
8、组合为一个表达式:用AND连接用OR连接用NOT取反优先级为:NOT优先于AND,AND 优先于OR。建议使用任何小括号组合 28比较字符串比较字符串运算符含义CO仅包含CN不仅包含CA包含任何(字符)NA不包含任何CS包含字符串NS不包含字符串29休息十分钟课间提问:1.什么是数据对象?2. 系统变量SY-SUBRC代表什么含义?3. 赋值时WRITE和MOVE的区别是什么?30CASE的条件分支的条件分支 CASE . WHEN . WHEN . WHEN . . WHEN OTHERS. ENDCASE.31ABAP程序的流程控制-循环语句 DO循环DO TIMES. ENDDO.带条件
9、的WHILE循环 WHILE . ENDWHILE.32提取数据提取数据selectselectSelect语法结构SELECT SELECT FROM FROM INTO INTO WHERE WHERE GROUP BY GROUP BY ORDER BY . ORDER BY .33子句说明SELECT SELECT 子句定义选 择的结果是 单行还是一 个表、选择 的是哪些列 、以及是否 将排除相同 的行。 即:定义选择的结果FROM FROM 子句指定即 将从中选取 数据的数据 库表或视图 。 即:指定将读取的数据库表INTO INTO 子句确定即 将读入选定 数据的目标 区 。 该子
10、句也可 以放在FROM 子句之前。 如果没有指 定 INTO 子句,系统 将使用表工 作区。表工 作区是由 TANLES 语句自动创 建的表头行 。即:为选定的数值指定目标区WHERE WHERE 子句指定将 按照指定的 条件读取哪 些行来作为 选择。即:选择(筛选)条件GROUP BY GROUP-BY 子句从几行 组成的组中 产生了作为 结果的单行 。一个组是 在 中列出的列 中有相同值 的行的集合 。即:给行分组ORDER BY ORDER-BY 子句为选定 的行定义顺 序 。即:指定行的顺序34选择单行数据选择单行数据语法结构语法结构 select single into from w
11、here 35选择多行数据选择多行数据选择至内表选择至内表 select into corresponding fields of table itab. 36循环读取内表元素数据 LOOP语法: LOOP AT INTO WHERE ENDLOOP. 实例:LOOP AT ITAB INTO LINE WHERE COL1 100. WRITE: / SY-TABIX,LINE-COL1. ENDLOOP. “仅读取 COL1 100 的元素。37选择字段选择字段选择全部字段选择全部字段 select *选择指定字段选择指定字段 select field1 field2 from into
12、. where select tab1field1 tab2field2 from into where 38OPEN SQL:表的连合查询INNER JOIN:查询结果仅包含两个表中彼此相对应的记录(如果右侧表中没有对应的记录,则左侧表中的记录也不抽出)LEFT OUTER JOIN:查询结果包含其左侧表中的所有记录,但仅包含其右侧表中相对应的记录。(如果右侧表中没有对应的记录,则左侧表中的记录同样抽出)39INTO INTO Into field / wa / itabInto field / wa / itab 40指定查询条件指定查询条件Select wherewhere .比较运算符
13、:如比较运算符:如= = 范围限定运算符范围限定运算符 :wheref NOT between g1 and g2wheref NOT between g1 and g2字符比较运算符字符比较运算符 wheref NOT like _dfad%wheref NOT like _dfad%检查列表值检查列表值 :wheref NOT in (g1,g2,gn)wheref NOT in (g1,g2,gn)检查空值检查空值 : wheref NOT is null wheref NOT is null 检查选择表:检查选择表:wheref NOT in itab_rangeswheref NOT
14、 in itab_ranges 41组合查询结果组合查询结果总计功能select max(f1) / min(f1) / sum(f1) / avg(f1) . 分组总计 select group by 指定分组条件 select having 指定行顺序 select order by 42ABAP程序的流程控制-循环语句 LOOP ENDLOOP循环,用于处理内表(Internal Table)变量。SELECT ENDSELECT循环,用于从数据表中循环地读取数据(!效率低,只对加载到缓存中的数据库表进行取数)。43终止循环终止循环 CONTINUE无条件终止本次循环过程 CHECK有条件终止循环过程 (不符合条件的终止) EXIT完全终止循环 44发送对话消息发送对话消息 MESSAGE tnnn(message_class) WITH v1 v2 v3 v4 .类型类型t t类型描类型描述述对话行为对话行为消息显示位置消息显示位置I I消息提消息提示示程序执行被对话框中断,用户选程序执行被对话框中断,用户选择后程序继续择后程序继续模态对话框模态对话框S S消息提消息提示示程序执行不中断程序执行不中断下一个屏幕的状态条下一个屏幕的状态条上上W W警告警告与程序的上下文有关与程序的上下文有关模态对话框或状态条模态对话框或状态条E E错误错误与程序的上下文有关与程序的上下文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI在中外政治制度中的应用
- 2026年高考全国Ⅱ卷英语试题(含答案和音频)
- 2026年北师大版小学数学六年级下册期末质量检测卷及答案(2套)
- 重庆大足三驱110千伏输变屯工程水土保持报告表
- 网络信息安全基础(AIGC版)随堂前测练习题及参考答案 项目9-任务2-前测练习-单选题5
- 2026辅警升职面试题及答案
- 2026包师社团面试题及答案
- 2026年3-6岁儿童学习与发展指南解读考试试题
- 叠合整体式综合管廊结构技术规程
- 第7单元 认识时间( 教学设计)二年级上学期数学人教版
- 新生儿异常情况识别与处理
- 如何写好一份医学教案
- 食堂运营与管理计划
- 厨房管理考核试题及答案
- 民营医院工资薪酬方案
- 2025年移动初级解决方案经理认证理论考试指导题库-下(多选、判断题)
- 2024年湖北水利发展集团有限公司招聘笔试冲刺题(带答案解析)
- (正式版)JBT 9229-2024 剪叉式升降工作平台
- 新药研发毒理学安全性评价
- 外科学教学课件:下肢骨关节损伤
- 2023年潍坊市初中学业水平考试地理试题附答案
评论
0/150
提交评论