SAPABAP基础语法培训教程珍藏版演示文稿_第1页
SAPABAP基础语法培训教程珍藏版演示文稿_第2页
SAPABAP基础语法培训教程珍藏版演示文稿_第3页
SAPABAP基础语法培训教程珍藏版演示文稿_第4页
SAPABAP基础语法培训教程珍藏版演示文稿_第5页
已阅读5页,还剩241页未读 继续免费阅读

下载本文档

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

文档简介

SAPABAP基础语法培训教程珍藏版演示文稿第1页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第1页。ABAPTrainingSAP及ABAP/4Overview系统开发语言创建企业报表应用事务开发商用文档设计第2页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第2页。SAP介绍ERP巨人SAP:创立于1972年,ERP思想的倡导者,ERP领域中处于领导地位,全球最优秀的企业管理软件供应商SAP:System,ApplicationandProductsinDataProcessing,即数据处理的系统、应用和产品第3页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第3页。SAPR/3——一体化ERP系统客户/服务器FI财务会计CO财务控制TR司库PS项目管理WF工作流程管理IS行业解决方案MM物料管理HR人事管理SD销售与分销PP生产计划QM质量管理PM工厂维护后勤系统财务系统人力资源客户及工业部门的特殊要求第4页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第4页。SAP新的业务模块和组件CRM顾客关系管理SCM供应链管理BW商业信息仓库APO高级计划与优化(AdvancedPlannerandOptimizer)第5页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第5页。R/3主要业务模块介绍生产计划控制物料管理销售与分销财务会计管理会计人力资源第6页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第6页。SAP其他业务模块跨应用组件(CA,Cross-ApplicationCompo-nents)基础系统组件(BC,BasisComponents)品质管理(QM,QualityManagement)资产管理(AM,AssetsManagement)第7页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第7页。

SAP

业务流程S&D

销售订单

PP主生产计划物料需求计划采购订单库存管理生产执行开票运输生产订单发票校验成本财务MMCO/FI第8页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第8页。ERP实施步骤总体规划,分步实施教育和培训原形测试数据准备系统开发模拟运行切换第9页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第9页。SAP实施结构设计实施过程中需要多少个R/3系统需要多少个Client,具体任务是什么各个集团将如何分布在不同的系统中——通常将“开发”、“质量控制(测试)”、“产品”分别置于三个不同系统的不同集团中第10页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第10页。开发过程中标准制定制定命名规则:自定制的所有对象应当以“Z”或“Y”开头;避免命名冲突界面风格指南:应与SAP的标准保持一致文档维护:项目文档:项目设计、实施进度等最终用户文档:对象说明、程序说明等技术说明文档:程序代码说明、程序规格等修订列表维护:对所有对象的修改清单对象模块化、在线文档标准等第11页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第11页。ABAPTrainingSAP及ABAP/4Overview系统开发语言创建企业报表应用事务开发商用文档设计第12页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第12页。R/3开发平台介绍R/3体系结构R/3仓库与开发平台系统开发工具第一个ABAP程序ABAP数据字典介绍第13页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第13页。R/3逻辑体系结构逻辑上分为显示层、应用层、数据库层数据库层:主要业务数据及开发过程中的程序和元数据通过关系数据库管理系统进行操作;应用层:从数据层提取数据进行处理或者存储新数据显示层:SAPGUI,系统和用户间的接口,用户通过该层访问系统应用、输入新数据并接受工作过程的处理结果第14页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第14页。R/3仓库R/3仓库储存所有SAP系统开发过程中的对象,这些对象也被称之为仓库对象:ABAP程序数据库表结构定义系统数据类型仓库对象不是企业业务数据,而是系统内部数据,与Client无关仓库对象要从R/3系统传入另一R/3系统,需要开发类别辅助第15页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第15页。开发类别仓库对象创建时,需要指定所属的开发类别仓库对象在R/3仓库中按照开发类别分类,这些对象的集合形成的组织单元即为开发类别开发类别的主要功能是对仓库对象进行管理(目录管理及传输控制管理等)开发类别中所包含的仓库对象可以通过对象浏览器(SE80)查看和维护开发类是ABAP工作台对象,其修改通过TransportOrganizer记录,开发类别的开发类别是其自身第16页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第16页。ABAP工作台工具介绍(1)对象导航器:ObjectNavigator,通过开发类别组织R/3对象的浏览及维护程序编辑器:ABAPEditor,编辑ABAP程序代码数据建模器:Datamodeler,业务数据建模工具数据字典:ABAPDictionary,定义系统数据类型及数据库对象简单报表创建器:ABAPQuery第17页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第17页。ABAP工作台工具介绍(2)函数创建器:FunctionBuilder,创建功能模块类创建器:ClassBuilder,创建ABAP类及方法等面向对象元素菜单绘制器:MenuPainter,用于创建屏幕的标题、菜单、工具栏中的元素及功能设定屏幕绘制器:ScreenPainter,用于创建SAP标准屏幕工作台管理器:WorkbenchOrganizer,用于管理修改请求第18页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第18页。对象导航器ABAP工作台的众多开发工具的中心入口,可对各种R/3仓库对象进行维护,具体见下图事务码:SE80包括导航区域、对象浏览及工具区域三大块导航区域:对象列表选择及名称输入区域对象列表:对象列表机上下文菜单(contextmenu)工具区域:ABAP工作台工具、工具栏、菜单、标准工具栏、应用工具栏及附属窗口等第19页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第19页。ABAP对象导航器图例导航区域工具区域对象列表附属窗口第20页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第20页。ABAP编辑器路径事务码SE38第21页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第21页。Abap程序及相关介绍ABAPadvancedbusinessapplicationprogramming

是“高级商业应用编程”的缩写“HelloWorld”程序系统程序实例:ABAPDOCU、DWDM第22页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第22页。ABAP(DDIC)数据字典介绍数据字典:定义和管理数据元素及数据库元素的中心工具,所有的数据库表结构及系统全局数据类型等都需要在其中创建并维护功能:自定义系统共用数据类型(基本类型、结构和表)定义数据库对象结构(数据库表、视图和索引等)进行屏幕字段的格式化、编辑,比如F1和F4帮助事务码:SE11第23页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第23页。ABAPTrainingSAP及ABAP/4Overview系统开发语言创建企业报表应用事务开发商用文档设计第24页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第24页。企业报表类型静态报表交互式报表第25页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第25页。报表格式XXXXXX(公司文本)库存分析报表页数:XXX

工厂代码:XXXX会计年度:XXXX

会计期间:XX库存总价:XXXX.XX(货币码)

报表生成者:XXXXXXXX

物料类型物料号码物料描述库存地点非限制使用库存限制使用库存库存单位价格总价(货币码)HALB100-100GG-25000144.0001138.000PC196.37¥232,109.34

008810.00010.000PC196.37¥3,927.40

sum

54.000

1143.000PC196.37¥236,036.74

sum

xxxxx.xxx

xxxxxx.xxx

Xxxxx.xx

¥xxxxxxx.xx

签字:_______签字:_______签字:_______第26页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第26页。报表格式第27页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第27页。ABAPTrainingSAP及ABAP/4Overview系统开发语言创建企业报表应用事务开发商用文档设计第28页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第28页。对话编程简介事务是实施与用户对话的程序。在典型的对话中,用户可以在系统显示的屏幕上输入或请求信息。作为对用户输入或请求的响应,程序执行适当的动作:转到下一个屏幕,显示输出或更改数据库。SAP系统中的每个对话都是由动态程序控制的。动态程序包含一个屏幕和它的流逻辑并且精确控制一个对话步骤。流逻辑决定在显示屏幕前(输出前的PBO处理)和接收到用户在屏幕上制作的条目后(输入后的PAI处理)进行的处理。第29页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第29页。ABAPTrainingSAP及ABAP/4Overview系统开发语言创建企业报表应用事务开发商用文档设计第30页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第30页。主要工具SMARTFORMSSCRIPT第31页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第31页。ABAP基础ABAP语言概述数据定义基本数据操作结构控制处理字符数据使用内表动态数据对象模块化技术错误处理程序调试第32页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第32页。ABAP程序结构ABAP是一种事件驱动语言,包括:数据定义:整个程序中可见的全局数据类型和数据对象处理块(Processingblocks):ABAP程序的主要结构单元,除数据定义和声明语句外的所有ABAP语句都必须隶属于某一个处理块ABAP程序基本结构如下图所示:程序内部全局数据定义对话模块事件块子程序等ABAP程序第33页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第33页。处理块类型事件块(Eventblocks):事件关键字开头,至下一事件关键字出现(或程序结束),无事件结束关键字报表事件:Initialization,Start-of-selection列表事件:At-line-selection屏幕事件(对话事件):Processbeforeoutput,processafterinput对话模块(DialogModules):有开始和结束关键字,用于事务程序设计,从属于对话事件,在对话事件块中调用过程(Procedure):有开始和结束关键字,独立的程序单元,包括功能模块和子程序、ABAP对象的类方法第34页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第34页。ABAP处理块调用范例REPORTz_processing_blocks.DATA:text1(20)TYPEcVALUE'BasicList:',text2(20)TYPEcVALUE'SecondaryList:'.*Processingblock1:Eventblock--Start-of-selectionSTART-OF-SELECTION.DO5TIMES.PERFORMfrm_output_lineUSINGsy-index.ENDDO.*Processingblock2:Eventblock--atline-selectionATLINE-SELECTION.WRITE:/text2,sy-lsind.*Processingblock3:Procedure--subroutinefrm_output-lineFORMfrm_output_lineUSINGp_index.WRITE:/text1,sy-lsind,'Value:',p_index.ENDFORM.第35页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第35页。ABAP处理块调用范例——运行结果第36页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第36页。程序类型的设定程序类型包括应用程序类型和其它程序类型,在创建程序时在程序属性中设定,如下图所示:第37页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第37页。应用程序类型可执行程序(ExecutableProgram):创建报表,由Report关键字引导,可包括屏幕,可包含除功能模块外的所有处理块,可直接在ABAP编辑器中运行,类型代码为1。对应为报表程序模块池(ModulePool):由Program关键字引导,包括自定义的屏幕和对话模块,必须通过事务码运行,类型代码M。对应为事务程序(也叫对话程序、动态程序)第38页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第38页。其它程序类型不可直接运行,可为ABAP程序提供模块化单元,包括:功能组(FunctionGroup):由Function-pool语句引导,包含一个或多个功能模块,类型代码为F类库(ClassPool):由Class-pool语句引导,类型代码K接口库(InterfacePool):由Interface-pool语句引导,类型代码J子程序池(Subroutinepools):由Program语句引导,类型代码S,包含子程序代码或类方法类型组(Typegroups):由Type-pool语句引导,在数据字典中定义,无类型代码包含程序(IncludeProgram):不需要语句引导,类型代码I,只是代码复用,可直接插入其它程序中,成为该程序一部分第39页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第39页。ABAP语言概述程序结构程序类型程序元素语句格式程序运行内存管理第40页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第40页。程序元素类型ABAP元素:在ABAP编辑器中维护的元素屏幕元素:通过屏幕绘制器维护的元素GUI元素:通过菜单绘制器维护的元素第41页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第41页。程序元素源代码(sourcecode)变式(Variants):与选择屏幕相关,用于存放输入的数据选择值,以便反复调用该程序时重复输入数据文本元素(Textelements):存储于文本池中的文本,包括文本符号、选择文本、列表标题等文档(Documentation):写给用户的说明,用于解释程序的功能、使用方法等文本元素和文档均具有语言相关性,可以由系统翻译工具进行翻译第42页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第42页。文本元素维护界面第43页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第43页。屏幕元素SAP标准屏幕(Screen):多用于SAP事务程序设计,包括屏幕布局(Layout)和流逻辑(FlowLogic)选择屏幕(SelectionScreen):多用于报表程序中接受用户输入报表的选择标准,可通过ABAP语句控制其输出格式传统列表屏幕(Lists):只包含列表输出区域,伸出内容通过write和uline等ABAP语句生成第44页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第44页。GUI元素为屏幕的一个组成部分,但设计时独立于屏幕存在,各种屏幕都可以独立分配GUI包括屏幕上方的菜单、标准工具栏、应用工具栏以及功能键和功能代码等GUI元素在程序调用时分为状态(GUIstatus)和标题(GUITitle)两部分第45页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第45页。ABAP语句结构以一个ABAP语句关键字引导,句号结束ABAP语句中还可以含附加项和操作元素各关键字、选项、操作数之间应至少保留一空格范例:

Reportz_simple_program. DataText(20)VALUE‘Simpleprogram’. Start-of-selection. WRITEtext.第46页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第46页。ABAP语句类型(1)声明语句:用于数据元素的定义和声明(如变量)DATA,PARAMETER,TABLES,TYPES模块化语句:用于定义运行时的处理代码块,分为事件关键字语句和过程定义关键字语句事件关键字包括:AT-SELECTION-SCREEN,START-OF-SELECTION,ATUSER-COMMAND过程定义关键字包括:FORM/ENDFORM,FUNCTION/ENDFUNCTION,MODULE/ENDMODULE控制语句:以条件控制程序处理块内部的程序流程IF/ENDIF,WHILE/ENDWHILE,CASE/ENDCASE第47页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第47页。ABAP语句类型(2)调用语句:用于调用已定义好的处理块PERFORM,CALL,SUMBIT,LEAVETO操作语句:用于程序内部数据操作或输出WRITE,MOVE,ADD以及运算符等数据库语句:用于数据库操作,含OpenSQL和NativeSQL两种第48页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第48页。语句链关键字“:”和“,”可以把连续使用的相同关键字引导的语句连接在一起,以简化代码,如:WRITE:text1,text2.等价于WRITEtext1.WRITEtext2.第49页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第49页。注释“*”,在行的开头使用,可注释该行“””,单个双引号,可注释该行中其后的文字,如下所示

*Thiswholelineiscomments WRITEtext. “Contentsbehindsthisiscomments第50页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第50页。程序调用直接运行:在事务SE38或SA38中直接运行通过系统目录或者在命令域中输入事务代码运行内部调用:事务代码调用:LEAVETOTRANSACTION,CALLTRANSACTION(调用返回)SUBMIT,SUBMITANDRETURN(调用返回)第51页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第51页。程序结束自动结束:程序完全运行,自动结束强制结束:通过LEAVEPROGRAM.语句可以在任意点结束程序第52页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第52页。内存管理(1)运行时内存管理与用户对话相关(同一个用户和系统进行最多六个SAPGUI对话),包括SAP内存和ABAP内存两部分主对话:又称外部对话,用户登录SAP之后,即开始和应用服务器之间的主对话,各对话间无联系内部对话:在主对话中运行可执行程序或者模块池程序,开始内部对话调用序列:调用不返回,新程序内部对话代替原程序内存,并删除原程序内存;调用返回时,生成程序调用序列,生成堆栈,调用结束时,恢复上一级程序内存状态第53页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第53页。内存管理(2)ABAP内存:主对话内部有一个ABAP内存区域,在该对话内部,可通过EXPORTTO和IMPORTFROMMEMORY在内存堆栈之间进行数据传递,以队列的方式存储SAP内存:所有对话都可以访问的内存区域,可在SAP各对话间共享,通过SETPARAMETER和GETPARAMETER访问装载程序:调用或执行程序时,程序实例被装载到ABAP内存,第一个被装载的程序为主程序;程序装载,触发LOAD-OF-PROGRAM事件对象创建:创建对象(CREATEOBJECT),类的实例被装载到内部对话,该内部对话中的程序及对象都可以使用该类实例第54页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第54页。ABAP基础ABAP语言概述数据定义基本数据操作结构控制处理字符数据使用内表动态数据对象模块化技术错误处理第55页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第55页。数据定义与宣告语句DATA:用于定义变量以及内表、工作区间TYPE:定义类型TABLES:宣告某一个系统中的表或者结构,以便于程序中使用,同时创建表的工作区间CONSTANTS:定义一个常量Parameters、selection-options第56页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第56页。数据对象生存周期:程序的运行期保存:存储于数据库或者输出到文件范例:

DATAtxt1(15)TYPEcVALUE‘DataObject’.初始值类型为字符串存储长度15个字节第57页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第57页。数据类型体系基本类型(ElementTypes)分为固定长度和可变长度两种固定长度(C、N、T、D、I、P、F、X)可变长度String、XString复杂类型结构类型:结构体表类型:内表引用类型:基于基本数据定义参考变量的数据参考变量的对象第58页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第58页。基本类型固定长度数据类型初始值说明示例CSPACE文本字符‘串’‘Name’N‘000..0’数字文本‘01234’T‘000000’时间‘150028’D‘00000000’日期‘20091231’I0整型345F0浮点数5E+04P0压缩数123,456,789.000X‘0’十六进制数‘3A’第59页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第59页。基本类型可变长度String:字符串,如’AString’XString:十六进制字符串,如’A3FF’第60页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第60页。补充文本文字最长可达255个字符。如果某文本文字包含引号,必须重复引号,以使系统能够将内容识别为文本文字而不是文字的结尾。新压缩类型P在系统中存放时所占内存空间只有同长度的浮点数、整数的一半数字字符N,实际上是一个字符串,但是其中的字符只能是数字。如果给该类型变量赋值不足与定义的长度,系统会自动在左边补零第61页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第61页。确定数据对象属性DESCRIBE语法格式:

DESCRIBEFIELDf[LENGTH][TYPEt[COMPONENTSn]][OUTPUT-LENGTHo][DECMIALSd][EDITMASKm][HELP-IDh]变量:LENGTH,对象长度TYPE,对象类型OUTPUT-LENGT,确定输出长度DECIMALS,确定P类型数据对象的小数位长度EDITMASK确定在数据字典中定义转换例程HELP-ID确定数据字典中定义的F1帮助信息第62页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第62页。其他定义方式DataAlikeB.Emp:Data:matnrlikemara-matnr,datelikesy-datum.第63页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第63页。ABAP基础ABAP语言概述数据定义基本数据操作结构控制处理字符数据使用内表动态数据对象模块化技术错误处理程序调试第64页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第64页。基本的数据操作——数据赋值MOVE:把源字段的值赋给目标变量,如MOVEsourceTOdestination. 等价于Destination=source.注意事项:源对象和目标完全兼容(类型,长度等),则赋值过程中结果不变不完全兼容但可以进行类型转换,按固定的转换规则转换不兼容且不能转换,则不能赋值,提示语法错误或者编译过程中有错误,否则会出现运行时错误第65页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第65页。基本的数据操作——结构体赋值两个结构体组件结构完全一致,可以直接赋值,如stur1=stur2两结构体组件结构不完全一致,但有部分组件有对应关系,可逐个组件赋值或者使用move-correspondingstru1tostru2.语句赋值第66页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第66页。基本的数据操作——初始值设定将已经赋值的变量值晴空,恢复为初始状态,采用clear语句,如:clearg_var1.Clear基本数据类型:初始值根据数据类型定Clear结构体类型:逐层、逐个组件拆分按上一规则执行Clear内表,清除内表表头数据语句为:clearit_test.;清除内表标题数据语句为:clearit_test[].或者refreshit_test.引用类型数据:恢复初始状态,不指向任何数据对象第67页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第67页。数值运算——算术预算语句运算数学表达式语句关键字语句加法n=x+y.ADDyTOx.减法n=x-y.SUBTRACTyFROMx.乘法n=x*y.MULTIPLYxByy.除法n=x/y.DIVIDExBYy.整除n=xDIVy.

取余n=xMODy.

幂n=x**y.

第68页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第68页。数值运算——算术预算原则运算后赋值时需要注意类型转换多种数学表达式共存时注意优先级除法/整除运算时要注意除数不能为0运算符号及括号都是ABAP关键字,前后都需要有空格使用P类型进行计算时,程序属性FixedPointedarithmetic没有选中的话,运算时会被当作整数类型进行处理两个结构体同名字段也可以整体进行算术运算,语句为ADD-CORRESPONDING,前缀和运算关键字一样第69页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第69页。数值运算——任意类型参数的数学函数函数名称说明ABS(X)返回输入参数的绝对值SIGN(X)返回输入参数符号,正数返回1,0返回0,负数返回-1TRUNC(X)返回输入参数的整数部分FRAC(X)返回输入参数的小数部分CEIL(X)返回不小于输入参数的最小整数值FLOOR(X)返回不大于输入参数的最大整数值第70页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第70页。数值运算——浮点数类型的数学函数函数名称说明Cos,Sin,Tan三角函数Acos,Asin,Atan反三角函数Cosh,Sinh,Tanh双曲函数Exp底数为e(2.7182818285)的幂函数Log/Log10底数为e/10的对数SQRT平方根第71页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第71页。数值运算——时间日期运算系统将日期时间先转换为数值类型,根据这两种特殊的类型进行合理的增减,如下所示DATA:secondsTYPEi,hoursTYPEi,time1TYPEtVALUE'100000',time2TYPEtVALUE'080000'.seconds=time1-time2.hours=seconds/3600.WRITE:/'Secondsbetweentime1andtime2:',seconds,/'Hoursbetweentime1andtime2:',hours.第72页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第72页。数据输出——基本输出格式数据输出及格式化语句:WRITE,ULINE,FORMAT,SKIP.基本输出语法如下:WRITE[/]f.ULINE.FORMATcolor….SKIPn.第73页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第73页。基本数据类型的默认输出模式数据类型输出长度对齐方式C变量长度左对齐N变量长度左对齐T6左对齐D8左对齐F2*变量长度右对齐I11右对齐P2*变量长度(+1个小数位)右对齐第74页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第74页。格式化输出(write语句)语法格式:write…f<format_options>.具体的格式化选项请参考F1帮助在用户主记录中,可以设置输出时显示的日期分隔符、小数点字符和千分符等选项,进入方式为:任意一SAP屏幕的菜单System->UserProfile->Owndata第75页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第75页。逻辑表达式基本格式:…f1<operator>f2…通用逻辑表达式列表运算符意义EQ或=等于NE或<>或><不等于LT或<小于LE或<=小于等于GT或>大于GE或>=大于等于第76页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第76页。逻辑表达式——特殊操作符ISINITIAL:检查变量是否是初始值BETWEEN:检查对象的值是否属于特定范围之间:…f1betweenf2andf3…IN:用于检查数据对象的内容是否遵从某个选择表的逻辑条件选择表:一种特殊的内表,每一行包含一个特定的逻辑条件,DATAseltablikerangeoff.组合逻辑表达式:AND,OR,NOT,如下IF(ALTN)and(NGTF).第77页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第77页。逻辑表达式——比较两种类型数据兼容类型:不需要做转换,按照通常的比较方式进行不兼容类型:可转换的则先转换,转换规则:操作数之一为F类型,则其他操作数转为F类型操作数无F类型,之一为P类型,则其他操作数转为P类型无F,P类型,之一为T或D类型,其他操作数转为T或D类型无F,P,T,D类型,之一为C类型且其他为X类型,X类型转为C类型操作数之一为C类型,其他为N类型,则两种类型均转换为P类型比较结构化数据:可转换,则逐个组件比较;若不可转换,则先转为C类型在比较比较内表:首先决定于行数,若行数相同,则逐行逐个组件进行比较;如果使用等于之外的操作副,则系统找到不对等的组件即停止比较并返回结果第78页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第78页。ABAP基础ABAP语言概述数据定义基本数据操作结构控制处理字符数据使用内表动态数据对象模块化技术错误处理程序调试第79页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第79页。结构控制程序处理块内部的代码由下列三种结构组织顺序结构:程序顺序执行分支结构:根据不同的条件执行不同的语句块循环结构:反复执行某个语句块在ABAP中,控制结构都是在程序处理块内部的,作用范围不能超出一个处理块,所以称为处理块内部块内部控制第80页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第80页。分支控制包括两种分支控制条件分支语句:IF/ENDIFIfconditions. ...elseifconditions. …Endif.CASE/ENDCASECASEf.whenf1[orf2or…]…when……whenothers.…Endcase.第81页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第81页。循环控制——无条件循环无条件循环,使用DO语句实现

DO[ntimes]. … ENDDO.N用于控制循环次数,可以是数字或者变量如果N为0或者负数,则不进入该循环;如果不限定N的值,则需要用EXIT(推出当前循环),STOP或REJECT等语句强制结束循环,避免死循环系统变量SY-INDEX为已经处理过的循环次数值,DO循环可以嵌套,SY-INDEX为当前循环的次数第82页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第82页。无条件循环范例REPORTz_do_loop.DATA:out_indexTYPEi,in_indexTYPEi.DO2TIMES.out_index=sy-index.WRITE:/out_index.SKIP.DO3TIMES.in_index=sy-index.WRITE:out_indexNO-GAP,'-'NO-GAP,in_indexLEFT-JUSTIFIED.ENDDO.SKIP.ENDDO.第83页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第83页。条件循环使用WHILE语句实现,进入循环之前,先检查语句中逻辑表达式的值,如果为真,执行后面的语句;当逻辑值不再为真或者执行到中止语句时,结束循环,语句格式如下:

WHILE<condition>.……ENDWHILE.SY-INDEX包含已执行的循环次数,可以嵌套循环,要避免死循环问题,一般需要在程序中修改逻辑表达式某变量值,确保一定次数后语句条件为假,否则语句块中必须含有循环中止语句第84页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第84页。条件循环语句范例REPORTz_while_loop.DATA:g_lenthTYPEi,g_str01(30)TYPEcVALUE'Beijing2008'.WHILEg_str01NEspace.g_lenth=sy-index.SHIFTg_str01.ENDWHILE.skip5.WRITE:/'Lengthofg_str01:',g_lenth.注释:该程序确定字符串的有效长度,每次执行循环时,将字符串左移一位,直到其仅包含空格为止第85页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第85页。循环的中止无条件循环:设定循环次数实现中止条件循环:在循环过程中修改逻辑表达式中变量的值,使条件语句为假强制结束循环语句CONTINUE用于无条件中止当前循环,运行该语句后跳过当前语句块所有生于语句执行——但并非结束循环,而是开始下一轮循环或条件判断CHECK用于有条件中止当前循环,与CONTINUE语句类似EXIT,无条件中止循环,系统退出当前循环,继续执行当前循环后面的代码,嵌套循环时执行上一级循环STOP、REJECT,退出循环并无条件结束程序第86页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第86页。循环中止范例REPORTz_terminate_loop.DO4TIMES.IFsy-index=2.CONTINUE.ENDIF.WRITEsy-index.ENDDO.SKIP.DO4TIMES.CHECKsy-indexBETWEEN2AND3.WRITEsy-index.ENDDO.SKIP.DO4TIMES.IFsy-index=3.EXIT.ENDIF.WRITEsy-index.ENDDO.第87页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第87页。ABAP基础ABAP语言概述数据定义基本数据操作结构控制处理字符数据使用内表动态数据对象模块化技术错误处理程序调试第88页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第88页。处理字符数据字符数据操作连接字符串拆分字符串查找字符串替换字符串内容确定字符串长度其他操作语句字符串比较定位操作字符串第89页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第89页。字符数据操作——连接字符串语句关键字:CONCATENATEconcatenates1…snintos_dest[separatedbysep]连接字符串s1~sn并将结果赋给字符串s_destseparatedby用于指定一个字符(串)作为分隔符如果连接字符串后的总长度超过目标字符串长度,则把结果截断后赋值;一旦出现截断情况,sy-subrc为4,否则为0为了避免截断,可以把目标字符串定义为string类型第90页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第90页。连接字符串范例REPORTz_string_concatenate.data:g_s1(9)typecvalue'Firstname',g_s2(10)typecvalue'Secondname',g_s3(20)typec,g_sp(1)typecvalue'.'.concatenateg_s1g_s2intog_s3.write/g_s3.concatenateg_s1g_s2intog_s3separatedbyg_sp.write/g_s3.第91页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第91页。字符数据操作——拆分使用SPLIT语句可将字符串拆分未多个小串

splitsourceatsepintos1…sn.在源字符串中搜索分隔符(sep),并根据该分隔符把源串拆分为多个小串并放到目标字串s1~sn中子串中不包括分隔符与连接语句类似,如果目标字串长度不够会进行截断,且sy-subrc为4,否则为0如果源串拆分的字串数量多于目标字串数量,则源串最后剩余部分包括其后的分隔符都将写入最后一个字串。可采用内表来避免这种情况第92页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第92页。字符串拆分范例REPORTz_string_split.DATA:textTYPEstring,itabTYPETABLEOFstring.text='ABAPisaprogramminglanguage.'.SPLITtextATspaceINTOTABLEitab.LOOPATitabINTOtext.WRITE/text.ENDLOOP.第93页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第93页。字符数据操作——查找字串使用search语句:searchcforstr.在变量C中茶中字符串str,如果找到,sy-subrc返回0,sy-fdpos返回变量C中该字符串的位置(从左算起的字符偏移量),否则将sy-subrc返回4字符串str,可以使用通配符‘*’,也可以设定保存或者忽略str末尾的空格,如下所示:str,搜索str并忽略尾部空格.str.,搜索str不忽略尾部空格*str,搜索以str结尾的单词str*,搜索以str开头的单词注意:单词是指以符号(空格,标点符号,其他字符)分隔的字串第94页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第94页。查找字符串范例REPORTz_string_search.DATAg_str(30)TYPEcVALUE'Thisisatestsentence.'.WRITE:/'Searched','SY-SUBRC','SY-FDPOS'.SEARCHg_strFOR'X'.WRITE:/'X',sy-subrcUNDER'SY-SUBRC',sy-fdposUNDER'SY-FDPOS'.SEARCHg_strFOR'e'.WRITE:/'e',sy-subrcUNDER'SY-SUBRC',sy-fdposUNDER'SY-FDPOS'.SEARCHg_strFOR'.e.'.WRITE:/'.e.',sy-subrcUNDER'SY-SUBRC',sy-fdposUNDER'SY-FDPOS'.SEARCHg_strFOR'*e'.WRITE:/'*e',sy-subrcUNDER'SY-SUBRC',sy-fdposUNDER'SY-FDPOS'.SEARCHg_strFOR's*'.WRITE:/'s*',sy-subrcUNDER'SY-SUBRC',sy-fdposUNDER'SY-FDPOS'.第95页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第95页。字符数据操作——替换字符串内容用其他字符串替换字段的某些部分,使用

replacestr1withstr2intos_dest[lengthl]先对字段s_dest进行搜索,发现字串str1即用str2替换第一次出现的部分如果指定length,则只搜索前L个字节如果SY-SUBRC返回为0,则找到并替换成功,否则为进行任何替换第96页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第96页。替换字符串范例REPORTz_string_replace.DATAnameTYPEstring.name='Michael-Cheong'.WRITE:/'notreplaced:',name.WHILEsy-subrc=0.REPLACE'-'WITH''INTOname.ENDWHILE.WRITE:/'replaced:',name.第97页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第97页。字符数据操作——确定字串长度字符串长度:从首字符开始到最后一个非空字符的长度,即不包括结尾空格,使用:

n=STRLEN(str).将操作数str作为字符数据类型处理,不考虑其实际类型,也不进行转换,范例如下:REPORTz_strlen.DATA:text(24)typecVALUE‘ABAPLanguage’, lenTYPEi.Len=strlen(text).Write:/‘Lengthof‘,text,’is’,len.第98页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第98页。字符数据操作——其他操作语句SHIFT,将字符串整体或者字串进行位移CONDENSE,删除字符串中多于的空格TRANSLATE,字符转换CONVERTTEXT创建一个可以排序的格式OVERLAY用一个字符串覆盖另一个字符串第99页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第99页。字符数据比较运算符含义s1COs2如果s1仅包含s2中的字符,则为真s1CNs2如果s1还包含s2外的字符,则为真s1CAs2如果s1包含任意一个s2中的字符,则为真s1NAs2如果s1不包含s2中的字符,则为真s1CSs2如果s1包含字符串s2,则为真s1NSs2如果s1不包含字符串s2,则为真s1CPs2如果s1包含模式s2,则为真s1NPs2如果s1不包含模式s2,则为真第100页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第100页。定位操作字串通过制定长度及偏移量来操作指定的部分字串,语句为:s[+o][(L)]对变量S从第o+1位开始且长度为L的部分执行该语句的操作,如果未指定长度,则对第o+1位至程序末尾之间的所有位进行处理,偏移量和长度可以为变量动态指定,但是只能是如下情况:MOVE赋值;WRITETO赋值;ASSIGN分配给字段符号;PERFORM将数据传给子程序。范例如下:REPORTz_string_comparison.DATA:f1(8)VALUE‘ABCDEFGH’, f2(20)VALUE‘12345678901234567890’.f2+6(5)=f1+3(5).第101页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第101页。系统变量所有的系统字段存放于结构SYST中,可以通过SE11来浏览SY-SUBRC,该变量是多数命令行执行成功与否的标志,比如数据库操作、功能函数调用等等,0表示操作成功,其他为操作失败。是ABAP编程中最常用、最有用的系统变量第102页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第102页。建表DataelementDomin第103页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第103页。谢谢大家Q/A第104页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第104页。ABAP基础ABAP语言概述数据定义基本数据操作结构控制处理字符数据使用内表动态数据对象模块化技术错误处理程序调试第105页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第105页。结构、工作区、内表结构(Structure)工作区(Workarea)内表(Innertable)第106页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第106页。结构属于复杂类型,内容包含定义的数据字段

TYPES:BEGINOFline, idTYPEi,name(30), agetypei,ENDOFline.第107页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第107页。内表工作区内表:用于在程序运行期间存储多行结构相同的数据工作区:内表是按行进行访问的。必须使用某个工作区域作为与表格互相 传输数据的接口。工作区与内表的定义

data:wa_linetypeline, it_linetypetableofline.表头行(…withheaderline):隐式工作区读取数据行更新数据行工作区

内表idnameageIdNameage第108页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第108页。内表的分类内表种类:标准表排序表哈希表第109页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第109页。定义内表语法格式:

TYPES|DATAitab{TYPE|LIKE}

tablekindOF{LINETYPE|LINEOBJECT}

{WITHkey}{INITIALSIZEn} {withheaderline}.tablekind:内表类型linetype|lineobject:行结构key:表关键字Initialsizen:内表分配的初始内存大小withheaderline:定义表头行第110页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第110页。内表的重要概念——逻辑索引对于标准表和排序表,每一条数据记录都有一个逻辑索引在对标准表和排序表进行插入、删除、附加操作的时候,系统自动的对每一条数据记录赋一个逻辑索引,记录该数据记录在该内表中的逻辑位置(第X行)对于标准表和排序表,可以通过逻辑索引操作数据行,关键字为INDEXn,表示读取第多少行数据记录第111页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第111页。内表的重要系统变量SY-TABIX,当前内表的当前数据记录的逻辑索引值内表嵌套循环时,如果需要使用到sy-tabix变量,请尽量把sy-tabix赋给一个变量再进行处理第112页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第112页。内表类型——标准表标准表(standardtable或者省略关键字):系统为每一行数据生成一个逻辑索引;填充标准表时,可附加在现有行之后或者是插入到指定位置;程序对内表的寻址操作可以通过关键字或者索引进行;对内表进行插入、删除等操作时,其数据行在内存中的位置不变,系统近重新排列各数据行的索引值不能定义唯一关键字,相同关键字的数据可重复出现标准表的另一种定义方式:

data:beginofitaboccurs0, …

endofitab.第113页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第113页。内表类型——排序表关键字SORTEDTABLE,也有一个逻辑索引总是按照关键字升序排序后再进行存储可按照关键字访问内表行也可按照逻辑索引寻找内表行,与标准表相同可以把排序表的关键字定义为唯一关键字或者普通关键字第114页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第114页。内表类型——哈希表关键字:HASHEDTABLE无索引,只能通过关键字访问系统用哈希算法管理表中的数据寻址一条数据记录的时间与表的行数无关必须定义且只能定义为唯一关键字不可能有关键字相同的两行数据出现第115页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第115页。表关键字WITHkey:指定内表关键字,如不指定,则系统使用默认(标准)关键字可以用UNIQUE|NON-UNIQUE来决定内表中具有相同关键字的数据记录是否可以重复出现如果未指定关键字,则默认关键字为非数字和非内表的组件字段。比如内表中含有C,N,P三种类型的字段,则默认关键字为C,N类型的字段第116页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第116页。初始内存大小关键字:…initialsizen…N可以为正数或者0N值的选择不影响程序执行的正确性,但可能影响执行效率:如果N设置过小,重新分配内存空间要占用时间如果N设置过大,则造成内存分配的浪费如果n为0或者不指定,则程序为内表对象分配8KB的内存第117页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第117页。工作区(WorkArea/WorkSpace)程序不能直接进行内表的行操作,需要通过工作区来处理工作区必须具有与内表行一致或者可以互相转换的结构,通常是与内表行类型相同的结构体定义内表对象的同时,需要定义一个与该内表行结构相同的工作区供程序使用添加内表数据时,先给工作区赋值,然后把工作区内的数据添加、插入到内表修改内表数据时,把已定位的内部行内容覆盖工作区的内容,修改工作区内容,再回写第118页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第118页。工作区与内表数据交换图例内表

工作区

读取数据行更新数据行第119页,共246页。SAPABAP基础语法培训教程珍藏版演示文稿全文共246页,当前为第119页。隐式工作区——表头行(HeaderLine)创建内表的时候隐式地定义一个同名工作区,这个同名工作区就叫表头行或标题行语法:DATAitab…WITHHEADERLINE…创建内表的时候,通过该附加项决定内表是否带表头行创建带表头行的内表,则创建了内表和与内表行结构一致的结构体;对带表头行的内表,不需要指

温馨提示

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

评论

0/150

提交评论