ABAP初级技术培训教材ATOS详解_第1页
ABAP初级技术培训教材ATOS详解_第2页
ABAP初级技术培训教材ATOS详解_第3页
ABAP初级技术培训教材ATOS详解_第4页
ABAP初级技术培训教材ATOS详解_第5页
已阅读5页,还剩219页未读 继续免费阅读

下载本文档

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

文档简介

ABAP初级技术培训教材Guangzhou,2021-02-21目录必修课程SAP介绍ABAP介绍ABAP根底FunctionALV介绍SMARTFORM的创立及使用BDC的创立,使用选修课程ECATT简单介绍SAPScriptForms1.1SAP概况什么是SAPSAP公司SAP行业解决方案1.2SAP模块SAP的R/3概述SAP常用功能模块1.3SAP数据库数据字典ABAP字典中的根本对象1.4SAP操作界面SAP登录界面初始屏幕事务代码系统标准功能按钮介绍目录1.SAP介绍1.SAP介绍1.1.1什么是SAPSAP的英文全称是System,Applications,andProductsinDataProcessing.它的中文意思是在数据处理中的系统、应用和产品。严格地说,SAP是一个软件公司的名字,但现在,我们都习惯地统称SAP公司的产品为SAP,而更多的时候又是指SAPR/3系统。实际上,SAP公司的产品除了R/3以外,还有mySAP、SAPBusinessOne、SAPNetWeaver、ESA等等各种各样的产品。1.1.2SAP公司SAP成立于1972年,总部位于德国沃尔多市,是全球最大的企业管理软件供给商、第三大独立软件供给商、全球领先的协同电子商务解决方案供给商。1988年,SAP陆续在法兰克福和纽约证券交易所上市。自成立以来SAP在业内取得了令人瞩目的成就。作为全球企业管理软件的业界领袖和协同电子商务解决方案的市场领导者,SAP早在八十年代就开始同中国国营企业进行工程合作,并取得了成功的经验。1994年底,SAP在北京建立了代表机构,1995年正式成立了中国分公司。随着业务的迅速增长,于1996年设立了SAP上海分公司,1998年又在广州成立了SAP华南分公司。1.1

SAP概况1.SAP介绍1.1.3SAP的行业解决方案SAP为21个行业提供融合了和行业“最正确业务实践〞的行业解决方案,这些行业包括航空与国防、汽车、金融效劳、化工、消费品、工程与建筑、医疗卫生、高等教育、高科技、保险、媒体、石油与天然气、煤矿、医药、公用事业、零售业、电信、电力、钢铁冶金、交通运输及公共设施等。SAP在每个行业都有行业解决方案图,充分展示各行业特殊业务处理要求,并将其绘制入SAP解决方案和合作伙伴补充方案中,完成包括基于网络的端到端的业务流程。1.1

SAP概况目录1.1SAP概况什么是SAPSAP公司SAP行业解决方案1.2SAP模块SAP的R/3概述SAP常用功能模块1.3SAP数据库数据字典ABAP字典中的根本对象1.4SAP操作界面SAP登录界面初始屏幕事务代码系统标准功能按钮介绍1.SAP介绍任务。这些模块常用其英文字母来命名。比方,SD表示销售〔Sales〕和分发〔Distribution〕,MM表示物料管理〔MaterialsManagement〕,CO表示控制〔Controlling〕。诸多模块分成三大类:物流〔Logistics〕、财务〔Accounting〕与人力资源〔HunmanResources〕。比方物料管理〔MM〕在“物流〞类中,控制〔CO〕是“财务〞类的一个模块。它们互相协作,共同作用,来处理公司中的经营管理任务。R/3系统模块结构如图1所示。1.SAP介绍1.2.1

SAP的R/3概述用一句话来概括,SAPR/3是SAP公司开发的客户机/效劳器环境下的套装软件,可用于处理一个公司中几乎所有的经营管理任务,常见的诸如发票支付、生产资源的管理、财务控制等等都包含在其中。SAPR/3运用应用程序模块〔通常简称为“模块〞〕来处理上述1.2

SAP模块1.SAP介绍1.2.2

SAP常用功能模块FI财务会计:集中公司有关会计的所有资料,提供完整的文献和全面的咨询,同时作为企业实行控制和规划的最新根底。TR财务管理:是一个高效率财务管理的完整解决方案,确保公司在世界范围的周转,对财务资产结构实行盈利化组合,并限制风险。CO管理会计:是公司管理系统中规划与控制工具的完整体系,具有统一的报表系统,协调公司内部处理业务的内容和过程。EC企业控制:根据特制的管理资讯,连续监控公司的成功因素和业绩指标。IM投资管理:提供投资手段和专案,从规划到结算的综合性管理和处理,包括投资前分析和折旧模拟。PP生产方案:提供各种制造类型的全面处理,从重复性生产、订制生产、订装生产、加工制造、批量及订存生产直至过程生产。1.2

SAP模块1.SAP介绍1.2.2

SAP常用功能模块(续)MM物料管理:以工作流程为导向的处理功能对所有采购处理最正确化,可自动评估供给商,透过精确的库存和仓库管理降低采购和仓储本钱,并与发票核查相整合PM工厂维护:提供对定期维护、检察、耗损维护与效劳管理的规划、控制和处理,以确保各操作性系统得可用性。QM品质管理:监控、输入和管理整个供给链与品质保证相关的各类处理、协调检察处理、启动校正措施、以及与实验室资讯系统整合。SD销售与分销:积极支援销售和分销活动,具有出色的定价、订单快速处理、按时交货,交互式多层次可变定制功能,并直接与盈利分析和生产方案模组连接。HR人力资源管理:采用涵盖所有人员管理任务和帮助简化与加速处理的整合式应用程式,为公司提供人力资源规划和管理解决方案。1.2

SAP模块目录1.1SAP概况什么是SAPSAP公司SAP行业解决方案1.2SAP模块SAP的R/3概述SAP常用功能模块1.3SAP数据库数据字典ABAP字典中的根本对象1.4SAP操作界面SAP登录界面初始屏幕事务代码系统标准功能按钮介绍1.SAP介绍1.SAP介绍1.3.1数据字典数据字典是一个集中的存储区,它存放关于数据库中数据的信息。所有应用模块使用的所有数据〔如数据类型、数据域、最大字符长度等等〕都定义在数据字典的表当中,数据字典同时也存储关于系统与业务的综合信息。SAP的数据字典称为ABAP字典,其功能有:①保证数据完整性即保证系统的数据是完整,一致的并具有逻辑性。系统会自动阻止非法数据的输入,以下为数据缺乏完整性的例子:某月份值为13;将某个订单指定给一个并不存在的顾客;未指定给一个顾客的订单。②无冗余地定义数据,即将相似的信息与同一个数据定义相连。比方,有多个表包括顾客的ID,可以在字典的某个地方定义ID属性,这样就能在每个顾客ID的实例中使用该属性。③ABAP字典和开发环境的紧密结合使得ABAP程序能自动识别字典对象的名称和属性。你可以双击代码中的对象名称,系统会自动转到ABAP字典中该对象的定义。当数据对象发生改变时,使用该对象的程序会在下次运行时自动参考更新后的值。1.3

SAP数据库1.SAP介绍1.3.2ABAP字典中的根本对象ABAP字典中的根本对象为:表、数据元素、domain。表是数据库中实际存放数据的结构,由行(记录)和列(域)组成。表中的域通过数据元素和domain来定义。一个domain指定域的属性及允许的值。域通过数据元素和domain相联系,你不能直接把域赋给domain。这是SAP和其它系统的重要区别,在其它系统中,域仅通过数据类型(字符、数字等)和长度来定义。在SAP中,域通过一个数据元素来定义,而每个数据元素又通过一个domain定义。数据元素的优点是可以重复使用。例如,有多个表包括域CUSTOMER-ID,你可以将各个表中的CUSTOMER-ID域分配给同一个数据元素,而不需要去在每个表中定义。另外,假设要对该域的属性修改,只需要修改数据元素,所有指向该数据元素的域会自动使用新的值。表,数据元素和domain的关系如以下图所示。1.3

SAP数据库图21.SAP介绍1.3.2ABAP字典中的根本对象(续)实例1.3

SAP数据库目录1.1SAP概况什么是SAPSAP公司SAP行业解决方案1.2SAP模块SAP的R/3概述SAP常用功能模块1.3SAP数据库数据字典ABAP字典中的根本对象1.4SAP操作界面SAP登录界面初始屏幕事务代码系统标准功能按钮介绍1.SAP介绍1.SAP介绍1.4.1登录界面1.4SAP操作界面正确填写登陆信息后点击,即可进入系统,显示初始屏幕1.SAP介绍1.4.2初始屏幕SAP允许多个用户使用同一个用户名同时登录系统,此时系统弹出下面所示窗口提示。1.4SAP操作界面图6选项1:使您自己当前的登录成功,同时把使用相同用户名正在使用系统的其他用户“踢出〞系统。被强行终止使用系统的用户未保存的数据会丧失。选项2:使您自己当前的登录成功,同时允许其他使用相同用户名正在使用系统的用户继续使用系统。选项3:取消自己当前的登录操作,不影响其他使用相同用户名正在使用系统的用户。选择1或2登录单击按钮,成功的情况下进入初始屏幕。如果没有多用户公用一个用户名同时登录系统,那么登录过程中不弹出上述窗口,直接进入初始屏幕此屏幕即SAP系统的初始屏幕,可通过左边层级式菜单查找和进入相应的操作界面。也可以通过在左上角的输入框中输入事务代码来进入相应操作的操作界面。例如:数据库操作界面的事务代码是“se11〞,在输入框中输入“se11〞如上图所示,单击左边按钮可进入数据库操作界面。1.SAP介绍1.4.3事务代码事务代码可以理解为进入所需操作界面的快捷方式。SAP系统中所有标准操作界面都有相应的事务代码。开发人员也可以根据需要在系统中创立自己的事务代码分配给在系统中开发的功能。为帮助大家理解,下面列出几个事务代码及初始界面。1.4SAP操作界面\n:退回系统首页。在系统中进行开发会用到下面几个事务代码,将陆续在后面的章节中详细介绍:SE11:操作数据库SE37:编辑函数SE38:编辑程序1.SAP介绍1.4SAP操作界面1.4.4系统标准功能按钮介绍在不同的功能界面,按钮的状态会有所不同,系统自动把当前界面不可用的按钮设置为灰色。例如:在初始界面[保存]、[返回]、[取消]按钮用不到,系统自动显示为灰色,如以下图所示。目录2.1ABAP概况2.2

开发类型

单据

报表

功能开发2.3

开发界面

查询数据库表

程序开发界面2.4

简单报表

程序结构

数据定义

选择屏幕

读取数据

显示报表

报表实例2.5

练习题2.ABAP介绍2.

ABAP介绍ABAP语言是高级商用编程语言,英文全称为:advancedbusinessapplicationprogram.ABAP/4是SAP开发的第四代编程语言,SAP最初开发ABAP/4语言仅为内部使用,为应用程序员提供优化的工作环境。后经过不断的改进和修改以满足商业领域的需要。现在ABAP/4已成为SAP开发所有自己的应用程序的仅有工具。SAP客户用ABAP/4进行其自身开发。这样的开发对R/3标准解决方案适应特殊问题非常重要。ABAP/4开发工作平台包含所有用于创立和维护ABAP/4程序的工具。2.1ABAP概况目录2.1ABAP概况2.2

开发类型

单据

报表

功能开发2.3

开发界面

查询数据库表

程序开发界面2.4

简单报表

程序结构

数据定义

选择屏幕

读取数据

显示报表

报表实例2.5

练习题2.ABAP介绍2.

ABAP介绍ABAP开发根据开发内容的不同,大致分为单据开发、报表开发、功能开发三种。2.2.1单据〔form〕单据程序用于展示数据库中的明晰数据,如客户的个人信息,销售订单的详细内容等等。单据程序读取数据库中数据展示,不修改数据。单据开发包括数据准备、输出页面设计两个过程,在制作输出页面时使用SAP的标准工具smartform。2.2.2报表〔report〕报表程序用于分析数据库表中的数据。ABAP/4中的报表程序是一个不修改数据库而从数据库表格中读取并分析数据的程序。这种报表程序的结果通常是以列表的形式输出到屏幕或发送到打印机上。2.2

开发类型2.

ABAP介绍2.2.3功能开发功能开发包括用户出口,流程开发〔屏幕编程〕,源程序修改〔理论上是SAP不允许的〕及各种接口集成。其中流程开发是在系统开发一些用户个性化的流程,它可以是参加系统中原有流程中的一段补充也可以是单独的一段流程。例如在同方工程中,销售订单后、出货之前增加了信用的检查的过程。2.2

开发类型目录2.1ABAP概况2.2

开发类型

单据

报表

功能开发2.3

开发界面

查询数据库表

程序开发界面2.4

简单报表

程序结构

数据定义

选择屏幕

读取数据

显示报表

报表实例2.5

练习题2.ABAP介绍2.

ABAP介绍2.3.1查询数据库表表查询初始界面事务代码se11,进入表查询初始界面,如以下图所示。2.3

开发界面2.

ABAP介绍2.3.1查询数据库表(续)表查询初始界面事务代码se11,进入表查询初始界面,如以下图所示。选择“数据库表〞,在右边相应的输入框中填写要查看的表名称,也可以通过按钮查找表名称。2.3

开发界面2.

ABAP介绍2.3.1查询数据库表(续)查询表名称的两种情况第一次查询表名称时,单击按钮弹出窗口如以下图所示。2.3

开发界面在[TableName]输入框中输入模糊查询名称单击此按钮,弹出表名称列表窗口选择表名,单击此按钮,表名称自动填写到表查询初始页面2.

ABAP介绍2.3.1查询数据库表(续)查询表名称的两种情况〔续〕在数据库表查询初始界面不是第一次查询表名称时,单击按钮弹出窗口如下所示。2.3

开发界面本次查询对象不在以往查询记录中时,单击此按钮2.

ABAP介绍2.3.1查询数据库表(续)数据库表显示界面(SE16N)查询到表名称后,在表查询初始页面单击[显示]按钮,进入数据库表界面,如以下图所示。2.3

开发界面查看该表的数据内容,单击此按钮,首先进入到选择屏幕用户可以填写查询数据的条件,也可以不填写,单击按钮显示数据列表2.

ABAP介绍2.3.2程序开发界面创立程序事务代码se38,进入ABAP编辑初始屏幕,界面如左图所示。2.3

开发界面1.输入要查找或创立的程序名称2.在子对象栏中选择“源代码〞3.创立程序单击此按钮在[Titel]输入框中输入程序名称,该名称将显示在程序运行后的显示界面上。在[Typ]栏中选择程序的类型,在这里我们选“可执行程序〞。在[Status]栏中选择程序的状态,在这里我们选“测试程序〞。单击[保存]按钮,弹出〞创立对象目录条目〞窗口1.填写开发类2.保存红色显示的“DEVK904534〞是请求号,此处默认的是前一次创立的请求号,可以几个程序共用一个请求号,也可以创立自己的请求号。创立自己的请求号,点击此按钮1.填写“短描述〞一栏,即所创立请求号的描述2.保存保存后系统将创立的请求号带回到这里请求号创立之后,点击此按钮开发类用来分类管理程序,不指定开发类的程序可以保存为本地对象,但是本地对象不会要求填写请求号,无法从开发机上传到测试机和生产机。在这里,我们保存为本地对象,单击[本地对象]按钮。此时程序创立成功,进入程序编辑界面。2.

ABAP介绍2.3.2程序开发界面(续)程序编辑界面常用按钮

2.3

开发界面2.

ABAP介绍2.3.2程序开发界面(续)程序调试〔1〕设置断点:程序必须在活动状态才可以设置断点。光标停留在要设置断点的行,单击按钮〔即按钮〕。光标所在行显示为橘黄色,表示已经在该行设置了断点〔如以下图所示〕,程序运行到此行会自动停止等待下一步操作。2.3

开发界面2.

ABAP介绍2.3.2程序开发界面(续)程序调试〔续〕〔2〕运行程序进行调试:设好断点后,单击按钮运行程序,程序在断点处停止执行,界面如左图所示。四个调试用按钮:

2.3

开发界面单步执行逐行执行程序,但遇到子程序的调用时,只显示该子程序的返回结果被调用程序执行完后返回到调用程序向下执行,执行程序到断点处或程序结尾2.

ABAP介绍2.3.2程序开发界面(续)程序调试〔续〕〔2〕运行程序进行调试〔续〕:观察变量值:在Variable栏中填写要观察值的变量名称,向下执行,在Wert栏中将显示该变量在运行过程中的值。程序运行完毕,自动关闭程序调试窗口。〔3〕取消断点:光标停留在已设置断点的行,单击按钮,取消设置的断点,光标所在行恢复正常颜色显示。2.3

开发界面目录2.1ABAP概况2.2

开发类型

单据

报表

功能开发2.3

开发界面

查询数据库表

程序开发界面2.4

简单报表

程序结构

数据定义

选择屏幕

读取数据

显示报表

报表实例2.5

练习题2.ABAP介绍2.

ABAP介绍2.4.1程序结构简单报表程序结构如以下图所示。2.4简单报表2.

ABAP介绍2.4.1程序结构(续)程序抬头:创立程序后,系统自动输入第一个ABAP/4语句,如:REPORT<reportname>或者PROGRAM<programname>,即程序声明.对于<report/programname>,系统使用用户在“ABAP/4编辑器初始屏幕〞上输入的名称。语句REPORT和PROGRAM实际上具有相同功能。它们使系统能识别报表程序或任何其他ABAP/4程序,并允许为输出列表指定一定的标准:REPORT或PROGRAM语句可以有不同的参数,如LINE-SIZE、LINE-COUNT或NOSTANDARDPAGEHEADING。这些参数主要适用于报表程序,用来分析数据并输出结果列表。程序实例:REPORTZTESTONENOSTANDARDPAGEHEADING*不显示标准的页面抬头信息LINE-SIZE238*设置每页报表宽度为238LINE-COUNT100*设置每页报表屏幕高度为100MESSAGE-IDY010.*定义消息类

2.4简单报表2.

ABAP介绍2.4.1程序结构(续)ABAP程序事件(常用)初始化事件:INITIALIZATION选择屏幕事件:ATSELECTIONSCREEN参考代码【DEMO_SELECTION_SCREEN_EVENTS】逻辑数据库GET事件:GETnode执行代码事件:START-OF-SELECTION

END-OF-SELECTION页头页脚事件:TOP-OF

END-OF2.4简单报表2.

ABAP介绍2.4.2数据定义数据定义需要指定其数据类型。数据类型有预定义的和自定义之分。预定义数据类型的名称是固定的。用户定义的数据类型的名称由程序员在程序中定义的。ABAP/4中预定义的数据类型如下表所示:

2.4简单报表2.

ABAP介绍2.4.2数据定义(续)数据定义用到的命令及关键字说明数据定义用到的关键字有:TYPE,TYPES,LIKE,DATA,TABLES。TYPE用来指定数据类型;TYPES用来定义自定数据类型;实例:TYPES:BEGINOFMYLIST,"定义名称为MYLIST的数组数据类型NAME(10)TYPEC,“指定名称为NAME的项的数据类型为C,长度为10NUMBERTYPEI,"指定名称为NUMBER的项的数据类型为IENDOFMYLIST."定义自定数据类型MYLIST结束(3)LIKE跟TYPE表达使用格式相同,如:DATATRANSCODELIKESY-TCODE.含义是指定名称为TRANSCODE的变量类型与系统变量SY-TCODE相同。不同的是LIKE用在已有值的数据项,如系统变量,而TYPE表达那么是用在指定数据类型。2.4简单报表2.

ABAP介绍2.4.2数据定义(续)数据定义用到的命令及关键字说明〔续〕(4)DATA语法:DATA<f>[<length>]<type>[<value>][<decimals>]<f>:变量名称,最长30个字符,不可含有+.,:()等字符<length><type>:数据类型及长度,如LINE(20)TYPEC.亦如MYNAMELIKESY-UNAME<value>:初值<decimals>:小数位数实例:DATA:COUNTERTYPEPVALUE1,"名称为COUNTER变量,类型为P,初值为1FLAGTYPECVALUEISINITIAL,"名称为FLAG的变量,类型为C,初值为默认值WEIGHTTYPEPDECIMALS2VALUE‘1.25’."名称为WEIGHT的变量,类型为P,初值为1.252.4简单报表2.

ABAP介绍2.4.2数据定义(续)数据定义用到的命令及关键字说明〔续〕(4)DATA语法〔续〕:实例:数组变量的定义DATA:BEGINOFADDRESS,NAME(10)TYPEC,NUMBERTYPEP,ENDOFADDRESS.使用时用字段变量加上组件名称,如ADDRESS-NAME。(5)TABLES:利用TABLES语句,可以创立称为表工作区的数据对象。表工作区是参考ABAP/4词典对象的字段串。语法:TABLES<dbtab>.其中<dbtab>是ABAP/4词典对象的名称,同时也是创立的表工作区的名称。表工作区组件的顺序和名称与在ABAP/4词典中声明的对象相同。实例:TABLES:EBAN.2.4简单报表2.

ABAP介绍2.4.2数据定义(续)数据定义用到的命令及关键字说明〔续〕(6)定义内表:ABAP/4中的内表〔InternalTable〕是一种数据结构,它可以由几个不同类型的栏位(field)組成,用來表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔资料表示具有相同属性的多个事物.内表的定义有几种格式不同的格式。在这里我们只介绍其中的一种。格式如下:DATA:BEGINOF<internaltable>OCCURS<n>WITHHEADERLINE,<field1>TYPE<type1>,<field2>TYPE<type2>,<field3>TYPE<type3>,…ENDOF<internaltable>.OCCURS<n>:表示预先申请的行数。WITHHEADERLINE:表示是否存在表工作区即表头。存在表头表示可以直接定位到表的字段上。2.4简单报表实例:TYPES:

BEGIN

OF

gty_sbook

,

carrid

LIKE

sbook-carrid,

connid

LIKE

sbook-connid,

fldate

LIKE

sbook-fldate,

customid

LIKE

sbook-customid,

loccuram

LIKE

sbook-loccuram,

END

OF

gty_sbook.

DATA:

gt_sbook

TYPE

TABLE

OF

gty_sbook,

gs_sbook

TYPE

gty_sbook.2.

ABAP介绍2.4.3选择屏幕PARAMETERS指令语法:

PARAMETERS<p>[DEFAULT<f>][LOWERCASE][OBLIGATORY][ASCHECKBOX][RADIOBUTTONGROUP<rad>]实例:PARAMETERS:NAME(8),AGETYPEI,BIRTHTYPED.执行結果:2.4简单报表2.

ABAP介绍2.4.3选择屏幕(续)PARAMETERS指令〔续〕LOWERCASE:ABAP/4预设是将字串输入值自动转换为大写,加上此参数会将输入的资料转成小写。OBLIGATORY:强制要求输入,屏幕上会出現一个“?〞,使用者必须要输入才可。ASCHECKBOX:输入CHECKBOX的格式。实例:PARAMETERS:TAXASCHECKBOXDEFAULT‘X’,NTDASCHECKBOX.执行结果:2.4简单报表2.

ABAP介绍2.4.3选择屏幕(续)PARAMETERS指令〔续〕RADIOBUTTONGROUP<rad>:输入RADIOBUTTONGROUP的方式。实例:PARAMETERS:BOYRADIOBUTTONGROUPSEXDEFAULT‘X’,GIRLRADIOBUTTONGROUPSEX.执行結果:2.4简单报表2.

ABAP介绍2.4.3选择屏幕(续)SELECT-OPTIONS语法:

SELECT-OPTIONS<check-option>FOR<table-field>实例:

TABLESSPFLI.SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.“将条件的输入值存放入AIRLINE,筛选对象为“SPFLI中的CONNID栏位。

执行結果:2.4简单报表2.

ABAP介绍2.4.3选择屏幕(续)在一个框中显示多个选择条件语法:SELECTION-SCREENBEGINOFBLOCK<name>WITHFRAMETITLE<TEXT-001>.……SELECTION-SCREENENDOFBLOCK<name>.

实例:SELECTION-SCREENBEGINOFBLOCKB1WITHFRAME.SELECTION-SCREENSKIP1.*空一行PARAMETERS:P_WERKSLIKEEBAN-WERKSOBLIGATORY.SELECT-OPTIONS:S_MATNRFOREKPO-MATNR,"物料号码S_MATKLFOREBAN-MATKL."物料组SELECTION-SCREENENDOFBLOCKB1.执行结果:2.4简单报表2.

ABAP介绍2.4.4读取数据语法:SELECT<result>FROM<source>[INTO<target>][WHERE<condition>][GROUPBY<fields>][ORDERBY<sort_order>].两个或几个表关联用:SELECTA~AF1A~AF2B~BF1B~BF2C~CF1C~CF2INTOCORRESPONDINGFIELDSOFTABLEITAB_NAMEFROMTABLE1ASAINNERJOINTABLE2ASBONA~AF1=B~BF1ANDA~AF2=B~BF2INNERJOINTABLE3ASCONA~AF1=C~CF1WHERE……判断查询结果:每次SELECT操作后,系统会设置SY-SUBRC。假设找到一个匹配的记录,SY-SUBRC设置为0,否那么为非零值。应该养成良好的编程习惯,在每次操作后检查SY-SUBRC。假设找不到匹配记录,那么可以显示相应信息或让程序采取适宜的动作。2.4简单报表

实例:IFSY-SUBRC<>0.MESSAGEI000.EXIT.ENDIF.2.

ABAP介绍2.4.5显示报表在屏幕上定位输出用WRITE命令。语法:WRITEAT[/][<pos>][(<len>)]<f>.斜线‘/’表示新的一行。<pos>是最长为三位数字的数字或变量,表示在屏幕上的位置。<len>是最长为三位数字的数字或变量,表示输出长度。如果输出内容只包含直接值〔即不是变量〕,可以忽略关键字AT。如果指定某一个位置<pos>,那么无论在该位置是否有可用的空间或写有其它字段,总是在该位置输出字段。如果输出长度<len>太短,那么只显示局部字符。数字字段从左边截断,并用星号〔*〕作前缀。其它字段从右边截断,但是不给出该字段显示不完整的标识。2.4.6报表实例:效劳器:系统:800程序名称:ZTESTONE报表名称:月采购方案报表2.4简单报表目录2.1ABAP概况2.2

开发类型

单据

报表

功能开发2.3

开发界面

查询数据库表

程序开发界面2.4

简单报表

程序结构

数据定义

选择屏幕

读取数据

显示报表

报表实例2.5

练习题2.ABAP介绍2.

ABAP介绍题目1程序名:ZZ_TRAIN_系统用户名编号,如ZZ_TRAIN_0462或ZZ_TRAIN_US01开发类:本地对象使用WRITE语句输出如下内容:ThisismyfirstABAPprogram.题目2使用事务代码SE11查看例如数据库表:SPFLI,SBOOK,SCARR题目3按照图中格式输出选择屏幕;

2.5练习题2.

ABAP介绍题目3(续):常量STRING1值为:ewe*lcom;系统变量sy-uname;系统变量sy-datum;按照表格格式和内容输出:其中第一、二、三行居中显示,第四行靠左显示;S_COUNTR的值为选择屏幕中选取的实际值。要求:程序中除常量之外不允许定义其他常量或给变量赋常量之外的值,可以定义变量。

2.5练习题目录3.1数据定义数据类型变量定义常量定义系统定义的数据指令3.2数据运算指令赋值截取字符串赋值数组值的复制变量CALLBYVALUE的使用去除变量内容算数符号数值函数日期与时间运算字符串数据处理3.ABAP根底3.3

屏幕输入PARAMETERS指令SELECTION-OPTIONS

配合SELECT命令SELECTION-SCREEN3.4

屏幕输出指令Write指令

产生空白列

显示图示

显示CHECKBOX资料

输出横线3.5

内表

定义内表APPEND指令COLLECT指令3.5.4INSERT指令目录

读取内表数据

修改内表数据

内表操作3.6

数据库指令SELECT指令INSERT指令UPDATE指令MODIFY指令DELETE指令COMMITWORK与ROLLBACKWORK3.ABAP根底3.7逻辑控制指令比较符号条件述叙循环表达循环控制表达3.8程序模块简介IncludeProgramSubroutineProcedure参数值的传递Subroutine的控制3.9练习题目录3.1数据定义数据类型变量定义常量定义系统定义的数据指令3.2数据运算指令赋值截取字符串赋值数组值的复制变量CALLBYVALUE的使用去除变量内容算数符号数值函数日期与时间运算字符串数据处理3.ABAP根底3.3

屏幕输入PARAMETERS指令SELECTION-OPTIONS

配合SELECT命令SELECTION-SCREEN3.4

屏幕输出指令Write指令

产生空白列

显示图示

显示CHECKBOX资料

输出横线3.5

内表

定义内表APPEND指令COLLECT指令3.5.4INSERT指令3.ABAP根底3.1.1数据类型

定义数据需要指定其数据类型。数据类型有预定义数据类型和自定义数据类型之分。预定义数据类型的名称是固定的。用户定义的数据类型的名称由用户在程序中指定。ABAP/4中预定义的数据类型如下表所示:3.1数据定义3.ABAP根底3.1.2变量定义

DATA语法:

ABAP介绍:数据定义:DATA

3.1.3常量定义

常数定义使用CONSTANTS指令,如定义PI是一个有5位小数的数值3.14159.

实例:

CONSTANTSPITYPEPDECIMALS5VALUE‘3.14159’.3.1.4系统定义的数据

SPACE

空白字符串

SY-SUBRC

系统执行返回值,0表示执行成功SY-UNAME

登陆帐号名称

SY-DATUM

系统日期

SY-UZEIT

系统时间

SY-TCODE

目前的事务代码

3.1数据定义目录3.1数据定义数据类型变量定义常量定义系统定义的数据指令3.2数据运算指令赋值截取字符串赋值数组值的复制变量CALLBYVALUE的使用去除变量内容算数符号数值函数日期与时间运算字符串数据处理3.ABAP根底3.3

屏幕输入PARAMETERS指令SELECTION-OPTIONS

配合SELECT命令SELECTION-SCREEN3.4

屏幕输出指令Write指令

产生空白列

显示图示

显示CHECKBOX资料

输出横线3.5

内表

定义内表APPEND指令COLLECT指令3.5.4INSERT指令3.ABAP根底3.1.5指令TYPE指令:TYPE用来指定数据类型实例:

DATA:NAME(10)TYPEC.

TYPES:NUMBERTYPEI.TYPES指令:TYPES用来自定义数据类型。实例:

TYPES:BEGINOFMYLIST,

NAME(10)TYPEC,

NUMBERTYPEI,

ENDOFMYLIST.

LIKE指令:LIKE也用来指定数据类型,使用格式与TYPE相同,LIKE与TYPE的区别是LIKE用在已有值的数据项,如系统变量,而TYPE表达那么是用在指定数据类型。实例:DATA:MYDATALIKESY-DATUM.

3.1数据定义3.ABAP根底3.2.1赋值语法:

MOVE<F1>TO<F2>

将F1的值存至变数F2中,也可写成F2=F1。实例:M_NAME='CHER'.

3.2.2截取字符串赋值

语法:

MOVE<F1>[+<O1>]TO<F2>[+<O2>]实例:

DATA:F1(10)TYPECVALUE'ABCDEFGHIJ'.F2(5)TYPEC.F2=F1+3(5).

"自第4个位置开始取出5个字符,

F2的内容会变成DEFGH

3.2数据运算指令3.ABAP根底3.2.3数组值的复制语法:

MOVE–CORRESPONDING<Strings1>TO<Strings2>.

将Strings1中的字段名称相同的数据复制至Strings2相应字段中实例:DATA:BEGINOFADDRESS,FIRSTNAME(10)TYPECVALUE'LULU',LASTNAME(10)TYPECVALUE'CHOU',TEL(12)TYPECVALUE'4660570',ENDOFADDRESS.DATA:BEGINOFNAME,FIRSTNAME(10)TYPEC,LASTNAME(10)TYPEC,E_MAIL(30)TYPEC,ENDOFNAME.MOVE-CORRESPONDINGADDRESSTONAME.执行结果:NAME-FIRSTNAME变成‘LULU’,NAME-LASTNAME变成‘CHOU’,而NAME-E_MAIL那么不变。

3.2数据运算指令3.ABAP根底3.2.4变量CALLBYVALUE的使用在变量的使用上,可以使用类似CallByValue的方法语法:WRITE(<f>)TO<g>实例:DATA:NAME(20)TYPECVALUE'SOURCE',SOURCE(10)TYPECVALUE'LILY',TARGET(10)TYPEC.WRITE(NAME)TOTARGET.WRITE/TARGET.执行结果:LILY3.2.5去除变量内容

语法:CLEAR<f>.去除变量现在内容实例:DATANTYPEIVALUE100.CLEARN.“执行结果:变量N的内容变成03.2数据运算指令3.ABAP根底3.2.6算术符号

**乘幂*乘/除+加-减DIV整数除法MOD余数除法3.2.7数值函数ABS(N):取数值N的绝对值SIGN(N):1ifN>00ifN=0-1ifN<03.2数据运算指令3.ABAP根底3.2.7数值函数(续)CEIL(N):传回大于数值N的最小整数实例:DATA:INT1TYPEI,INT2TYPEI.INT1=CEIL('-5.65').WRITE:INT1.“输出结果:5-INT2=CEIL('4.54').WRITE:INT2.“输出结果:5FLOOR(N):传回小于数值N的最大整数实例:DATA:INT1TYPEI,INT2TYPEI.INT1=FLOOR('-5.65').WRITE:INT1.“输出结果:6-INT2=FLOOR('4.54').WRITE:INT2.“输出结果:4TRUNC(N):传回数值N的整数局部实例:DATA:INTITYPEI.INTI=TRUNC('5.65').WRITEINTI.“输出结果:53.2数据运算指令3.ABAP根底3.2.7数值函数(续)FRAC(N):传回数值N的小数局部实例:DATA:MYFTYPEF.MYF=FRAC('5.65').WRITEMYF.“输出结果:0.65COS(A),SIN(A),TAN(A):传回三角函数cosA,sinA,tanA的值,A为弪度量EXP(N):传回e^N值LOG(N):传回logeN值LOG10(N):传回logN值SQRT(N):传回N的平方根值3.2数据运算指令3.ABAP根底3.2.8日期与时间运算日期数据的运算日期数据可以直接运算,如加法与减法的运算实例:

DATA:MdateTYPEd.Mdate=SY-DATUM.“如传回19971015

Mdate+6(2)='01'."Mdate变成19971001

Mdate=Mdate-1."Mdate变成19970930

时间数据的运算时间格式为‘hhmmss’,如‘212030’表’21:20:30’实例:DATA:HOURSTYPEI,MINUTESTYPEI,T2TYPETVALUE'200000',T1TYPETVALUE'183000'.HOURS=(T2-T1)/3600."计算有几小时MINUTES=(T2-T1)/60."计算几分钟3.2数据运算指令3.ABAP根底3.2.9字符串数据处理字符串移位语法:SHIFT<c>[BY<n>PLACES][<modes>][CIRCULAR][BY<n>PLACES]:表示移动的位数,没有此参数默认移动一位。[<modes>]:移动的方向,没有此参数默认向左移动。(1).LEFT,字符串往左移n位(2).RIGHT,字符串往右移n位[CIRCULAR]:字符串以环状方式移位实例:

DATASTRING(10)TYPECVALUE'ABCDEFGHIJ'.SHIFTSTRING."得到'BCDEFGHIJ'SHIFTSTRINGBY2PLACESRIGHT."得到ABCDEFGH3.2数据运算指令3.ABAP根底3.2.9字符串数据处理(续)取代字符串内容语法:REPLACE<string1>WITH<string2>INTO<c>将字符串<c>中的<string1>以<string2>来取代实例:DATA:STRING(10)TYPECVALUE'ABCDEFGHI',STR1(3)TYPECVALUE'DEF',STR2(3)TYPECVALUE'123'.REPLACESTR1WITHSTR2INTOSTRING.WRITE/STRING."得到ABC123GHI大小写的转换语法:TRANSLATE<c>TOUPPERCASE.“转成大写TRANSLATE<c>TOLOWERCASE.“转成小写在字符串中寻找局部字符串3.2数据运算指令3.ABAP根底3.2.9字符串数据处理(续)在字符串中寻找局部字符串语法:SEARCH<c>FOR<str>从字符串<c>查询字符串<str>,执行结果存至两个变数:SY-SUBRC和SY-FDPOS,假设找到那么SY-SUBRC为0,SY-FDPOS存开始位迭〔从0开始计〕。假设找不到那么SY-SUBRC为4,SY-FDPOS为0。实例:DATASTRING(10)TYPECVALUE'ABCDEFGHIJ'.SEARCHSTRINGFOR‘CDE’.“执行结果:SY-SUBRC值为0,SY-FDPOS值为2字符串长度语法:STRLEN(<c>)实例:DATA:INTTYPEI.INT=STRLEN('XYZABC')."得到6INT=STRLEN('ABC')."得到3取局部字符串语法:<f>[+<o>][<l>]实例:DATAT(10)TYPECVALUE'ABCDEFGHI'.WRITE/T+2(4).“执行结果:CDEF3.2数据运算指令3.ABAP根底3.2.9字符串数据处理(续)组合字符串的函数语法:CONCATENATE<STR1><STR2>INTO<STR3>.实例:DATA:str1(4)

type

c,str2(4)typec,str3(8)typec.str1

=

'2007'.str2

=

'0902'.CONCATENATE

str1

str2

INTO

str3.WRITE:str3.“执行结果:20070902去掉字符串中间的空格语法:CONDENSE<STR0>NO-GAPS.实例:DATA:

str0(10)

TYPE

c.str0

=

'abc

sde'.CONDENSE

str0

NO-GAPS.WRITE:/

str0.“执行结果:abcsde3.2数据运算指令目录3.1数据定义数据类型变量定义常量定义系统定义的数据指令3.2数据运算指令赋值截取字符串赋值数组值的复制变量CALLBYVALUE的使用去除变量内容算数符号数值函数日期与时间运算字符串数据处理3.ABAP根底3.3

屏幕输入PARAMETERS指令SELECTION-OPTIONS

配合SELECT命令SELECTION-SCREEN3.4

屏幕输出指令Write指令

产生空白列

显示图示

显示CHECKBOX资料

输出横线3.5

内表

定义内表APPEND指令COLLECT指令3.5.4INSERT指令3.ABAP根底在ABAP/4中要自屏幕输入变量的内容,使用的命令是PARAMETERS及SELECTION-OPTIONS:PARAMETER:输入一个变量或字段内容SELECTION-OPTIONS:使用条件筛选画面来输入数据3.3.1PARAMETERS指令语法:

PARAMETERS<p>[DEFAULT<f>][LOWERCASE][OBLIGATORY][ASCHECKBOX][RADIOBUTTONGROUP<rad>]实例:

PARAMETERS:NAME(8)TYPEC,AGETYPEI,BIRTHTYPED.执行結果:3.3屏幕输入指令3.ABAP根底3.3.1PARAMETERS指令(续)LOWERCASE:ABAP/4预设是将字串输入值自动转换为大写,加上此参数会将输入的资料转成小写。OBLIGATORY:强制要求输入,屏幕上会出現一个“?〞,使用者必须要输入才可。ASCHECKBOX:输入CHECKBOX的格式。实例:PARAMETERS:TAXASCHECKBOXDEFAULT‘X’,NTDASCHECKBOX.执行結果:3.3屏幕输入指令3.ABAP根底3.3.1PARAMETERS指令(续)RADIOBUTTONGROUP<rad>输入RADIOBUTTONGROUP的方式。实例:

PARAMETERS:BOYRADIOBUTTONGROUPSEXDEFAULT‘X’,GIRLRADIOBUTTONGROUPSEX.执行結果:3.3屏幕输入指令3.ABAP根底3.3.2SELECTION-OPTIONS语法:

SELECT-OPTIONS<check-option>FOR<table-field>[DEFAULT<begin>TO<end>][NO-EXTENSION][NOINTERVALS][LOWERCASE][OBLIGATORY]实例:

TABLESSPFLI.SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.

“将条件的输入值存放入AIRLINE,筛选对象“为SPFLI中的CONNID栏位执行結果:DEFAULT<begin>TO<end>:设定开始结束范围输入默认值实例:

SELECT-OPTIONSAIRLINEFORSPFLI_WA-CONNIDDEFAULT'2042'TO'4555'.NO-EXTENSION:设定不要多值输入的画面NOINTERVALS:设定不要区间范围输入的画面LOWERCASE:输入转换成大写OBLIGATORY:强制要求输入3.3屏幕输入指令3.ABAP根底3.3.3配合SELECT命令条件输入完后要将符合条件的数据筛选出来,可配合使用SELECT指令使用WHERE<条件式>实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.SELECT*FROMSPFLIWHERECONNIDINAIRLINE.WRITE:/SPFLI-CONNID,SPFLI-FROMCITY,SPFLI-TOCITY.ENDSELECT.使用CHECK参数实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.SELECT*FROMSPFLI.CHECKAIRLINE.WRITE:/SPFLI-CONNID,SPFLI-FROMCITY,SPFLI-TOCITY.ENDSELECT.使用IF…IN表达实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.SELECT*FROMSPFLI.IFSPFLI-CONNIDINAIRLINEWRITE:/SPFLI-CONNID,SPFLI-FROMCITY,SPFLI-TOCITY.ENDIF.ENDSELECT.3.3屏幕输入指令3.ABAP根底3.3.4SELECTION-SCREEN产生空白列语法:SELECTION-SCREENSKIP[<n>]实例:SELECTION-SCREENSKIP2.“产生两列空白行产生底线语法:SELECTION-SCREENULINE/<pos>(length)实例:SELECTION-SCREENULINE/10(30).“自第10格开始产生长度30的底线印出备注说明语法:SELECTION-SCREENCOMMENT/<pos>(length)<name>实例:

REMARK=‘Plsenteryourname’.SELECTION-SCREENCOMMENT/10(30)REMARK.同一行中输入多个数据项语法:

SELECTION-SCREENBEGINOFLINE.……SELECTION-SCREENENDOFLINE.3.3屏幕输入指令3.ABAP根底3.3.4SELECTION-SCREEN(续)同一行中输入多个数据项语法:

SELECTION-SCREENBEGINOFLINE.……SELECTION-SCREENENDOFLINE.实例:

SELECTION-SCREENBEGINOFLINE.SELECTION-SCREENCOMMENT20(10)comm1.SELECTION-SCREENPOSITION30.PARAMETERSname(10)TYPEcDEFAULT'name'.SELECTION-SCREENCOMMENT45(5)comm2.SELECTION-SCREENPOSITION50.PARAMETERSbirthTYPEd.SELECTION-SCREENENDOFLINE.ATSELECTION-SCREENOUTPUT.comm

温馨提示

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

评论

0/150

提交评论