《ABAP培训第二章基本语法ppt课件.ppt》由会员分享,可在线阅读,更多相关《ABAP培训第二章基本语法ppt课件.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SAP培训: SAP知道:1资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值第2章ABAP语言基本语法 一、数据类型与数据对象 二、字符串处理与流程控制 三、程序中的消息SAP培训: SAP知道:2资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值数据类型的定义:数据类型描述了数据对象的技术属性(类型和长度),用于定义数据对象SAP培训: SAP知道:3资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这
2、部分资金就是原有资金的时间价值数据对象数据对象(如文本、变量、常量):主要指内存变量。SAP培训: SAP知道:4资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP数据类型的使用场合 SAP培训: SAP知道:5资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值定义数据对象DATA TYPE.”的方式来定义一个新的数据对象.或者,DATA LIKE .”的方式来定义一个新的数据对象.SAP培训: SAP知道:6资金是运动的价值,资金的价值是
3、随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP 数据类型可以直接定义数据对象类型:c、d、p、n、i、f和string.SAP培训: SAP知道:7资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP基本数据类型类型长度初始值说明定义数据对象例子D800000000日期型 格式:YYYYMMDDDATA mydate TYPE d VALUE 20080106.I40整型(十进制为十位)DATA myint TYPE i VALUE 10.F80浮点型DATA
4、 myfloat TYPE f.STRING变长可变长字符串DATA mystr TYPE string.SAP培训: SAP知道:8资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP基本数据类型类型默认大小有效大小(字节)初始值说明定义数据对象例子C11-65536SPACE文本、字符DATA s(10)TYPE c VALUE hello.N11-65536000数字文本DATA n1(4)TYPE n VALUE 3.14.P81-160将两个 十进制数字 压缩到一个 字节 DATA p1(6)TYPE p
5、 DECIMALS 2 VALUE 67.56.SAP培训: SAP知道:9资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值局部数据类型 局部数据类型是由用户在程序自定义的,用TYPES关键字声明局部数据类型,只在被声明的程序中可见,因此称做局部类型。SAP培训: SAP知道:10资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值定义一个结构类型TYPES:BEGIN OF TY_MARC,物料信息结构 WERKS TYPE MARC-WERKS
6、,工厂 MATNR TYPE MARC-MATNR,物料编号 END OF TY_MARC.并用它来定义一个工作区和内表SAP培训: SAP知道:11资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值内表的概念内表是在程序中定义,仅在程序运行时间内,存在于内存中的表格。作用:用来存储数据库表中的数据,实现复杂的的数据操作。特性:内表中的行数并不固定。内表的尺寸由ABAP运行环境自动进行扩展,内表中的记录数量仅限于系统的可用内存限制。SAP培训: SAP知道:12资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函
7、数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP数据类型分类 ABAP语言中预定义的标准数据类型,如图数据字典中的全局数据类型,如图用户在程序中自定义的数据类型,如图SAP培训: SAP知道:13资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值SAP培训: SAP知道:14资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值休息十分钟课间提问:1.什么是数据类型?2.什么是局部数据类型?3.d,c,i,p分别是什么类型?4.
8、什么是工作区、内表?SAP培训: SAP知道:15资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP数据对象分类 变量 常量文字 文本文字 数字文字SAP培训: SAP知道:16资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值系统定义的数据对象 系统定义的数据对象无需声明,可在程序中直接使用.SY-SUBRC:返回代码值(0代表操作成功)SY-UNAME:当前用户名SY-TCODE:当前事务SY-DATUM:当前日期SY-UZEIT:当前
9、时间SY-REPID:当前程序名SAP培训: SAP知道:17资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP语法元素 ABAP关键字分类 声明型关键字:TYPES,DATA,TABLESTABLES:用来申明与一个数据库表同名的工作区.操作关键字:WRITE,ADD,MOVE-CORRESPONDINGSAP培训: SAP知道:18资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值整数和整数运算 当系统执行整数运算时,通常会四舍五入 D
10、ATA int TYPE i.int=4/10.结果为0int=5/10.结果为1SAP培训: SAP知道:19资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值计算:语法 在ABAP 中,可以任意多层嵌套数学表达式。表达式按一般的代数顺序处理圆括号最高,接下 来是函数、幂、乘除,最后是加减。DIV(整数除)和MOD(余数)操作都返回整数。SAP培训: SAP知道:20资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值 在计算时的运行错误:应该被转
11、换成数值的字段无法被解释成数值 除以0(零不能作除数)SAP培训: SAP知道:21资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值数据对象赋值 通过声明性赋初始值:DATA myid(10)TYPE c VALUE 100.通过CLEAR操作使数据对象具有缺省值:CLEAR var1.SAP培训: SAP知道:22资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值处理字符串 连接字符串:CONCATENATE .INTO SEPARATED B
12、Y.拆分字符串:SPLIT AT INTO .获得字符串长度 COMPUTE =STRLEN().替换字符串内容:REPLACE ALL OCCURRENCES OF REGEX,IN W_CHAR WITH.*将外部金额转换成内部金额SAP培训: SAP知道:23资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP程序的流程控制-逻辑表达式运算符含义EQ或 =等于NE或 或 不等于LT或 小于LE或 大于GE或 =大于等于SAP培训: SAP知道:24资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数
13、,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值检查字段的初始值 IF IS INITIAL.ENDIF.SAP培训: SAP知道:25资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP程序的流程控制-条件分支语句 If的条件分支 IF.ELSEIF.ELSE.ENDIF.SAP培训: SAP知道:26资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值组合逻辑表达式使用逻辑连接运算符AND、OR 和 NOT,将几个逻辑表达式组
14、合为一个表达式:用AND连接用OR连接用NOT取反优先级为:NOT优先于AND,AND 优先于OR。建议使用任何小括号组合 SAP培训: SAP知道:27资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值比较字符串运算符含义CO仅包含CN不仅包含CA包含任何(字符)NA不包含任何CS包含字符串NS不包含字符串SAP培训: SAP知道:28资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值休息十分钟课间提问:1.什么是数据对象?2.系统变量SY-SU
15、BRC代表什么含义?3.赋值时WRITE和MOVE的区别是什么?SAP培训: SAP知道:29资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值CASE的条件分支 CASE .WHEN.WHEN.WHEN.WHEN OTHERS.ENDCASE.SAP培训: SAP知道:30资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值ABAP程序的流程控制-循环语句 DO循环DO TIMES.ENDDO.带条件的WHILE循环 WHILE .ENDWHILE
16、.SAP培训: SAP知道:31资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值提取数据selectSelect语法结构SELECT FROM INTO WHERE GROUP BY ORDER BY.SAP培训: SAP知道:32资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值子句说明SELECT SELECT 子句定义选 择的结果是 单行还是一 个表、选择 的是哪些列、以及是否 将排除相同 的行。即:定义选择的结果FROM FROM 子句指
17、定即 将从中选取 数据的数据 库表或视图。即:指定将读取的数据库表INTO INTO 子句确定即 将读入选定 数据的目标 区。该子句也可 以放在FROM 子句之前。如果没有指 定 INTO 子句,系统 将使用表工 作区。表工 作区是由 TANLES 语句自动创 建的表头行。即:为选定的数值指定目标区WHERE WHERE 子句指定将 按照指定的 条件读取哪 些行来作为 选择。即:选择(筛选)条件GROUP BY GROUP-BY 子句从几行 组成的组中 产生了作为 结果的单行。一个组是 在 中列出的列 中有相同值 的行的集合。即:给行分组ORDER BY ORDER-BY 子句为选定 的行定义
18、顺 序。即:指定行的顺序SAP培训: SAP知道:33资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值选择单行数据语法结构 select single into from where SAP培训: SAP知道:34资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值选择多行数据选择至内表 select into corresponding fields of table itab.SAP培训: SAP知道:35资金是运动的价值,资金的价值是随时间变
19、化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值循环读取内表元素数据 LOOP语法:LOOP AT INTO WHERE ENDLOOP.实例:LOOP AT ITAB INTO LINE WHERE COL1 100.WRITE:/SY-TABIX,LINE-COL1.ENDLOOP.“仅读取 COL1 100 的元素。SAP培训: SAP知道:36资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值选择字段选择全部字段 select*选择指定字段 select field1 fie
20、ld2 from into.where select tab1field1 tab2field2 from into where SAP培训: SAP知道:37资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值OPEN SQL:表的连合查询INNER JOIN:查询结果仅包含两个表中彼此相对应的记录(如果右侧表中没有对应的记录,则左侧表中的记录也不抽出)LEFT OUTER JOIN:查询结果包含其左侧表中的所有记录,但仅包含其右侧表中相对应的记录。(如果右侧表中没有对应的记录,则左侧表中的记录同样抽出)SAP培训: S
21、AP知道:38资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值INTO Into field/wa/itab SAP培训: SAP知道:39资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值指定查询条件Select where.比较运算符:如=范围限定运算符:wheref NOT between g1 and g2字符比较运算符 wheref NOT like _dfad%检查列表值:wheref NOT in(g1,g2,gn)检查空值:whe
22、ref NOT is null 检查选择表:wheref NOT in itab_ranges SAP培训: SAP知道:40资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值组合查询结果总计功能select max(f1)/min(f1)/sum(f1)/avg(f1).分组总计 select group by 指定分组条件 select having 指定行顺序 select order by SAP培训: SAP知道:41资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这
23、部分资金就是原有资金的时间价值ABAP程序的流程控制-循环语句 LOOP ENDLOOP循环,用于处理内表(Internal Table)变量。SELECT ENDSELECT循环,用于从数据表中循环地读取数据(!效率低,只对加载到缓存中的数据库表进行取数)。SAP培训: SAP知道:42资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值终止循环 CONTINUE无条件终止本次循环过程 CHECK有条件终止循环过程(不符合条件的终止)EXIT完全终止循环 SAP培训: SAP知道:43资金是运动的价值,资金的价值是随时间
24、变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值发送对话消息 MESSAGE tnnn(message_class)WITH v1 v2 v3 v4 .类类型型t t类类型描型描述述对话对话行行为为消息消息显显示位置示位置I I消息提消息提示示程序程序执执行被行被对话对话框中断,用框中断,用户选户选择择后程序后程序继续继续模模态对话态对话框框S S消息提消息提示示程序程序执执行不中断行不中断下一个屏幕的状下一个屏幕的状态态条条上上W W警告警告与程序的上下文有关与程序的上下文有关模模态对话态对话框或状框或状态态条条E E错误错误与程序的上下文有关与程序的
25、上下文有关模模态对话态对话框或状框或状态态条条A A终终止止程序被取消程序被取消模模态对话态对话框框SAP培训: SAP知道:44资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值对话消息的创建 SAP培训: SAP知道:45资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值SAP培训: SAP知道:46资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值休息十分钟课间提问:1
26、.在循环中CONTINUE和EXIT的区别是什么?2.消息类型E和A的区别是什么?SAP培训: SAP知道:47资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值家庭作业:使用WRITE命令输出物料类型为FERT、工厂为1000的物料号码对应的物料描述。表:MARA、MARC、MAKT输出字段:WERKS、MATNR、MTART、MAKTX;程序名称:ZBCRP_001,SAP培训: SAP知道:48资金是运动的价值,资金的价值是随时间变化而变化的,是时间的函数,随时间的推移而增值,其增值的这部分资金就是原有资金的时间价值谢谢!