




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABAP开发培训什么是ABAP?AdvancedBusinessApplicationProgramming高级商业应用程序设计。是SAP专有的开发语言,SAP的应用程序就是用ABAP语言开发的。ABAP开发培训什ABAP开发培训ABAP的开发环境展示ABAP开发培训ABAP的开发环境展示ABAP开发培训SAP的三层架构表示层应用层数据库ABAP开发培训SAP的三层架构表示层应用层数据库ABAP开发培训ABAP程序的种类报表最常见的ABAP程序,展示数据,比如财务的三大报表。接口常见的接口如RFC/BAPI,iDoc,Webservice。这些都是以FunctionModule为基础的。增强对标准程序的增强(改动)。Dialog带交互的程序,SAP标准的事物码很多就是Dialog。ABAP开发培训ABAP程序的种类ABAP开发培训数据类型默认大小有效大小初始值说明
C11-65535SPACE文本,字符(字母数字字符)最常用的格式D88'00000000'日期
(格式:YYYYMMDD)F880浮点数。用于计算,精确范围近似15位十进制数,精确计算用PI440整型(整数)。用于计算计数项目号
N11-65535'00...0'数字文本,不用于计算。会计科目,邮编等P81-160组合数
,指定长度和小数点位数。数量金额距离等,可用于计算T66'000000'时间
(格式:HHMMSS)
X11-65535X'00'十六进制STRING动态长度的字符串,日志文本,描述性文字等XSTRINGASCIIABAP的数据类型-基本数据类型ABAP开发培训数据类型默认大小有效大小初始值说明C1ABAP开发培训用户定义的基本数据类型完全是以预定义的基本数据类型为基础的。使用TYPES语句定义自己的基本数据类型。TYPES:NUMBERTYPEI,LENGTHTYPEPDECIMALS2,CODE(3)TYPEC.DATA:NO_FLIGHTSTYPENUMBER,NO_PASSENGERSTYPENUMBER,DISTANCETYPELENGTH,HEIGHTTYPELENGTH,CITY_CODETYPECODE,COUNTRY_CODETYPECODE.数据类型可以在程序内部定义,但只能程序内部用;也可以在程序外部定义,这样全局都可以使用(事物码SE11)。ABAP的数据类型-用户定义的基本数据类型ABAP开发培训用户定义的基本数据类型完全是以预定义的基本数ABAP开发培训两种结构化数据类型:结构(Structure)和内表(InternalTable)。Structure:本质上讲是一个由多个字段组成的字段串,在程序中只能存储一条数据,如果不好抽象化,可以理解为Excel的一行。InternalTable:多行多列,可以理解为一个Structure纵向拉长。内表分3种,标准表,排序表,哈希表。结构和内表可以在程序内部定义,但只能程序内部用;也可以在程序外部定义,这样全局都可以使用(事物码SE11)。ABAP的数据类型-结构化数据类型ABAP开发培训ABAP的数据类型-结构化数据类型ABAP开发培训TYPES语句定义类型,DATA语句声明变量,如刚才用到的例子:TYPES:NUMBERTYPEI,LENGTHTYPEPDECIMALS2,CODE(3)TYPEC.DATA:NO_FLIGHTSTYPENUMBER,DISTANCETYPELENGTH,CITY_CODETYPECODE,CONSTANTS语句定义常量:CONSTANTSPITYPEPDECIMALS5VALUE‘3.14159’.Hint:变量的命名参照开发规范。ABAP程序的数据定义ABAP开发培训TYPES语句定义类型,DATA语句声明变量ABAP开发培训实际应用中,更多是直接用LIKE语句定义变量。DATA:ZMATNRLIKEMARA-MATNR,“物料号ZMTARTLIKEMARA-MTART.“物料类型或者DATAZMATNRLIKEMARA-MATNR.DATAZMTARTLIKEMARA-MTART.两者的意义完全相同。DATA[变量名]LIKE[表-字段名]([结构-字段名])DATA[变量名]LIKE[系统标准变量]ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:结构DATA:BEGINOFGS_MARC,MATNRLIKEMARC-MATNR,WERKSLIKEMARC-WERKS,PSTATLIKEMARC-PSTAT,BWTTYLIKEMARC-BWTTY,EKGRPLIKEMARC-EKGRP,ENDOFGS_MARC.这是一个5个字段的结构。G代表global,S代表Structure.结构也可以用SE11事物码在系统里定义,所有程序都可以使用,但命名必须以Z开头。Hint:结构变量的命名有规则,参见开发规范ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:内表DATA:BEGINOFGS_MARC,MATNRLIKEMARC-MATNR,WERKSLIKEMARC-WERKS,PSTATLIKEMARC-PSTAT,BWTTYLIKEMARC-BWTTY,EKGRPLIKEMARC-EKGRP,ENDOFGS_MARC.DATA:GT_MARCLIKESTANDARDTABLEOFGS_MARC.GT_MARC就是一个标准内表。Hint:结构变量的命名有规则,参见开发规范ABAP程序的数据定义ABAP开发培训结构变量的定义:内表ABAP程序的数据定义ABAP开发培训结构变量的定义:结构和内表的多种定义方式鉴于SAP有大量标准的数据类型供参考,结构变量的命名有多种方式,例如:(MARC是系统标准表,MAAPV是标准结构,自建结构和自建表同例)结构:DATAGS_MARCLIKEMARC.内表:DATAGT_MARCLIKETABLEOFMARC.结构:DATAGS_MAAPVLIKEMAAPV.内表:DATAGT_MAAPVLIKETABLEOFMAAPV.结构:DATAGS_MARC2LIKELINEOFGT_MARC.内表:DATAGT_MAAPV2LIKETABLEOFGS_MAAPV.Hint:结构变量的命名有规则,参见开发规范ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:内表和工作区。工作区是相对于内表而言的,在操作内表时,系统需要先把数据从内表取出来存放到对应的工作区,再进行相关的操作。通常情况下,定义一个内表的同时需要定义一个工作区。工作区通过结构定义。DATAGS_MARCLIKEMARC.DATAGT_MARCLIKETABLEOFMARC.结构GS_MARC就可以作为内表GT_MARC的工作区。其他定义方式同此例。ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:表头。DATAGT_MARCLIKEMARCOCCURS0WITHHEADERLINE.此语句会声明一个带有同名表头的内表,表头可作为工作区。这种命名方式会节省一些代码量,但不推荐使用,容易混乱。还是推荐使用一个内表+一个工作区的方式。有些比较旧的程序用的是这种带表头的内表,在这些程序里,以GT_MARC为例:GT_MARC表示工作区,GT_MARC-MATNR表示字段,GT_MARC[]表示整个内表。ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训赋值:DATAVAR1(3)TYPECVALUE‘abc’.DATAVAR2(3)TYPEC.MOVEVAR1TOVAR2.VAR2=VAR1.VAR2=‘abc’.以上3条语句意义返回结果相同。赋值时注意数据格式,要求数据格式相同,或者两边存在转换规则,否则会报错。基本ABAP语句ABAP开发培训赋值:基本ABAP语句ABAP开发培训运算:•二元操作符包括:+:加法-:减法*:乘法/:除法**:乘方DIV:整除忽略余数MOD:取余数•需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少用一个空格分开。(1+2)*3应该写成(1+2)*3基本ABAP语句ABAP开发培训运算:基本ABAP语句ABAP开发培训条件:基本ABAP语句IFA>B.…ELSE.…ENDIF.IF.…ELSEIF.…ELSEIF.……ENDIF.CASE
var.
WHEN
a.…
WHEN
b.…
WHEN
OTHERS.…
ENDCASE.ABAP开发培训条件:基本ABAP语句IFA>B.CAABAP开发培训循环:ABAP的循环分四种:DO.WHILE.……ENDDO.ENDWHILE.LOOPSELECT.……ENDLOOP.ENDSELECT.基本ABAP语句ABAP开发培训循环:基本ABAP语句ABAP开发培训循环:DO…ENDDO.DO和ENDDO之间的语句块会无限运行,直到遇到条件控制的跳出循环语句如EXIT等。在DO语句中还可以指定最多运行的次数,否则的话,将会出现无限循环无限循环。WHILE…ENDWHILE.在WHILE和ENDWHILE之间的语句块会一直执行,直到不再满足WHILE后面所指定的条件。WHILE循环用的不多。基本ABAP语句ABAP开发培训循环:基本ABAP语句ABAP开发培训循环:LOOP…ENDLOOP.循环读取内表的数据到工作区,供程序处理。实际应用最多的循环语句。一般情况下ABAP推荐把数据从数据库(硬盘)读到内表(内存),几乎有程序就有内表,有内表就有LOOP循环。SELECT…ENDSELECT.循环读数据库。影响效率,不建议使用,建议用FORALLENTRIESIN语句一次性把数据读入内表。基本ABAP语句ABAP开发培训循环:基本ABAP语句ABAP开发培训消息:MESSAGE语句向程序的用户发送对话消息,使用MESSAGE语句必须指定三位数的消息号和消息类。MESSAGEE001(ZFI001)。事物码SE91维护消息类和消息。也可以在程序里写硬消息:MESSAGE‘程序运行错误’TYPE‘E’.但不推荐使用这种不规范的方式。基本ABAP语句ABAP开发培训消息:基本ABAP语句ABAP开发培训操作结构和内表:结构访问结构里的字段。GS_MARC-MATNR.结构里最常用的语句是MOVE-CORRESPONDING语句。把一个结构的内容同时全部拷贝到另一个结构中。只有源结构和目标结构中有相同名称的组件才会拷贝,而目标结构中名称无法对应的组件保持不变。需要注意,如果两个结构中同名的组件有不同定义的话,拷贝时可能会出错。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表访问单条记录–一般来说,需要一个与内表行结构相同相同的工作区来处理单条记录。–APPEND:往内表的最后追加一条记录,只能用于标准表。–INSERT:向内表插入一条记录,在标准表里跟APPEND的效果一样,在排序表里就插入到键指定的位置,在哈希表里则根据哈希运算法则插入到指定位置。–READTABLE:把表的指定行拷贝到结构中。–MODIFY:使用结构的内容重写表的指定行。–DELETE:删除表的指定行。
COLLECT:把结构中的内容累加到内表具有相同键的行上,这时,只有非键字段才执行累加,并且只有非键字段都是数值的时候才能执行这个语句。一般内表里多个字段需要同时汇总时会用到COLLECT语句,比如财务的一些报表。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表访问多条记录(结果集)处理结果集合–LOOP…ENDLOOP:LOOP语句一条一条的读出内表的数据行,写入INTO字句指定的结构中,结构的内容可用于输出,或者修改后写回内表。–DELETE:删除满足条件的所有行。–INSERT:把一个内表中的多行拷贝到另一个内表中。–APPEND:把一个内表中的多行追加到另一个标准表中。–想修改内表的某一行只能先把那行读到工作区,修改工作区后再写回内表,而不能以数组的方法访问到内表的指定一行,这是跟其他语言很不一样的地方。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表使用索引读表(标准表和排序表)–LOOP中用FROM-TO子句可以读指定索引段的记录。–READ中用INDEX子句可以读指定索引的一条记录。使用条件读表–LOOP中用WHERE子句可以读满足一定条件的记录。–READ中用WithKEY子句可以读满足主键条件的记录。内表排序–标准表和排序表可以使用SORT语句对指定字段进行排序,如果没有指定升序或者降序就默认使用升序。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表–REFRESH:清除整个内表的内容,释放部分内存,保留一些以备后续操作。–CLEAR:对于没有表头的内表,跟REFRESH一样,清除内表的内容。对于有表头的内表,则只初始化表头。–FREE:清除整个内表的内容,释放所有内存。在程序里,当内表以后不再使用的时候可以使用FREE,这样能尽量多释放一些不用的内存。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训数据获取SAP后台可以连接多种数据库,ORACLE,DB2,SQLSERVER,SYBASE…
每种数据库都有自己特点的SQL语法,不可能在开发时根据后台数据库的种类选择SQL语法,所以SAP用的是无关SQL标准的开放SQL,执行时由SAP负责转化成各种数据库能运行的SQL。数据库操作ABAP开发培训数据库操作ABAP开发培训数据获取使用开放SQL的SELECT语句来执行查询,它包含几个基本的组成部分。•基本语法:SELECT<fields>FROM<table>INTO<target>[WHERE<condition>]•SELECT后面的块说明了需要读表的哪些字段。•FROM后面的块说明了需要读哪个数据源(数据源可以是表或者视图)。•INTO后面的块说明了读出的字段要放到哪个目标数据对象中(结构或内表)。•WHERE后面的块说明了读数据的基本条件,可选。SELECTMATNRWERKSPSTATBWTTYEKGRPINTOTABLEGT_MARCFROMMARCWHEREWERKS=‘1000’.数据库操作ABAP开发培训数据库操作ABAP开发培训数据获取获取单条数据用SELECTSINGLE语句。如果目标结构的数据结构与查询字段的顺序不一致,或者使用*这样的通配符来指定查询字段,就需要CORRESPONDINGFIELDSOF子句,它会自动在源字段和目标字段之间找名称相同的项自动对应填入。这是常用的方式。SELECTSINGLE*INTOCORRESPODINGFIELDSOFGS_MARCFROMMARCWHEREMATNR=‘000000001’ANDWERKS=‘1000’.SELECTSINGLE语句是在数据库表所有的KEY键都被用到的时候使用的,执行效率很高,可以用*。数据库操作ABAP开发培训数据库操作ABAP开发培训一个常见的报表的组成选择屏幕。输入数据的筛选条件。
数据定义。定义程序中用到的变量和常量,包括单个变量、结构、内表等。
数据获取。一般是通过一定的条件从数据库读取出来,或者上传的TXT/EXCEL文档。
数据处理。按照FUNCTIONSPEC的要求,对获得的数据进行处理(增\删\改\BAPI)。
展示。输出处理好的数据。报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-屏幕元素定义PARAMETERS:
P_WERKS
LIKE
MARD-WERKS
OBLIGATORY.“工厂
SELECT-OPTIONS:
S_MATNR
FOR
MARD-MATNR,“物料
S_LGORT
FOR
MARD-LGORT,“库存地点
S_LFGJA
FOR
MARD-LFGJA,“年度
S_LFMON
FOR
MARD-LFMON.“月度报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-屏幕效果报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-数据定义TABLES:
MARD,MAKT.
DATA:
BEGIN
OF
GS_MARD,
MATNR
LIKE
MARD-MATNR,
WERKS
LIKE
MARD-WERKS,
LGORT
LIKE
MARD-LGORT,
PSTAT
LIKE
MARD-PSTAT,
LFGJA
LIKE
MARD-LFGJA,
LFMON
LIKE
MARD-LFMON,
LABST
LIKE
MARD-LABST,
MAKTX
LIKE
MAKT-MAKTX,
END
OF
GS_MARD.
DATA
GT_MARD
LIKE
TABLE
OF
GS_MARD.
报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-屏幕输出相关数据定义TYPE-POOLS:
SLIS.
**ALV
变量定义.
DATA:
WS_FIELDCAT
TYPE
SLIS_T_FIELDCAT_ALV
WITH
HEADER
LINE,
I_FIELDCAT1
TYPE
SLIS_T_FIELDCAT_ALV
WITH
HEADER
LINE.
DATA:
WS_FIELDGROUPS_TAB
TYPE
SLIS_T_SP_GROUP_ALV,
WS_LAYOUT
TYPE
SLIS_LAYOUT_ALV,
WS_SORTFIELDS_TAB
TYPE
SLIS_T_SORTINFO_ALV
WITH
HEADER
LINE,
WS_EVENTS
TYPE
SLIS_T_EVENT.
DATA:
V_REPID
LIKE
SY-REPID.
报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训数据获取和处理
SELECT
A~MATNR
A~WERKS
A~LGORT
A~PSTAT
A~LFGJA
A~LFMON
A~LABST
B~MAKTX
INTO
TABLE
GT_MARD
FROM
MARD
AS
A
INNER
JOIN
MAKT
AS
B
ON
A~MATNR
=
B~MATNR
WHERE
B~SPRAS
=
'1'
AND
A~WERKS
=
P_WERKS
AND
A~MATNR
IN
S_MATNR
AND
A~LGORT
IN
S_LGORT
AND
A~LFGJA
IN
S_LFGJA
AND
A~LFMON
IN
S_LFMON.
DELETE
GT_MARD
WHERE
MAKTX
IS
INITIAL.报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训输出-构建输出元素
WS_FIELDCAT-TABNAME
=
‘GT_MARD’.
WS_FIELDCAT-FIELDNAME
=
‘MATNR’.
“字段名
WS_FIELDCAT-SELTEXT_L
=
‘物料’.
”字段文本
WS_FIELDCAT-COL_POS
=
1.
“输出位置
WS_FIELDCAT-OUTPUTLEN
=
18.
”输出长度
WS_FIELDCAT-DATATYPE
=
‘CHAR’.
“字段类型
APPEND
WS_FIELDCAT.
CLEAR
WS_FIELDCAT.相当于把内表的数据再附加一些展示时用的属性。
报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训输出-展示效果设置
WS_LAYOUT-ZEBRA
=
'X'.
WS_LAYOUT-COLWIDTH_OPTIMIZE
=
'X'.ALV的LAYOUT有几十个参数
,这里只用了最常用的2个:斑马纹,自适应列宽。报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训输出-FM
CALL
FUNCTION
'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM
=
V_REPID
IS_LAYOUT
=
WS_LAYOUT
IT_FIELDCAT
=
WS_FIELDCAT[]
*
IT_SPECIAL_GROUPS
=
WS_FIELDGROUPS_TAB[]
*
IT_SORT
=
WS_SORTFIELDS_TAB[]
*
it_events
=
ws_events[]
*
IT_EVENTS
=
GT_EVENTCAT
I_DEFAULT
=
'X'
I_SAVE
=
'A'
*
i_grid_title
=
title
*
I_CALLBACK_PF_STATUS_SET
=
'PF_STATUS_SET'
*
I_CALLBACK_USER_COMMAND
=
'MYCOMMAND'
*
I_CALLBACK_USER_COMMAND
=
'USER_COMMAND'
TABLES
T_OUTTAB
=
GT_MARD
EXCEPTIONS
PROGRAM_ERROR
=
1
OTHERS
=
2.报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训事件驱动INITIALIZATION初始化,设定屏幕元素默认值ATSELECTION-SCREEN检查屏幕输入START-OF-SELECTION从数据库取数操作END-OF-SELECTION此事件中进行输出清单操作报表程序介绍ABAP开发培训报表程序介绍演讲完毕,谢谢观看!演讲完毕,谢谢观看!ABAP开发培训什么是ABAP?AdvancedBusinessApplicationProgramming高级商业应用程序设计。是SAP专有的开发语言,SAP的应用程序就是用ABAP语言开发的。ABAP开发培训什ABAP开发培训ABAP的开发环境展示ABAP开发培训ABAP的开发环境展示ABAP开发培训SAP的三层架构表示层应用层数据库ABAP开发培训SAP的三层架构表示层应用层数据库ABAP开发培训ABAP程序的种类报表最常见的ABAP程序,展示数据,比如财务的三大报表。接口常见的接口如RFC/BAPI,iDoc,Webservice。这些都是以FunctionModule为基础的。增强对标准程序的增强(改动)。Dialog带交互的程序,SAP标准的事物码很多就是Dialog。ABAP开发培训ABAP程序的种类ABAP开发培训数据类型默认大小有效大小初始值说明
C11-65535SPACE文本,字符(字母数字字符)最常用的格式D88'00000000'日期
(格式:YYYYMMDD)F880浮点数。用于计算,精确范围近似15位十进制数,精确计算用PI440整型(整数)。用于计算计数项目号
N11-65535'00...0'数字文本,不用于计算。会计科目,邮编等P81-160组合数
,指定长度和小数点位数。数量金额距离等,可用于计算T66'000000'时间
(格式:HHMMSS)
X11-65535X'00'十六进制STRING动态长度的字符串,日志文本,描述性文字等XSTRINGASCIIABAP的数据类型-基本数据类型ABAP开发培训数据类型默认大小有效大小初始值说明C1ABAP开发培训用户定义的基本数据类型完全是以预定义的基本数据类型为基础的。使用TYPES语句定义自己的基本数据类型。TYPES:NUMBERTYPEI,LENGTHTYPEPDECIMALS2,CODE(3)TYPEC.DATA:NO_FLIGHTSTYPENUMBER,NO_PASSENGERSTYPENUMBER,DISTANCETYPELENGTH,HEIGHTTYPELENGTH,CITY_CODETYPECODE,COUNTRY_CODETYPECODE.数据类型可以在程序内部定义,但只能程序内部用;也可以在程序外部定义,这样全局都可以使用(事物码SE11)。ABAP的数据类型-用户定义的基本数据类型ABAP开发培训用户定义的基本数据类型完全是以预定义的基本数ABAP开发培训两种结构化数据类型:结构(Structure)和内表(InternalTable)。Structure:本质上讲是一个由多个字段组成的字段串,在程序中只能存储一条数据,如果不好抽象化,可以理解为Excel的一行。InternalTable:多行多列,可以理解为一个Structure纵向拉长。内表分3种,标准表,排序表,哈希表。结构和内表可以在程序内部定义,但只能程序内部用;也可以在程序外部定义,这样全局都可以使用(事物码SE11)。ABAP的数据类型-结构化数据类型ABAP开发培训ABAP的数据类型-结构化数据类型ABAP开发培训TYPES语句定义类型,DATA语句声明变量,如刚才用到的例子:TYPES:NUMBERTYPEI,LENGTHTYPEPDECIMALS2,CODE(3)TYPEC.DATA:NO_FLIGHTSTYPENUMBER,DISTANCETYPELENGTH,CITY_CODETYPECODE,CONSTANTS语句定义常量:CONSTANTSPITYPEPDECIMALS5VALUE‘3.14159’.Hint:变量的命名参照开发规范。ABAP程序的数据定义ABAP开发培训TYPES语句定义类型,DATA语句声明变量ABAP开发培训实际应用中,更多是直接用LIKE语句定义变量。DATA:ZMATNRLIKEMARA-MATNR,“物料号ZMTARTLIKEMARA-MTART.“物料类型或者DATAZMATNRLIKEMARA-MATNR.DATAZMTARTLIKEMARA-MTART.两者的意义完全相同。DATA[变量名]LIKE[表-字段名]([结构-字段名])DATA[变量名]LIKE[系统标准变量]ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:结构DATA:BEGINOFGS_MARC,MATNRLIKEMARC-MATNR,WERKSLIKEMARC-WERKS,PSTATLIKEMARC-PSTAT,BWTTYLIKEMARC-BWTTY,EKGRPLIKEMARC-EKGRP,ENDOFGS_MARC.这是一个5个字段的结构。G代表global,S代表Structure.结构也可以用SE11事物码在系统里定义,所有程序都可以使用,但命名必须以Z开头。Hint:结构变量的命名有规则,参见开发规范ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:内表DATA:BEGINOFGS_MARC,MATNRLIKEMARC-MATNR,WERKSLIKEMARC-WERKS,PSTATLIKEMARC-PSTAT,BWTTYLIKEMARC-BWTTY,EKGRPLIKEMARC-EKGRP,ENDOFGS_MARC.DATA:GT_MARCLIKESTANDARDTABLEOFGS_MARC.GT_MARC就是一个标准内表。Hint:结构变量的命名有规则,参见开发规范ABAP程序的数据定义ABAP开发培训结构变量的定义:内表ABAP程序的数据定义ABAP开发培训结构变量的定义:结构和内表的多种定义方式鉴于SAP有大量标准的数据类型供参考,结构变量的命名有多种方式,例如:(MARC是系统标准表,MAAPV是标准结构,自建结构和自建表同例)结构:DATAGS_MARCLIKEMARC.内表:DATAGT_MARCLIKETABLEOFMARC.结构:DATAGS_MAAPVLIKEMAAPV.内表:DATAGT_MAAPVLIKETABLEOFMAAPV.结构:DATAGS_MARC2LIKELINEOFGT_MARC.内表:DATAGT_MAAPV2LIKETABLEOFGS_MAAPV.Hint:结构变量的命名有规则,参见开发规范ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:内表和工作区。工作区是相对于内表而言的,在操作内表时,系统需要先把数据从内表取出来存放到对应的工作区,再进行相关的操作。通常情况下,定义一个内表的同时需要定义一个工作区。工作区通过结构定义。DATAGS_MARCLIKEMARC.DATAGT_MARCLIKETABLEOFMARC.结构GS_MARC就可以作为内表GT_MARC的工作区。其他定义方式同此例。ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训结构变量的定义:表头。DATAGT_MARCLIKEMARCOCCURS0WITHHEADERLINE.此语句会声明一个带有同名表头的内表,表头可作为工作区。这种命名方式会节省一些代码量,但不推荐使用,容易混乱。还是推荐使用一个内表+一个工作区的方式。有些比较旧的程序用的是这种带表头的内表,在这些程序里,以GT_MARC为例:GT_MARC表示工作区,GT_MARC-MATNR表示字段,GT_MARC[]表示整个内表。ABAP程序的数据定义ABAP开发培训ABAP程序的数据定义ABAP开发培训赋值:DATAVAR1(3)TYPECVALUE‘abc’.DATAVAR2(3)TYPEC.MOVEVAR1TOVAR2.VAR2=VAR1.VAR2=‘abc’.以上3条语句意义返回结果相同。赋值时注意数据格式,要求数据格式相同,或者两边存在转换规则,否则会报错。基本ABAP语句ABAP开发培训赋值:基本ABAP语句ABAP开发培训运算:•二元操作符包括:+:加法-:减法*:乘法/:除法**:乘方DIV:整除忽略余数MOD:取余数•需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少用一个空格分开。(1+2)*3应该写成(1+2)*3基本ABAP语句ABAP开发培训运算:基本ABAP语句ABAP开发培训条件:基本ABAP语句IFA>B.…ELSE.…ENDIF.IF.…ELSEIF.…ELSEIF.……ENDIF.CASE
var.
WHEN
a.…
WHEN
b.…
WHEN
OTHERS.…
ENDCASE.ABAP开发培训条件:基本ABAP语句IFA>B.CAABAP开发培训循环:ABAP的循环分四种:DO.WHILE.……ENDDO.ENDWHILE.LOOPSELECT.……ENDLOOP.ENDSELECT.基本ABAP语句ABAP开发培训循环:基本ABAP语句ABAP开发培训循环:DO…ENDDO.DO和ENDDO之间的语句块会无限运行,直到遇到条件控制的跳出循环语句如EXIT等。在DO语句中还可以指定最多运行的次数,否则的话,将会出现无限循环无限循环。WHILE…ENDWHILE.在WHILE和ENDWHILE之间的语句块会一直执行,直到不再满足WHILE后面所指定的条件。WHILE循环用的不多。基本ABAP语句ABAP开发培训循环:基本ABAP语句ABAP开发培训循环:LOOP…ENDLOOP.循环读取内表的数据到工作区,供程序处理。实际应用最多的循环语句。一般情况下ABAP推荐把数据从数据库(硬盘)读到内表(内存),几乎有程序就有内表,有内表就有LOOP循环。SELECT…ENDSELECT.循环读数据库。影响效率,不建议使用,建议用FORALLENTRIESIN语句一次性把数据读入内表。基本ABAP语句ABAP开发培训循环:基本ABAP语句ABAP开发培训消息:MESSAGE语句向程序的用户发送对话消息,使用MESSAGE语句必须指定三位数的消息号和消息类。MESSAGEE001(ZFI001)。事物码SE91维护消息类和消息。也可以在程序里写硬消息:MESSAGE‘程序运行错误’TYPE‘E’.但不推荐使用这种不规范的方式。基本ABAP语句ABAP开发培训消息:基本ABAP语句ABAP开发培训操作结构和内表:结构访问结构里的字段。GS_MARC-MATNR.结构里最常用的语句是MOVE-CORRESPONDING语句。把一个结构的内容同时全部拷贝到另一个结构中。只有源结构和目标结构中有相同名称的组件才会拷贝,而目标结构中名称无法对应的组件保持不变。需要注意,如果两个结构中同名的组件有不同定义的话,拷贝时可能会出错。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表访问单条记录–一般来说,需要一个与内表行结构相同相同的工作区来处理单条记录。–APPEND:往内表的最后追加一条记录,只能用于标准表。–INSERT:向内表插入一条记录,在标准表里跟APPEND的效果一样,在排序表里就插入到键指定的位置,在哈希表里则根据哈希运算法则插入到指定位置。–READTABLE:把表的指定行拷贝到结构中。–MODIFY:使用结构的内容重写表的指定行。–DELETE:删除表的指定行。
COLLECT:把结构中的内容累加到内表具有相同键的行上,这时,只有非键字段才执行累加,并且只有非键字段都是数值的时候才能执行这个语句。一般内表里多个字段需要同时汇总时会用到COLLECT语句,比如财务的一些报表。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表访问多条记录(结果集)处理结果集合–LOOP…ENDLOOP:LOOP语句一条一条的读出内表的数据行,写入INTO字句指定的结构中,结构的内容可用于输出,或者修改后写回内表。–DELETE:删除满足条件的所有行。–INSERT:把一个内表中的多行拷贝到另一个内表中。–APPEND:把一个内表中的多行追加到另一个标准表中。–想修改内表的某一行只能先把那行读到工作区,修改工作区后再写回内表,而不能以数组的方法访问到内表的指定一行,这是跟其他语言很不一样的地方。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表使用索引读表(标准表和排序表)–LOOP中用FROM-TO子句可以读指定索引段的记录。–READ中用INDEX子句可以读指定索引的一条记录。使用条件读表–LOOP中用WHERE子句可以读满足一定条件的记录。–READ中用WithKEY子句可以读满足主键条件的记录。内表排序–标准表和排序表可以使用SORT语句对指定字段进行排序,如果没有指定升序或者降序就默认使用升序。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训操作结构和内表:内表–REFRESH:清除整个内表的内容,释放部分内存,保留一些以备后续操作。–CLEAR:对于没有表头的内表,跟REFRESH一样,清除内表的内容。对于有表头的内表,则只初始化表头。–FREE:清除整个内表的内容,释放所有内存。在程序里,当内表以后不再使用的时候可以使用FREE,这样能尽量多释放一些不用的内存。基本ABAP语句ABAP开发培训操作结构和内表:基本ABAP语句ABAP开发培训数据获取SAP后台可以连接多种数据库,ORACLE,DB2,SQLSERVER,SYBASE…
每种数据库都有自己特点的SQL语法,不可能在开发时根据后台数据库的种类选择SQL语法,所以SAP用的是无关SQL标准的开放SQL,执行时由SAP负责转化成各种数据库能运行的SQL。数据库操作ABAP开发培训数据库操作ABAP开发培训数据获取使用开放SQL的SELECT语句来执行查询,它包含几个基本的组成部分。•基本语法:SELECT<fields>FROM<table>INTO<target>[WHERE<condition>]•SELECT后面的块说明了需要读表的哪些字段。•FROM后面的块说明了需要读哪个数据源(数据源可以是表或者视图)。•INTO后面的块说明了读出的字段要放到哪个目标数据对象中(结构或内表)。•WHERE后面的块说明了读数据的基本条件,可选。SELECTMATNRWERKSPSTATBWTTYEKGRPINTOTABLEGT_MARCFROMMARCWHEREWERKS=‘1000’.数据库操作ABAP开发培训数据库操作ABAP开发培训数据获取获取单条数据用SELECTSINGLE语句。如果目标结构的数据结构与查询字段的顺序不一致,或者使用*这样的通配符来指定查询字段,就需要CORRESPONDINGFIELDSOF子句,它会自动在源字段和目标字段之间找名称相同的项自动对应填入。这是常用的方式。SELECTSINGLE*INTOCORRESPODINGFIELDSOFGS_MARCFROMMARCWHEREMATNR=‘000000001’ANDWERKS=‘1000’.SELECTSINGLE语句是在数据库表所有的KEY键都被用到的时候使用的,执行效率很高,可以用*。数据库操作ABAP开发培训数据库操作ABAP开发培训一个常见的报表的组成选择屏幕。输入数据的筛选条件。
数据定义。定义程序中用到的变量和常量,包括单个变量、结构、内表等。
数据获取。一般是通过一定的条件从数据库读取出来,或者上传的TXT/EXCEL文档。
数据处理。按照FUNCTIONSPEC的要求,对获得的数据进行处理(增\删\改\BAPI)。
展示。输出处理好的数据。报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-屏幕元素定义PARAMETERS:
P_WERKS
LIKE
MARD-WERKS
OBLIGATORY.“工厂
SELECT-OPTIONS:
S_MATNR
FOR
MARD-MATNR,“物料
S_LGORT
FOR
MARD-LGORT,“库存地点
S_LFGJA
FOR
MARD-LFGJA,“年度
S_LFMON
FOR
MARD-LFMON.“月度报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-屏幕效果报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-数据定义TABLES:
MARD,MAKT.
DATA:
BEGIN
OF
GS_MARD,
MATNR
LIKE
MARD-MATNR,
WERKS
LIKE
MARD-WERKS,
LGORT
LIKE
MARD-LGORT,
PSTAT
LIKE
MARD-PSTAT,
LFGJA
LIKE
MARD-LFGJA,
LFMON
LIKE
MARD-LFMON,
LABST
LIKE
MARD-LABST,
MAKTX
LIKE
MAKT-MAKTX,
END
OF
GS_MARD.
DATA
GT_MARD
LIKE
TABLE
OF
GS_MARD.
报表程序介绍ABAP开发培训报表程序介绍ABAP开发培训选择屏幕-屏幕输出相关数据定义TYPE-POOLS:
SLIS.
**ALV
变量定义.
DATA:
WS_FIELDCAT
TYPE
SLIS_T_FIELDCAT_ALV
WITH
HEADER
LINE,
I_FIELDCAT1
TYPE
SLIS_T_FIELDCAT_AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年特许金融分析师考试考试账户设置试题及答案
- 2024年特许金融分析师考试中的伦理问题探讨及试题及答案
- CFA备考常见问题解答试题及答案
- 减脂餐厅创业项目
- 投资策略的动态调整方法试题及答案
- 攻克考试难点的CFA试题及答案技巧
- 领导干部安全生产课件
- 预防网络金融诈骗
- 口腔专科护理操作流程
- 全球经济一体化的趋势与挑战试题及答案
- 荒岛生存的智慧与成长《鲁滨逊漂流记》整本书阅读后交流课(课件)-语文六年级下册
- 中考语文阅读句子批注-修辞赏析(含答案)
- DBJ04T 467-2023 建筑防烟排烟系统技术标准
- 基于整本书阅读的小学语文阅读教学策略研究获奖科研报告
- 生物反馈疗法在盆底失弛缓型便秘中的研究进展
- 超声引导下PICC置管术的临床应用培训课件
- 2025年泰州职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 粮油烘干中心项目可行性研究报告申请报告
- 定制家具安装手册培训
- 大型企业流程管理与信息化诊断规划方案
- 2025年春新北师大版数学一年级下册课件 综合实践 设计教室装饰图
评论
0/150
提交评论