




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SAP基本知识培训-ABAPSAP-ABAP-实用培训教程解析全文共106页,当前为第1页。培训内容
ABAP简介1ABAP基础2ALV报表3Function4Smartforms5Enhancement6BDC7SAP-ABAP-实用培训教程解析全文共106页,当前为第2页。ABAP简介ABAP程序的流程系统架构和ABAP程序系统的三层架构:表现层,应用服务器层,数据库层.ABAP程序从数据库提取数据展示给用户程序运行流程程序开始系统读取上下文运行时系统发送选择屏幕输入的值被放入数据对象程序从数据库请求数据记录数据库把数据记录返回给程序SAP-ABAP-实用培训教程解析全文共106页,当前为第3页。ABAP简介ABAP工作台简介知识库和对象浏览器知识库包含了所有系统开发对象—程序、函数模块、数据库表定义等等
除知识库外,数据库还包含应用和定制表,这些表是客户端相关的,都有一个客户端列。知识库结构根据应用组件进行划分,创建一个知识库对象时,必须指定一个包。知识库信息系统(SE80)。通过应用层次功能显示按层级组织的知识库对象(SE81)。
ABAP工作台工具,ABAP编辑器、ABAP字典、屏幕制作器、菜单制作器、函数制作器、类制作器。对象浏览器,左面是导航区,右面是工具区。SAP-ABAP-实用培训教程解析全文共106页,当前为第4页。ABAP简介ABAP工作台简介开发程序和组织开发组织开发(SE01,SE09,SE10)。
创建包,Package、短文本、Appl.Component、SoftwareComponent、TransportLayer、PackageType。传输路径(STMS)。创建请求号。
ABAP编程语言简介。创建ABAP程序(SE38)。创建事务码(SE93)。SAP-ABAP-实用培训教程解析全文共106页,当前为第5页。ABAP简介谢谢!Q&ASAP-ABAP-实用培训教程解析全文共106页,当前为第6页。ABAP基础数据字典ABAP字典中的基本对象
ABAP字典中的基本对象为:表、数据元素、Domain
。
表是数据库中实际存放数据的结构,由行(记录)和列(字段)组成。表中的字段通过数据元素和domain来定义。一个domain指定字段的属性及允许的值。字段通过数据元素和domain相联系,一般不建议把domain直接赋给字段。这是SAP和其它系统的重要区别,在其它系统中,字段仅通过数据类型(字符、数字等)和长度来定义。在SAP中,字段通过一个数据元素来定义,而每个数据元素又通过一个domain定义。
数据元素的优点是可以重复使用。例如,有多个表包括字段FIELD,你可以将各个表中的FIELD分配给同一个数据元素,而不需要去在每个表中定义。另外,若要对字段的属性修改,只需要修改数据元素,所有指向该数据元素的字段会自动使用新的值。
创建表、数据元素、Domain(SE11)。SAP-ABAP-实用培训教程解析全文共106页,当前为第7页。ABAP基础表,数据元素和domain的关系如下图所示SAP-ABAP-实用培训教程解析全文共106页,当前为第8页。ABAP基础基本对象的关系图SAP-ABAP-实用培训教程解析全文共106页,当前为第9页。操作实践:实际建立一张表单表单格式要求.表单名称为ZTEST20130801,具体格式如下客户端物料工厂调度员操作人日期MANDTMATNRWERKSFEVOR自定义BLDATABAP基础SAP-ABAP-实用培训教程解析全文共106页,当前为第10页。ABAP基础谢谢!Q&ASAP-ABAP-实用培训教程解析全文共106页,当前为第11页。ABAP基础数据定义数据类型
16进位数
X'00'1-65535Byte1X时间数据,格式为HHMMSS
'000000'
6Byte6TPacked数,用在小数点数
0
1-16Byte8P
数值
'00…0'1-65535Byte1N
整数
0-2^31至2^31-14I
浮点数
0
8Byte8F日期数据,格式为YYYYMMDD'00000000'
8Byte8D字符串数据,如'Program'
Space1-65535Byte1C
DescriptionInitialValue
RangeLengthTypeSAP-ABAP-实用培训教程解析全文共106页,当前为第12页。ABAP基础名称作用SPACE空白字符串SY-SUBRC系统执行返回值,0表示执行成功SY-UNAME登陆帐号名称SY-DATUM系统日期SY-UZEIT系统时间SY-TCODE目前的事务代码数据定义系统定义的数据SYSTSAP-ABAP-实用培训教程解析全文共106页,当前为第13页。ABAP基础数据定义变量定义
DATA语法:DATA<f>[<length>]<type>[<value>][<decimals>]<f>:变量名称,最长30个字符,不可含有+.,:()等字符.<length><type>:数据类型及长度,如LINE(20)TYPEC.亦如MYNAMELIKESY-UNAME。<value>:初值。<decimals>:小数位数。SAP-ABAP-实用培训教程解析全文共106页,当前为第14页。ABAP基础数据定义常量定义
常数定义使用CONSTANTS指令,如定义PI是一个有5位小数的数值3.14159。SAP-ABAP-实用培训教程解析全文共106页,当前为第15页。ABAP基础TYPE指令,TYPE用来指定数据类型。TYPES指令,只能设定类型,被别的变量引用,不能保存值.TYPES用来自定义数据类型。LIKE指令,LIKE也用来指定数据类型,使用格式与TYPE相同,LIKE与TYPE的区别是LIKE用在已有值的数据项,如系统变量,而TYPE叙述则是用在指定数据类型。STATICS指令,STATICS用来定义变量,使用格式与DATA相同。与DATA的区别是STATICS只能在子程序中使用,DATA可以在子程序外进行定义.语法:STATICS<c>[<length>]<type>[<value>][<decimals>]TABLES指令,TABLES语句用来创建称为表工作区的数据对象。表工作区是参考ABAP/4词典对象的字段串。语法:TABLES<dbtab>.其中<dbtab>是ABAP/4词典对象的名称,同时也是创建的表工作区的名称。表工作区组件的顺序和名称与在ABAP/4词典中声明的对象相同。数据定义指令SAP-ABAP-实用培训教程解析全文共106页,当前为第16页。ABAP基础谢谢!Q&ASAP-ABAP-实用培训教程解析全文共106页,当前为第17页。ABAP基础语法:MOVE<F1>TO<F2>将F1的值存至变数F2中,也可写成F2=F1实例:M_NAME='CHER'.数据运算指令赋值SAP-ABAP-实用培训教程解析全文共106页,当前为第18页。ABAP基础语法:MOVE<F1>[+<O1>]TO<F2>[+<O2>]实例:DATA:F1(10)TYPECVALUE'ABCDEFGHIJ'.F2(5)TYPEC.F2=F1+3(5).*自第4个位置开始取出5个字符(MOVEF1+3(5)TOF2)F2的内容会变成DEFGH数据运算指令截取字符串赋值SAP-ABAP-实用培训教程解析全文共106页,当前为第19页。ABAP基础数据运算指令在变量的使用上,可以使用类似CallByValue的方法语法:WRITE(<f>)TO<g>实例:DATA:NAME(20)TYPECVALUE'SOURCE',SOURCE(10)TYPECVALUE'LILY',TARGET(10)TYPEC.WRITE(NAME)TOTARGET.WRITE/TARGET.执行结果:LILY变量CALLBYVALUE的使用SAP-ABAP-实用培训教程解析全文共106页,当前为第20页。ABAP基础语法:MOVE–CORRESPONDING<Strings1>TO<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则不变。数据运算指令数组值的复制SAP-ABAP-实用培训教程解析全文共106页,当前为第21页。ABAP基础数据运算指令语法:CLEAR<f>清除变量现在内容实例:DATANTYPEIVALUE100.CLEARN.WRITEN.执行结果:0.清除变量内容SAP-ABAP-实用培训教程解析全文共106页,当前为第22页。ABAP基础数据运算指令算术符号符号功能**乘幂*乘/除+加-减DIV整数除法MOD余数除法SAP-ABAP-实用培训教程解析全文共106页,当前为第23页。ABAP基础数据运算指令数值函数ABS(N):取数值N的绝对值SIGN(N):1(N>0),0(N=0),-1(N<0).CEIL(N):传回大于数值N的最小整数.FLOOR(N):传回小于数值N的最大整数.TRUNC(N):传回数值N的整数部分.FRAC(N):传回数值N的小数部分.COS(A),SIN(A),TAN(A):传回三角函数cosA,sinA,tanA的值,A为弪度量EXP(N):传回e^N值LOG(N):传回logeN值SQRT(N):传回N的平方根值SAP-ABAP-实用培训教程解析全文共106页,当前为第24页。ABAP基础数据运算指令日期数据的运算,日期数据可以直接运算,如加法与减法的运算.时间数据的运算,时间格式为‘hhmmss’,如‘212030’表’21:20:30’.日期与时间运算SAP-ABAP-实用培训教程解析全文共106页,当前为第25页。ABAP基础数据运算指令字符串移位语法:SHIFT<c>[BY<n>PLACES][<modes>][CIRCULAR][BY<n>PLACES]:表示移动的位数,没有此参数默认移动一位。[<modes>]:移动的方向,没有此参数默认向左移动.(1).LEFT,字符串往左移n位(2).RIGHT,字符串往右移n位[CIRCULAR]:字符串以环状方式移位取代字符串内容语法:REPLACE<string1>WITH<string2>INTO<c>将字符串<c>中的<string1>以<string2>来取代大小写的转换语法:TRANSLATE<c>TOUPPERCASE.*转成大写TRANSLATE<c>TOLOWERCASE.*转成小写在字符串中寻找部分字符串语法:SEARCH<c>FOR<str>.从字符串<c>查询字符串<str>。执行结果存至两个变数,SY-SUBRC和SY-FDPOS,若找到则SY-SUBRC为0,SY-FDPOS存开始位迭(从0开始计)。字符串长度,语法:STRLEN(<c>).取部分字符串,语法:<f>[+<o>][<l>].字符串连接,语法:CONCATENATE
<string1>
<string2>
INTO
<string3>.字符串分割,语法:SPLIT
<string1>
AT<c>
INTO
<string2><string2>..字符串数据处理SAP-ABAP-实用培训教程解析全文共106页,当前为第26页。ABAP基础数据运算指令批量重复操作的时候,可以定义sap宏来进行操作语法:DEFINE<name>.
...&1...&9...
END-OF-DEFINITION.例子:DATA:xTYPEi,yTYPEi,lTYPEi.
DEFINEwrite_frame.
x=sy-colno.y=sy-linno.
WRITE:'|'NO-GAP,&1NO-GAP,'|'NO-GAP.
l=sy-colno-x.
y=y-1.SKIPTOLINEy.POSITIONx.
ULINEATx(l).
y=y+2.SKIPTOLINEy.POSITIONx.
ULINEATx(l).
y=y-1.x=sy-colno.SKIPTOLINEy.POSITIONx.
END-OF-DEFINITION.
SKIP.
write_frame'Inaframe!'.
宏SAP-ABAP-实用培训教程解析全文共106页,当前为第27页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第28页。ABAP基础语法:PARAMETERS<p>[DEFAULT<f>][LOWERCASE][OBLIGATORY][ASCHECKBOX][RADIOBUTTONGROUP<rad>]实例:PARAMETERS:NAME(8),AGETYPEI,BIRTHTYPED.OBLIGATORY:强制要求输入,屏幕上会出現一个“√”,使用者必须要输入才可。ASCHECKBOX:输入CHECKBOX的格式。实例:PARAMETERS:TAXASCHECKBOXDEFAULT‘X’,NTDASCHECKBOX.RADIOBUTTONGROUP<rad>:输入RADIOBUTTONGROUP的方式。实例:PARAMETERS:BOYRADIOBUTTONGROUPSEXDEFAULT‘X’,GIRLRADIOBUTTONGROUPSEX.屏幕输入指令PARAMETERS指令SAP-ABAP-实用培训教程解析全文共106页,当前为第29页。ABAP基础语法:SELECT-OPTIONS<check-option>FOR<table-field>[DEFAULT<begin>TO<end>][NO-EXTENSION][NOINTERVALS][OBLIGATORY]实例:TABLESSPFLI.AIRLINEFORSPFLI-CONNID.*将条件的输入值存放入AIRLINE,筛选对象为SPFLI中的CONNID栏位。DEFAULT<begin>TO<end>:设定开始结束范围输入默认值实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNIDDEFAULT'2042'TO'4555'.NO-EXTENSION:设定不要多值输入画面NOINTERVALS:设定不要区间范围输入画面OBLIGATORY:强制要求输入屏幕输入指令SELECTION-OPTIONSSAP-ABAP-实用培训教程解析全文共106页,当前为第30页。ABAP基础使用WHERE<条件式>实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.SELECT*FROMSPFLIWHERECONNIDINAIRLINE.WRITE:/SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.ENDSELECT.使用CHECK参数实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.SELECT*FROMSPFLI.CHECKAIRLINE.WRITE:/SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.ENDSELECT.使用IF…IN叙述实例:SELECT-OPTIONSAIRLINEFORSPFLI-CONNID.SELECT*FROMSPFLI.IFSPFLI-CONNIDINAIRLINE.WRITE:/SPFLI-CONNID,SPFLI-CITYFROM,SPFLI-CITYTO.ENDIF.ENDSELECT.
屏幕输入指令配合SELECT命令SAP-ABAP-实用培训教程解析全文共106页,当前为第31页。ABAP基础产生空白列语法:SELECTION-SCREENSKIP[<n>]产生底线语法:SELECTION-SCREENULINE/<pos>(length)印出备注说明语法:SELECTION-SCREENCOMMENT/<pos>(length)<name>同一行中输入数个数据项语法:SELECTION-SCREENBEGINOFLINE.……SELECTION-SCREENENDOFLINE.屏幕输入指令SELECTION-SCREENSAP-ABAP-实用培训教程解析全文共106页,当前为第32页。ABAP基础语法: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.屏幕输入指令绘出BLOCKPANELSAP-ABAP-实用培训教程解析全文共106页,当前为第33页。ABAP基础ABAP/4用来在屏幕上输出数据的指令是Write指令语法:Write资料项资料项可以是常数或变量。指定屏幕位置显示语法:WriteAT[/][<pos>][(<len>)]资料项/:先往下一列pos:屏幕X轴坐标(len):显示资料的长度屏幕输出指令Write指令SAP-ABAP-实用培训教程解析全文共106页,当前为第34页。ABAP基础语法:WRITE资料项<显示格式参数>显示格式参数:LEFT-JUSTIFIED资料靠左显示
CENTERED资料靠中间显示
RIGHT-JUSTIFIED资料靠右显示
UNDER<g>在资料项<g>的X轴开始坐标显示
NO-GAP紧接着显示,不留空格
USINGEDITMASK<m>使用内嵌字符显示,如11:20:30USINGNOEDITMASK不使用内嵌字符
NO-ZERO数字前面0的部分不显示
NO-SIGN不显示正负号
DECIMALS<d>显示d位小数字数
EXPONENT<e>F(浮点数)的科学计数法表示
ROUND<r>四舍五入至小数位数下r位
CURRENCY<c>币别显示
DD/MM/YY日期显示格式……屏幕输出指令指定显示格式SAP-ABAP-实用培训教程解析全文共106页,当前为第35页。ABAP基础产生n个空白列语法:SKIP[<n>]跳至指定列坐标将坐标跳至指定的Y轴列坐标语法:SKIPTOLINE[<n>]屏幕输出指令产生空白列SAP-ABAP-实用培训教程解析全文共106页,当前为第36页。ABAP基础可以显示R/3系统所提供的符号或图标语法:WRITE<symbol-name>ASSYMBOLWRITE<icon-name>ASICON实例:INCLUDE<SYMBOL>.INCLUDE<ICON>.WRITE:/‘PhoneSymbol:’,SYM_PHONEASSYMBOL.WRITE:/‘AlarmIcon:’,ICON_ALARMASICON."名称可以在ICON中找到屏幕输出指令显示图示SAP-ABAP-实用培训教程解析全文共106页,当前为第37页。ABAP基础语法:WRITE<资料项>ASCHECKBOX.实例:DATA:FLAG1VALUE''.FLAG2VALUE'X'.WRITE:/'CHECKFLAG1:',FLAG1ASCHECKBOX.WRITE:/'CHECKFLAG2:',FLAG2ASCHECKBOX.屏幕输出指令显示CHECKBOXSAP-ABAP-实用培训教程解析全文共106页,当前为第38页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第39页。ABAP基础用自定义的表类型来定义内表实例:TYPES:BEGINOFLINE,*定义数组类型
COL1TYPEI,COL2TYPEI,ENDOFLINE.*TYPES:ITABTTYPELINEOCCURS10.老式写法TYPES:ITABT
TYPE
STANDARD
TABLE
OF
LINE
.*定义表类型DATA:MYITABTYPEITABTWITHHEADERLINE.*定义带工作区的内表,工作区名称与内表名称相同:MYITAB用DATA直接定义内表实例:OCCURS表示内表,如果没有OCCURS表示是数组(0表示不限制要申请行数)DATA:BEGINOFMYITABOCCURS0,”老式写法*自带工作区的内表,工作区名称与内表名称相同:MYITABCOL1TYPEI,COL2TYPEI,ENDOFMYITAB.内表定义内表SAP-ABAP-实用培训教程解析全文共106页,当前为第40页。ABAP基础把内表工作区内容追加到内表中.把相同结构数组变量内容追加到内表中(也可以把LINE看作ITAB不同名的工作区)语法:APPEND<wa>TO<itab>将一个内表中数据追加到另一个内表中语法:APPENDLINESOF<itab1>[FROM<n1>][TO<n2>]TO<itab2>即将<itab1>中自<n1>至<n2>范围的数据加入到<itab2>中。内表APPEND指令SAP-ABAP-实用培训教程解析全文共106页,当前为第41页。ABAP基础使用COLLECT指令向内表添加数据时将有相同standardkey(非数值字段)的数据的数值字段进行汇总。语法:COLLECT[<wa>]INTO<itab>实例:DATA:BEGINOFITABOCCURS3,COL1(3)TYPEC,COL2TYPEI,ENDOFITAB.ITAB-COL1=‘ABC’.ITAB–COL2=10.COLLECTITAB.ITAB-COL1=‘XYZ’.ITAB-COL2=20.COLLECTITAB.ITAB-COL1=‘ABC’.ITAB-COL2=30.COLLECTITAB.“汇总COL2至COL1=ABC的元素上LOOPATITAB.WRITE:/ITAB-COL1,ITAB-COL2.ENDLOOP.执行结果:ABC40XYZ20内表COLLECT指令SAP-ABAP-实用培训教程解析全文共106页,当前为第42页。ABAP基础InsertLine在指定的内表位置之前插入新数据语法:INSERT[<wa>INTO][INITIALLINEINTO]<itab>[INDEX<idx>]插入另一InternalTable元素语法:INSERTLINESOF<itab1>[FROM<n1>TO<n2>]INTO<itab2>INDEX<idx>将<itab1>中自<n1>至<n2>的范围的数据插入至<itab2>中,位置在<idx>之前。内表INSERT指令SAP-ABAP-实用培训教程解析全文共106页,当前为第43页。ABAP基础循环读取InternalTable元素数据语法:LOOPAT<itab>[INTO<wa>][FROM<n1>TO<n2>][WHERE<condition>]<loopexpression>ENDLOOP.根据设定的范围选取数据,读完后自动移往下一笔。读取InternalTable指定位置的元素语法:READTABLE<itab>[INTO<wa>]INDEX<idx>自指定位置<idx>读取元素数据。根据字段内容寻找语法:READTABLE<itab>INTO<wa>COMPARING<field>.内表读取内表数据SAP-ABAP-实用培训教程解析全文共106页,当前为第44页。ABAP基础更新数据内容语法:MODIFY<itab>[FROM<wa>][INDEX<idx>][TRANSPORTING<f1>…<f2>][WHERE<condition>]TRANSPORTING<f1>..<f2>:指定更新的字段名称。DeleteLines删除InternalTable的数据语法:DELETE<itab>INDEX<idx>加上删除条件:DELETE<itab>[FROM<n1>TO<n2>][WHERE<condition>]内表修改内表数据SAP-ABAP-实用培训教程解析全文共106页,当前为第45页。ABAP基础内表数据排序语法:SORT<itab>[<order>][BY<f1>]….[<order>]:可分成递减(DESCENDING)和递增(ASCENDING)。
<f1>:为指定的字段。计算数值字段总和语法:SUMSUM只能在LOOP中使用,计算所得总和存在工作区中。REFRESH<itab>使用在有HEADERLINE的InternalTable中,清除所有元素CLEAR<itab>[]使用在没有HEADERLINE的InternalTable中,清除所有元素FREE<itab>释放(Release)InternalTable所占的内存空间,用在REFRESH和CLEAR指令之后内表内表操作SAP-ABAP-实用培训教程解析全文共106页,当前为第46页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第47页。ABAP基础自数据库读取记录语法:SELECT[DISTINCT]<result>FROM<source>[INTO<target>][WHERE<condition>][GROUPBY<fields>][ORDERBY<sortorder>]加上[DISTINCT]会自动去除重复的记录。以循环方式读取所有记录(这种方法效率不高,不建议使用)语法:SELECT*……ENDSELECT.读取单笔记录语法:SELECTSINGLE*FROM…WHERE….将读取的记录存放至指定的工作区语法:SELECT…INTO<wa>WHERE…将读取的数据写入内表中m语法:SELECT…INTOTABLE<itab>WHERE…语法:SELECT…INTOTABLE<itab>PACKAGESIZE<n>SELECTUPTO<n>ROWS…INTOTABLE<itab>
一次读取<n>笔记录至<itab>中数据库指令SELECT指令SAP-ABAP-实用培训教程解析全文共106页,当前为第48页。ABAP基础条件叙述语法:WHERE<condition>(1).BETWEEN<g1>AND<g2>
在<g1>至<g2>之间的条件范围
(2).LIKE<g>
表示条件包含的字符串
<1>_:表示一个字符
<2>%:表示一个字符串
(3).IN(<g1>….<g2>)
包含在<g1>…<g2>的条件ORDERBY叙述根据关键字排序
(1)...ORDERBYPRIMARYKEY.根据指定的字段顺序排序
(2)…ORDERBY<f1>[DESCENDING]<f2>[DESCENDING]/不建议用ORDER语句句关联多个表查询数据语法:SELECTA~AF1A~AF2B~BF1B~BF2C~CF1C~CF2INTOCORRESPONDINGFIELDSOFTABLEITAB_NAME(INTOCORRESPONDINGFIELDSOFTABLEITAB_NAME表示按匹配数据字段保存进去)FROMTABLE1ASAINNERJOINTABLE2ASBONA~AF1=B~BF1ANDA~AF2=B~BF2INNERJOINTABLE3数据库指令SELECT指令SAP-ABAP-实用培训教程解析全文共106页,当前为第49页。ABAP基础自工作区加入一笔记录至数据库语法:INSERTINTO<database>VALUES<wa>自内表加入一笔记录至数据库语法:INSERT<database>FROMTABLE<itab>[ACCEPTINGDUPLICATEKEY]将<itab>中非NULL的数据加入<database>中。[ACCEPTINGDUPLICATEKEY]检查是否有关键字重复的记录,若有则此关键字重复的记录不插入。数据库指令INSERT指令SAP-ABAP-实用培训教程解析全文共106页,当前为第50页。ABAP基础使用PrimaryKey更新已存在的记录内容语法:UPDATE<database>FROM<wa>使用条件式更新已存在的记录内容语法:UPDATE<database>SET<f1>=<values>…WHERE<condition>
根据条件式更新符合条件式的记录数据库指令UPDATE指令SAP-ABAP-实用培训教程解析全文共106页,当前为第51页。ABAP基础根据PrimaryKey寻找数据文件中符合的记录,若找到则更新,若找不到则新增记录语法:MODIFY<database>FROM<wa>Example:WA-NO='34051920'.WA-COMPANY='DELTA'.MODIFYSPFLIFROMWA.数据库指令MODIFY指令SAP-ABAP-实用培训教程解析全文共106页,当前为第52页。ABAP基础删除数据文件的记录使用PrimaryKey语法:DELETE<database>FROM<wa>使用条件式语法:DELETEFROM<database>WHERE<condition>
根据条件式删除符合条件式的记录数据库指令DELETE指令SAP-ABAP-实用培训教程解析全文共106页,当前为第53页。ABAP基础要确定数据成功写入数据库,可使用COMMITWORK指令,如:COMMITWORK.相反的,如果反悔要复原,可使用ROLLBACKWORK,可复原在上个COMMITWORK指令之后更新的数据,如:ROLLBACKWORK.数据库指令COMMITWORK与ROLLBACKWORKSAP-ABAP-实用培训教程解析全文共106页,当前为第54页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第55页。ABAP基础=或EQ等于<>或><或NE不等于<或LT小于<=或LE小于等于>或GT大于>=或GE大于等于AND且OR或NOT非逻辑控制指令比较符号SAP-ABAP-实用培训教程解析全文共106页,当前为第56页。ABAP基础IF叙述语法:IF<Condition1>.<Statement1>ELSEIF<Condition2>.<Statement2>ELSEIF<Condition3>.<Stetement3>….ELSE.<elseStatement>ENDIF.(1).在每个判断叙述之后要加上.。
(2).在巢状循环之中无法使用ELSE叙述,ELSE叙述属IF叙述CASE叙述语法:CASE<变数f>.WHEN<Value1>.<Statement1>WHEN<Value2>.<Statement2>….WHENOTHERS.<othersStatement>ENDCASE.逻辑控制指令条件叙述SAP-ABAP-实用培训教程解析全文共106页,当前为第57页。ABAP基础计次循环语法:DO...VARYINGdobjFROMdobj1NEXTdobj2[RANGErange].
[statement_block]
ENDDO.条件循环语法:WHILE<Condition>.<StatementBlock>ENDWHILE逻辑控制指令循环叙述SAP-ABAP-实用培训教程解析全文共106页,当前为第58页。ABAP基础CONTINUE:跳至循环的下一次CHECK<Condition>CHECK之后条件成立才继续往下执行循环,否则调到下一次循环中。EXIT:结束循环叙述无穷循环。DO.<StatementBlock>ENDDO.无穷循环必须配合EXIT叙述来执行。逻辑控制指令循环控制叙述SAP-ABAP-实用培训教程解析全文共106页,当前为第59页。ABAP基础在ABAP/4中可以使用Include加载另一个程序,通常用于共享数据项的定义,与C中Includeheaderfile的做法很类似。语法:INCLUDE<includeprogramfile>Global变量定义应用。语法:DATA:BEGINOFCOMMONPART[<name>],<data定义>ENDOFCOMMONPART[<name>].此常使用在
Include的档案中程序模块简介IncludeProgramSAP-ABAP-实用培训教程解析全文共106页,当前为第60页。ABAP基础在ABAP/4中子程序的调用可分成内部调用和外部调用,前者编写在程序中,后者存在另一程序中,通常为专存放子程序的公用程序集,可提供结不同的子程序调用。Subroutine的定义
FORM<subr>.<subroutinestatementblock>ENDFORM.程序模块简介SubroutineProcedureSAP-ABAP-实用培训教程解析全文共106页,当前为第61页。ABAP基础CallByReference:(引用调用传参数时将数据的存放地址传至参数中,也就是子程序中的参数变量与外部实际变量共享地址内的值,又称为CallByAddress,若在子程序中地址中的值改变了,外部实际变量的值也会跟着改变。语法:FORM<subr>[USING<f1><f2>…][CHANGING<f1>…]PERFORM<subr>[USING<f1><f2>…][CHANGING<f1>…]Using之后接在子程序中不会改变的变量,CHANGING接会改变值的变量但实际上USING之后的参数在子程序中也可将值改变。CallByValue(值调用传参数时将数据的值复制一份至另一地址中,所以在子程序中参数变量值改变,并不会影响外部实际变数的值.语法:FORM<subr>USINGVALUE(<f1>…)CHANGING…使用VALUE(<f1>)表示只使用<f1>的值但不改变<f1>的值PERFORM<subr>USING<f1>CallByValueandReturnResult传入参数值的方式同CallByValue相同,但在子程序结束执行时会将传入的参数值复制一份传回给外部实际变数。语法:FORM…CHANGINGVALUE(<f1>)PERFORM…CHANGING…<f1>程序模块简介参数值的传递SAP-ABAP-实用培训教程解析全文共106页,当前为第62页。ABAP基础CHECK<Condition>CHECK之后条件成立才继续向下执行子程序EXIT强迫结束子程序执行,返回上一层程序叙述。程序模块简介Subroutine的控制SAP-ABAP-实用培训教程解析全文共106页,当前为第63页。ABAP基础INITIALIZATION
在选择屏幕出现之前执行,在这里可以给选择屏幕中的字段和备注中的字段赋值.ATSELECTION-SCREEN
在这个事件里响应的是屏幕上选择条件中的事件.
START-OF-SELECTION
报表程序必须执行的事件,在进入第二屏幕之前触发。END-OF-SELECTION
选择屏幕结束处理。事件介绍SAP-ABAP-实用培训教程解析全文共106页,当前为第64页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第65页。ALV什么是ALV在R/34.6C之前ALV列表全称为ABAPListViewer,在其后的版本中,已经更名为SAPListViewer。简单来说就是一种SAP列表输出的方式。在SAP系统中,ALV是以表格控件的形式出现在用户屏幕中实现的,具体还有两种情况:①作为整个屏幕输出,是唯一的屏幕元素。②作为屏幕元素之一与其他屏幕元素结合出现。ALV的特点ALV列表是SAP系统中新的列表标准,可以在ABAP程序或者SAPQuery等报表中输出,除了传统列表输出时可以显示数据和少量的交互功能(退出,下翻页等)之外,还提供了大量的其他交互功能,包括排序,汇总等。相对于SAP的传统列表输出形式,ALV列表有以下优点:①ALV是独立的二进制软件元素。②安装在系统的前台(即SAPGUI中),将列表处理功能从应用服务器移至显示层,因而提高了相应速度。③可以通过ABAPObjects中的系统全局类实现。ALV列表概述SAP-ABAP-实用培训教程解析全文共106页,当前为第66页。ALV目前为止,最常用的ALV有以下两种类型:LIST型与GRID型LIST型ALV列表
LIST型的ALV列表与传统WRITE输出的列表样式更为相近,只是除标准菜单栏之外,在工具栏上还有许多功能按钮。GRID型ALV列表
GRID型ALV列表比较类似EXCEL的样子,与LIST一致的是它也有很多功能按钮。两种简单的ALV列表类型SAP-ABAP-实用培训教程解析全文共106页,当前为第67页。ALVALV列表可以比较自由的调整栏位的宽度,直接通过拖拽来调整栏位的顺序,通过使用Optimumwidth功能自动优化栏位宽度为最优宽度这些基本功能.ALV列表最常用的功能显示明细排序筛选列汇总列打印列表使用EXCEL打开使用WORD打开下载至文件使用SAP邮寄图表和ABC分析表改变布局最终用户文档SAP-ABAP-实用培训教程解析全文共106页,当前为第68页。ALVLIST列表型显示函数
REUSE_ALV_LIST_DISPLAY:输出LIST型列表
REUSE_ALV_POPUP_TO_SELECT:在弹出的对话框中显示LIST列表GRID列表型显示函数
REUSE_ALV_GRID_DISPLAY:输出GRID型列表
ALV常用函数介绍SAP-ABAP-实用培训教程解析全文共106页,当前为第69页。ALV调用ALV的函数,除了输出使用的内表是之外,还有两个部分是必需确认的列栏位属性和布局属性。顾名思义列栏位属性就是设置输出中列的位置,列的参照,列的标题等信息;同样布局属性是设置输出ALV列表的整体布局的属性。之前的示例中,没有调用列栏位属性是因为输出表是某个系统结构表,直接输入系统结构名函数可参照此结构创建列属性,从而输出。没有调用布局属性时,系统按默认布局输出,不做任何调整。针对这两个属性对应的输入,下面分别对IT_FIELDCAT与IT_LAYOUT的参数值做简单介绍,学员可据此进行练习。IT_FIELDCAT中常用参数,函数中,IT_FIELDCAT参照SLIS_T_FIELDCAT_ALV,IT_LAYOUT常用参数,函数中IT_LAYOUT参照
SLIS_LAYOUT_ALV,ALV常用参数SAP-ABAP-实用培训教程解析全文共106页,当前为第70页。ALVALV列表包含一些预定义的功能,之前讲过的筛选,汇总等都是ALV列表设置好的标准功能。ALV列表如果需要打印表头是否能处理呢?如果需要在标准的ALV中增加功能是否能处理呢?答案当然是可以的。ALV输出标题函数,REUSE_ALV_COMMENTARY_WRITE:是在ALV中输出表头的函数,应在ALV的TOP-OP事件中调用。ALV事件SAP-ABAP-实用培训教程解析全文共106页,当前为第71页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第72页。FunctionFunction中文翻译为功能模块是存储在中央库内的特殊外部子程序.R/3系统提供大量预定义的功能模块,可以从ABAP/4程序中进行调用,而且可以创建自己的功能模块。每个功能模块都有其独立的功能,调用功能模块时通过输入输出参数进行数据的传递实现其本身的功能.Function的基本组件SAP-ABAP-实用培训教程解析全文共106页,当前为第73页。Function输入参数:用于将数据从调用程序传递到功能模块;输出参数:用于将数据从功能模块传递回调用程序;更改参数:既是输入参数又是输出参数,更改传递给功能模块的值,并将其返回给调用程序;表格参数:是通过内表进行参数传递,处理方式与更改参数一样;例外:用于处理功能模块中可能发生错误的情况,调用程序检查是否发生了错误,然后采取相应的措施.Function简介SAP-ABAP-实用培训教程解析全文共106页,当前为第74页。Function使用语句:
CALLFUNCTION<Funcitonname>
[EXPORTINGf1=a1fn=an]
[IMPORTINGf1=a1fn=an]
[CHANGINGf1=a1fn=an]
[TABLESf1=a1fn=an]
[EXCEPTIONSe1=r1en=rn[OTHERS=ro]].Function的调用SAP-ABAP-实用培训教程解析全文共106页,当前为第75页。使用TCODE:SE37
Function的创建SAP-ABAP-实用培训教程解析全文共106页,当前为第76页。创建实例:创建一个取物料描述的function。输入物料代码,输出物料描述,最后写report调用。需要支持批量查询。PS:物料表MARA,物料描述表MAKT。Function的创建SAP-ABAP-实用培训教程解析全文共106页,当前为第77页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第78页。SMARTFORM
当需要从系统中打印出一张单据的时候,需要用到form这种开发工具。例如:系统中针对某一笔交易开了发票,那客户付款后也应该收到一张收款证明,写明购买的商品信息以及价格信息,购买日期等,这样双方都对这笔交易的历史保留了一定的依据,那这张给客户的纸制发票就是取了系统中的交易数据打印出来的发票.Smartform简介SAP-ABAP-实用培训教程解析全文共106页,当前为第79页。SMARTFORMSmartform界面SAP-ABAP-实用培训教程解析全文共106页,当前为第80页。SMARTFORM制作Smartform时是在form编辑器里面设置,我们在编辑器里用到的工具分为三部分:
最左边是导航树:导航树里面包含了设计smartform时用到的所有元素,包括页,窗口,文本等;中间是主屏幕,在这个屏幕里,被选中的元素都会有对应的几个页面去设置元素的属性,例如可以设置窗口的宽度/高度等;
最右边是form画板,在这里一般都会设置页面的布局,如窗口的位置大小等,可以通过单击工具栏的表格绘制器按钮,设置form画板的显示/不显示状态;
如果需要设置某个元素的属性,可以在左边的导航树中选中该元素双击,中间的主屏幕中会出现该元素的属性设置页面;
Form编辑器的组成SAP-ABAP-实用培训教程解析全文共106页,当前为第81页。SMARTFORMSmartform中所有的元素都在左边的导航树中以节点的形式表示;子节点继承上层节点的属性,例如格式.如果一个节点没有被执行,那么它下面所有的子节点将都不被执行.但是子节点是独立的,它在父节点执行完之后开始执行;如果一个节点包含有子节点,可以在左边导航树单击三角形符号展开它的结构看到子节点;在最上层的节点中,有两个默认存在的节点:全局设置;页和窗口.
导航树SAP-ABAP-实用培训教程解析全文共106页,当前为第82页。SMARTFORM菜单:工具-打印表格-SMRTFORMS-智能表格;(T-CODE:SMARTFORMS)双击进入表格绘制器输入事务代码:SMARTFORMS,点执行按钮进入表格绘制器;输入一个名称,此名称必须以Z/Y开头,点创建按钮进入开发界面;输入一个短描述;表格属性-输出选项:这里设置全局的表格属性,例如纸张大小,默认页面的行间距,字间距等;表格接口是用来定义输入输出参数的;系统会自动创建一个PAGE,为这个PAGE修改容易识别的短描述;一般属性中设置PAGE的属性;在PAGE下面,系统自动创建了一个MAINWINDOW;如需创建其他窗口,可将光标定位在PAGE上,右键-创建-窗口.
创建SMARTFORMS步骤SAP-ABAP-实用培训教程解析全文共106页,当前为第83页。SMARTFORM在窗口的输出选项中可以设置窗口的一些属性,如边距,高度,宽度等;单击工具栏中的按钮’表格绘制器’,可以在弹出的窗口中,使用鼠标拖动窗口,设置窗口布局,再次单击按钮’表格绘制器’,可将绘制窗口暂时关闭,进行其他设置;在窗口下面创建一个模板:选中窗口,右键-创建-模板;为模板输入一个短描述;单击编辑按钮,可以为行绘制列,需要几列就绘制几列;要添加行,点’细节’按钮,插入一行,这里也可以设置列宽;模板下面创建一个文本,用来输出内容;文本的输出选项中,可以设置此文本的内容是在表格的第几行、第几列中输出文本的一般属性中可以输入要输入的内容,如果是变量,可以在工具栏选择按钮,在左下角弹出的对话框中有所有的数据来源,选择所要输出的变量名,拖到文本中的相应位置(变量输出时要放在两个&符号之间).SMARTFORMS操作SAP-ABAP-实用培训教程解析全文共106页,当前为第84页。SMARTFORM选中样式按钮输入一个以Z/Y开头的程序名称,单击创建按钮;进入Style编辑器,选中段落格式-右键-创建节点;在弹出的对话框中输入段落格式名,如P1,点确定;给段落格式输入一个短描述,然后就可以设置段落格式的属性了;在表头数据标准设置选项页的标准设置选择一个已设置好的段落格式作为标准段落格式,该格式在SMARTFORMS中是被默认引用的.即SMARTFORMS的表格属性中选择该样式,则文本中的字体默认使用样式中的标准格式.设置好之后保存并激活,此格式便可在Form中被调用;字符格式的创建方法同段落格式.SMARTFORMS样式SAP-ABAP-实用培训教程解析全文共106页,当前为第85页。SMARTFORM这个Function主要是用来取你要调用的Smartform对应的FunctionModule的名字然后赋值给FM_NAME,因为SMARTFORM对应的FunctionModule名字很长,并且难以记忆;可以通过Callfunction‘SSF_FUNCTION_MODULE_NAME’获取.获取完后同样以CallFunction的方式调用已经设计好的Smartform.Smartforms同FunctionModule一样有输入参数,输出参数,更改参数,表格参数,异常等支持同其它程序的交互.调用SMARTFORMSSAP-ABAP-实用培训教程解析全文共106页,当前为第86页。谢谢!Q&A结语SAP-ABAP-实用培训教程解析全文共106页,当前为第87页。Enhancement
增强(enhancement)的概念其实很广,SAP标准系统之上的所有二次开发,我们都可以理解为增强,做增强的目的就是标准的sap正常的业务系统不能满足实际需求,所以我们在标准的系统基础进行增加不同的功能来达到不同企业的要求,换句话说我们今天开发过程中所有的ADD-ON都可以说是增强开发。但作为开发人员所说的增强主要是标准系统事先预留好的接口,根据不同业务需求,进行开发,我们称为增强,又叫出口。Enhancement介绍SAP-ABAP-实用培训教程解析全文共106页,当前为第88页。Enh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度物业赔偿业主公共设施损坏协议书
- 二零二五年度动车组客车车身定制买卖合同
- 二零二五年度国有企业股权转让合同终止执行书
- 2025年度科技园区土地租赁协议书模板
- 二零二五年度工地施工期间应急预案与响应协议
- 二零二五年度车库买卖合同附新能源汽车充电服务合同
- 2025年度明星参与综艺节目票房对赌协议合同
- 2025年广东年货运从业资格证考试试题题库
- 2025年珠海道路运输从业资格考试下载
- 出国游学夏令营合同
- 2024年六年级语文下册全册单元教材分析
- 延长石油招聘笔试试题
- DB-T 29-22-2024 天津市住宅设计标准
- 2024年赣州职业技术学院单招职业适应性测试题库及答案解析
- DL∕T 5209-2020 高清版 混凝土坝安全监测资料整编规程
- 2024年山东省潍坊市中考数学真题试题(含答案及解析)
- 开票税点自动计算器
- 2024年江苏农牧科技职业学院单招职业适应性测试题库及参考答案
- 医疗器械质量安全风险会商管理制度
- 降低用药错误发生率
- 起重机维护保养记录表
评论
0/150
提交评论