您好,欢迎访问三七文档
ABAP课程编码:由商学院写杨晓文/产品管理部2015年02月xx日课程编码:PFO27课程名称课程目标了解ABAP开发语言掌握ABAP语法及内表应用应用ABAP语法和内表进行程序开发课程编码:PFO27课程名称纲要ONTENTS1ABAP开发平台简介2ABAP开发语言基础3ABAP内表使用方法C4SAP数据库使用课程目录课程编码:PFO27课程名称一、ABAP开发平台简介ABAP/4是英文AdvancedBusinessApplicationProgramming的缩写,是SAPR/3商用系统的应用程序开发工具,也是一套完整的client/server开发环境,技术平台.1.1什么是ABAP/4课程编码:PFO27课程名称一、ABAP开发平台简介1.2ABAP/4特点课程编码:PFO27课程名称一、ABAP开发平台简介1.和SAP紧密结合,SAP进行二次开发的必备工具2.ABAP语言语法简单,但是开发人员要求对企业管理流程熟悉1.2ABAP/4特点课程编码:PFO27课程名称纲要ONTENTS1ABAP开发平台简介2ABAP开发语言基础3ABAP内表使用方法C4SAP数据库使用课程目录课程编码:PFO27课程名称二、ABAP语言开发基础2.1基本数据类型数据类型默认大小有效大小初始值说明C11–65535SPACE文本,字符D88‘00000000’日期F880浮点数I440整型N11-65535‘00...0’数字文本P81-160压缩数T66‘000000’时间X11–65535X‘00’十六进制数课程编码:PFO27课程名称二、ABAP语言开发基础2.2数据定义2.2.1TYPES语句(创建用户定义的基本数据类型和结构化数据类型)语法-TYPESt[length]typedecimals].例子:TYPES:SURNAME(20)TYPEC,PHONE(20)TYPEN,DATELIKESY-DATUM.语法:TYPES:BEGINOFfstring,componenteclaration,..............ENDOFfstring.例子:TYPES:BEGINOFADDRESS,NAMETYPESURNAME,CODE(10)TYPEN,TOWN(20)TYPEC,STR(30)TYPEC,ENDOFADDRESS.课程编码:PFO27课程名称二、ABAP语言开发基础2.2数据定义2.2.2DATA语句(定义局部或全局变量;定义一个结构化的数据对象;定义一个内表)语法-DATA:〈VAR〉LIKE〈DICTIONARYTYPE〉DATA:〈VAR〉TYPE[C,P,I,STRING等]例子:DATA:S1TYPEI,t_pspnrlikeprps-pspnr.DATA:GT_TABLETYPETABLEOFPRPS,GW_TABLETYPEPRPS.课程编码:PFO27课程名称二、ABAP语言开发基础2.2数据定义2.2.3系统定义•这是由系统所定义的专有名词,如•SPACE空白字符串•SY-SUBRC系统执行传回值,0表示成功•SY-UNAMElogon账号•SY-DATUM系统日期•SY-UZEIT系统时间•SY-TCODE目前的transactioncode•SY-COLNO用于当前列•SY-LINNO用于当前行•SY-LISEL选定行内容•SY-LISEL主要从系统字段中检索下列信息:列表的索引、输出窗口中列表位置和光标的位置课程编码:PFO27课程名称二、ABAP语言开发基础2.3基本数据操作2.3.1数据赋值MOVE语句(作用和“=”一样)movedata1todata2.data2=data1.注意:源变量和目标变量的类型要一样或者可以进行类型转换,要是两者不兼容也不能类型转换,则上述语句不能成功执行。ClEAR语句:把变量恢复到初始状态(空值)。课程编码:PFO27课程名称二、ABAP语言开发基础2.3基本数据操作2.3.2数值运算运算用数学表达式的语句用关键字的语句加法p=n+m.ADDnTOm.减法p=m-n.SUBTRACTnFROMm.乘法p=m*n.MULTIPLYmBYn.除法p=m/n.DIVIDEmBYn.整除p=mDIVn.---除法余数p=mMODn.---求幂p=m**n.---课程编码:PFO27课程名称二、ABAP语言开发基础2.3基本数据操作2.3.3逻辑表达式处理日期和时间字段,日期和时间字段数据类型不是数值型。但是可以采用类似于数值型字段的处理方法,处理日期和时间字段。例:DATA:ULTIMOTYPED.ULTIMO=SY-DATUM.ULTIMO+6(2)='01'.ULTIMO=ULTIMO-1.课程编码:PFO27课程名称二、ABAP语言开发基础2.4控制结构2.4.1分支控制IF〈EXPRESSION〉……ELSE……ENDIFCASE〈VAR〉WHEN[VALUE1]……WHEN[VALUE2]……ENDCASE课程编码:PFO27课程名称二、ABAP语言开发基础2.4控制结构2.4.1分支控制DATA:TEXT1VALUE'X',TEXT2VALUE'Y',TEXT3VALUE'Z',STRINGVALUE'A'.CASESTRING.WHENTEXT1.WRITE:/'Stringis',TEXT1.WHENTEXT2.WRITE:/'Stringis',TEXT2.WHENTEXT3.WRITE:/'Stringis',TEXT3.WHENOTHERS.WRITE:/'Stringisnot',TEXT1,TEXT2,TEXT3.ENDCASE.课程编码:PFO27课程名称二、ABAP语言开发基础2.4控制结构2.4.2循环控制2.4.2.1无条件循环DO[NTIMES].STATEMENTBLOCK.ENDDO.2.4.2.2条件循环WHILECONDITION.STATEMENTBLOCK.WNDWHILE.课程编码:PFO27课程名称二、ABAP语言开发基础2.4控制结构2.4.2循环控制例:DO4TIMES.IFSY-INDEX=3.EXIT.ENDIF.WRITESY-INDEX.ENDDO.产生如下输出:12课程编码:PFO27课程名称二、ABAP语言开发基础2.5字符处理连接字符串CONCATENATEc1...cnINTOc[SEPARATEDBYs].DATA:C1(10)VALUE'Sum',C2(3)VALUE'mer',C3(5)VALUE'holi',C4(10)VALUE'day',C5(30),SEP(3)VALUE'-'.CONCATENATEC1C2C3C4INTOC5.WRITEC5.CONCATENATEC1C2C3C4INTOC5SEPARATEDBYSEP.WRITE/C5.该过程的输出如下:SummerholidaySum-mer-holi-day课程编码:PFO27课程名称二、ABAP语言开发基础2.5字符处理除了合并字符串外,还提供如下一些字符串操作:SPLIT拆分SEARCH查找REPLACE替换STRLEN确定长度SHIFT移动字符串内容CONDENSE删除多余的空格OVERLAY用一个字符串覆盖另外一个字符串课程编码:PFO27课程名称课程总结类型和结构定义控制结构字符串操作课程回顾课程编码:PFO27课程名称纲要ONTENTS1ABAP开发平台简介C4SAP数据库使用课程目录3ABAP内表使用方法2ABAP语言开发基础课程编码:PFO27课程名称三、ABAP内表使用方法3.1内表概念在sap中,内表是非常灵活的大批量数据的管理形式,用于在程序进行期间管理一组结构相同的数据。可以象关系型数据表一样进行增删改操作,然而又不同于数据库表,内表仅在程序运行期间才存在数据。程序对内表的行操作不能直接进行,必须通过一种接口来传输,这个接口就是工作区。3.2内表分类标准表:每一行对应一个逻辑索引SY-TABIX,填充内表的时候,可以将数据附加在现有行之后,也可以插入到指定的位置,程序对内表行的寻址操作可通过关键字或索引进行。在对表进行插入删除等操作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。DATAIT_EKKOTYPESTANDARDTABLEOFEKKO(WITHNON-UNIQUEKEYEBELN.).排序表:排序表也有逻辑索引,不同的是排序表总是按其表关键字升序排列后再进行存储,也就是在内存中的位置发生改变。查询时用二分法查询,且UNIQUE或NON-UNIQUE必须制定。DATAIT_EKPOTYPESORTTABLEOFEKPOWITHNON-UNIQUEKEYEBELNEBELP.哈希表:哈希表没有索引,只有关键字,且表内的数值为以KEY为单位进行合计。查询时用哈希算法进行查询,其效率非常高,且UNIQUE必须指定。DATAIT_MAKTTYPEHASHEDTABLEOFMAKTWITHUNIQUEKEYMATNR.课程编码:PFO27课程名称三、ABAP内表使用方法3.3内表定义3.3.1直接定义DATA:BEGINOFGT_LINEOCCURS0,COLUMN1TYPEI,COLUMN2TYPEI,COLUMN3TYPEI,ENDOFGT_LINE.3.3.2通过引用TYPES定义的结构来创建内表TYPES:BEGINOFTY_LINE,COLUMN1TYPEI,COLUMN2TYPEI,COLUMN3TYPEI,ENDOFTY_LINE.TYPESGT_TABTYPETY_LINEOCCURS0.TYPESGT_TABTYPETABLEOFTY_LINE.DATAGT_TABTYPETABLEOFTY_LINE.课程编码:PFO27课程名称三、ABAP内表使用方法3.3内表定义3.3.3引用INCLUDESTRUCTURE来定义DATABEGINOFGT_TABOCCURS0.INCLUDESTRUCTUREMARA.DATAFLGTYPEC.DATAENDOFGT_TAB.或TYPESBEGINOFGT_TABOCCURS0.INCLUDESTRUCTUREMARA.DATAFLGTYPEC.TYPESENDOFGT_TAB.课程编码:PFO27课程名称三、ABAP内表使用方法3.4工作区3.4.1工作区定义内表是按行进行访问的。必须使用某个工作区域作为与表格互相传输数据的接口。课程编码:PFO27课程名称三、ABAP内表使用方法3.4工作区3.4.1工作区应用工作区的应用,跟定义的内表是息息相关,工作区针对带表头行的内表和不带表头行的内表所用的增删改方式是不同的。课程编码:PFO27课程名称三、ABAP内表使用方法3.5内表操作3.5.1插入内表行appendwatoitab“不带表头行appenditab“带表头行或insertwaintoitab[INDEXidx]“不带表头行insertitab[INDEXidx]“带表头行--如果没有指定INDEX,则默认插入到内表最后一行INSERTLINESOFitab1[FROMn1][TOn2]INTO[TABLE]itab2[INDEXidx].--将内表中部分或全部的数据行整体插入另一内表(两个内表必须具有相同的行结构)3.5.2读取内表行readitabintowa[INDEXidx]readitab[INDEXIDX]3.5.3修改内表行modifyitabfromwa[INDEXidx]modifyitab[INDEXidx]课程编码:PFO27课程名称三、ABAP内表使用方法3.5内表操作3.5.4删除内表行deleteitab[IND
本文标题:ABAP基础培训
链接地址:https://www.777doc.com/doc-956599 .html