版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SAPECC6.0-ABAP2023年7月27日SAPECC6.0一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子最简单的Report(1)一个经典的入门例子通常在程序执行前,需要做以下三件事:1、对所写的代码进行语法检查,避免明显的语法错误。2、保存程序;在程序激活过程中,SAP也会自动对程序进行保存3、激活程序;在SAP中没有激活的程序是不能进行最终使用的。上例最终运行结果如下:
最简单的Report(1)一个经典的入门例子通常在程序执行前最简单的Report(2)report
在ABAP程序中,以report或者program指令开头的程序才能直接运行;其他指令的程序均不可以直接运行。Report程序里,程序的属性类型那需选择“可执行程序”最简单的Report(2)report Report程序里,一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子基本数据类型在ABAP中,基本的数据类型有八种字符型:C(文本字符)N(数字文本字符)T(时间类型)D(日期类型)数字类型:I(整数类型)F(浮点类型)P(压缩数)X(十六进制)另,ABAP还提供对字符串的支持,数据类型为string。基本数据类型在ABAP中,基本的数据类型有八种基本数据类型列表数据类型默认大小有效大小初始值说明示例C11–65535SPACE文本字符(串)‘NAME’N11–65535‘00...0’数字文本‘0123’T66‘000000’时间(HHMMSS)‘193000’D88‘00000000’日期(YYYYMMDD)‘20080808’I440整型(整数)99F880浮点数5E+4P810压缩数99.99X11–65535X‘0’十六进制‘3A’string1无限定SPACE字符串(长度可变)‘AString’基本数据类型列表数据类型默认大小有效大小初始值说明示例C11定义变量(1)定义字段
DATACOLTYPEC.定义行(工作区)
DATA:BEGIN
OFWA,COLTYPEC,
END
OFWA.定义内表
DATA:BEGINOFITABOCCURS0,COLTYPEC,
ENDOFITAB.定义变量(1)定义字段定义变量(2)ABAP中对变量的定义有两种方式:DATA根据内置类型声明基本类型数据对象。TYPES根据内置类型自定义基本数据类型。定义变量(2)ABAP中对变量的定义有两种方式:定义变量(3)TYPES
num
TYPE
i.DATA
num1
TYPE
num.定义变量(3)TYPES
num
TYPE
i.算术运算ABAP中,基本的算术运算有这么几种。(+、-、*、/、DIV、MOD、**)前四种运算意义明确,不再做过多累述。现在,来看看后三种运算。
DIV
整除 除法时,如果除不尽,只取商的整数部分。
MOD
取余 除法时,如果除不尽,只取商的余数部分。
** 乘方 *是做乘法运算;**则是乘方(即幂运算)。例:
6DIV4=1;6MOD4=2.1*2=2;
1**2=1.算术运算ABAP中,基本的算术运算有这么几种。(+、-、*、字符数据处理(1)1)
concatenate
将两个字符串合并成一个字符串。2)split
将一个字符串拆分成多个字符串。3)search
在字符内查找指定字符串4)replace
用其他字符串在字符内替换指定字符串。5)strlen
用于确定字符实际长度。6)condense
用于清除字符内多余的空格。
PS:字符串string也是字符的一种。和其他字符类型的区别在于,string在定义时,不需要指定字符长度,其字符长度会随着存放数据长度的增加自动扩展。字符数据处理(1)1)concatenatePS:字符串字符数据处理(2)字符数据处理(2)结构语句分支控制IF<condition1>……ELSEIF<condition2>……ELSE……ENDIFCASEfWHENf1……WHENf2……ENDCASE循环控制DO[nTIMES]……ENDDOWHILE<condition>……ENDWHILE结构语句分支控制一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子内表(1)除了数据库表格,还可以创建仅在程序运行时间内存在的内表。ABAP/4提供了针对内表的不同操作。例如,可以搜索、附加、插入或删除行。内表中的行数并不固定。根据需求,系统可实时增加内表的大小。例如,如果想将某个数据库表格读入内表,不必事先知道数据库表格的大小。内表(1)除了数据库表格,还可以创建仅在程序运行时间内存在的内表(2)内表的另一种用处是根据程序需要重新组织数据库表格的内容。例如,可以从一个或多个大客户表格特定的数据中将与创建电话清单有关的数据读入内表中。然后可在程序运行期间直接访问该清单,而不用每次调用时都执行耗时的数据库查询。内表(2)内表的另一种用处是根据程序需要重新组织数据库表格的内表的操作:插入APPEND
DATA:BEGIN
OFITABOCCURS0,COL1TYPEI,
COL2TYPEI,
ENDOFITAB.ITAB-COL1=1.ITAB-COL2=2.
APPENDITAB.INSERTDATALINELIKEITAB.LINE-COL1=3.LINE-COL2=4.INSERTLINEINTOITABINDEX1.数据只能附于内表最后一行数据可以插入内表任意位置内表的操作:插入APPEND数据只能附于内表最后一行数据可以内表的操作:修改MODIFYLOOPATITABWHERECOL1=1.ITAB-COL1=5.
MODIFYITAB.ENDLOOP.MODIFY前MODIFY后内表的操作:修改MODIFYMODIFY前MODIFY后内表的操作:循环读取LOOP使用LOOP语句逐行读取内表。要将内表逐行读入工作区域,可以使用LOOP语句编一个循环。语法如下所示:LOOPAT<itab>[INTO<wa>][FROM<n1>][TO<n2>]
[WHERE<condition>].
.....ENDLOOP.内表的操作:循环读取LOOP内表的操作:删除DELETEDELETE
itab
WHERE
col1
=
1.删除前删除后内表的操作:删除DELETE删除前删除后内表的操作:COLLECTCOLLECT
聚集附加操作时,系统将检查工作区中的标准关键字段值与已存在于内表中的数据行是否相(所有非数字字段)。如果不同,COLLECT语句的作用与APPEND语句相似,将新行附加至内表末尾;如果存在相同表关键字值的行,COLLECT语句不附加新行,而是将工作区中数字字段的内容累加到已有数据行中。LH04003.9DL169924.5LH04005.7LH040236.5DL169924.5LH04005.7LH040236.5LH04003.9CARRCONNUMSATZCARRCONNUMSATZAPPEND<WA>TO<ITAB>COLLECT<WA>TO<ITAB>9.6内表的操作:COLLECTCOLLECT聚集附加LH040内表的操作:SUMSUM该语句只能在LOOP/ENDLOOP块内部使用。如果在AT/ENDAT块中使用SUM,则系统计算当前行组内部所有行的数字字段之和并将其写入目标区域中相应的字段;如果在AT/ENDAT块之外使用SUM语句,则系统计算所有循环过程中(已循环和将要循环的)内表行的数字字段之和并将其写入工作区域中相应的字段。所以,在AT/ENDAT块之外使用SUM语句一般是无意义的。内表的操作:SUMSUM内表的操作:ATATlevel<statementblock>
ENDAT.
该语句只能在LOOP语句内使用,其中行条件level有下列选项:
FIRST当前循环为内表的第一行,即当第一次循环操作时,系统会执行控制块语句
LAST当循环为内表最后一行。
NEWf行组的开头,行组指的是字段f和f前面(即左边)的全部字段,如果行组中的内容不同于上一行,执行语句块中的内容。
ENDOFf行组的结尾,如果下一行行组中的任何字段内容不同于上一行,执行语句块中的内容。内表的操作:ATATlevel一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子Select语句SELECTSELECT
result
FROM
source
INTO|APPENDING
target
[[FORALLENTRIESINitab]WHERE
sql_cond]
[GROUPBY
group][HAVING
group_cond]
[ORDERBY
sort_key].
Select语句SELECT数据选取(1)SELECT
carrid
connid
seatsocc
FROM
sflight
INTO
CORRESPONDING
FIELDS
OF
TABLE
seats
WHERE
carrid
BETWEEN
'AA'
AND
'DL'
GROUP
BY
connid
carrid
seatsocc
HAVING
carrid
BETWEEN
'AA'
AND
'DL'
ORDER
BY
seatsocc.数据选取字段数据库表内表或工作区数据选取范围及输出格式数据选取(1)数据选取字段数据库表内表或工作区数据选取范围及数据选取(2)CARRIDCONNIDSEATSOCCCARRIDCONNIDSEATSOCCSEATSOCCCONNIDCARRIDCARRIDCONNIDSEATSOCCSELECT
carrid
connid
seatsocc
FROM
sflight
INTO
TABLE
seatsSELECT
carrid
connid
seatsocc
FROM
sflight
INTO
CORRESPONDING
FIELDS
OF
TABLE
seats数据库表内表数据选取(2)CARRIDCONNIDSEATSOCCCARselectsingle的使用COL1COL2A1A2A3TABLEselectsingle选择第一个满足条件的值selectsinglecol2intoWAfromTABLEwherecol1=‘A’.结果:COL2值为1。selectsingle的使用COL1COL2A1A2A3表关联JOIN
如果要选取相关联的两个或以上的表内的数据,则需要使用到JOIN。
SELECT
a~aufnr
b~dfrei
INTO
CORRESPONDING
FIELDS
OF
TABLE
itab
FROM
afko
AS
a
JOIN
afpo
AS
b
ON
a~aufnr
=
b~aufnr.表关联JOINselect……endselectSELECT
carrid
connid
seatsocc
FROM
sflight
INTO
CORRESPONDING
FIELDS
OF
TABLE
seats
WHERE
carrid
BETWEEN
'AA'
AND
'DL'
GROUP
BY
connid
carrid
seatsocc
HAVING
carrid
BETWEEN
'AA'
AND
'DL'
ORDER
BY
seatsocc.
SELECT
carrid
connid
seatsocc
FROM
sflight
INTO
CORRESPONDING
FIELDS
OF
seats
WHERE
carrid
BETWEEN
'AA'
AND
'DL'
GROUP
BY
connid
carrid
seatsocc
HAVING
carrid
BETWEEN
'AA'
AND
'DL'
ORDER
BY
seatsocc.
APPEND
seats.
ENDSELECT.select……endselectSELECT
carri一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子字段查询(转账表)1事务代码:QS24显示主检验特性场景:需要用到字段主检验特性,却不知道主检验特性数据的存放处。字段查询(转账表)1事务代码:QS24字段查询(转账表)2在主检验特性栏位按下F1字段查询(转账表)2在主检验特性栏位按下F1字段查询(转账表)3
QPMK是转账表,技术信息里表名和字段名称组合起来就是主文件检验特性的存储位置。字段查询(转账表)3QPMK是转账表,技术信息里表名和字字段查询(转账表)4字段查询(转账表)4字段查询(结构)1这是通过QA33查询到的一笔检验批结果记录。假设,现在需要字段“检验的”的数据。字段查询(结构)1这是通过QA33查询到的一笔检验批结果记录字段查询(结构)2
虽然,在技术信息的表名上写着QAQEE,实际上,QAQEE是一个结构。字段查询(结构)2虽然,在技术信息的表名上写着QAQEE字段查询(结构)3
如何确定结构中的字段存储的表?可以通过该字段的数据元素引用处来进行查询。字段查询(结构)3如何确定结构中的字段存储的表?字段查询(结构)4
通过所用处清单来查找出现过数据元素QANZWERTG4的全部转账表。字段查询(结构)4通过所用处清单来查找出现过数据元素QA字段查询(结构)5
通过所用处清单,还可以查找数据元素在更广泛的范围内的应用。字段查询(结构)5通过所用处清单,还字段查询(结构)6
查找结果,数据元素QANZWERTG4在两个表内有被引用。字段查询(结构)6查找结果,数据元素QANZWERT字段查询(结构)7可以看到QAMR是转账表字段查询(结构)7可以看到QAMR是转账表一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子输出控制:WRITEWRITE语句在屏幕上输出数据的基本ABAP语句是WRITE。在屏幕上,输出通常是左对齐的。如果使用几个WRITE语句,输出字段就一个接一个显示,输出之间由列分开(如一个空格)。如果当前行没有足够空间,则开始新行。输出控制:WRITEWRITE语句对齐格式(1)输出屏幕上的数据字段格式,依赖数据类型。预定义数据类型的输出格式数据类型 输出长度 定位 C 字段长度 左对齐 D 8 左对齐 F 22 右对齐 I 11 右对齐 N 字段长度 左对齐 P 2*字段长度(+1) 右对齐 T 6 左对齐 X 2*字段长度 左对齐 数字数据类型F、I和P是右对齐的,左边用空格填充。如果有足够的空间,也输出千位分隔符。如果类型P字段包含小数位,则默认输出长度增加一位。对数据类型D,日期的内部格式与输出格式不同。当输出数据使用WRITE语句时,系统自动以用户主记录中指定的格式(例如,DD/MM/YYYY),输出数据类型D。对齐格式(1)输出屏幕上的数据字段格式,依赖数据类型。对齐格式(2)REPORTSAPMTEST.DATANUMBERTYPEPVALUE'-1234567.89'DECIMALS2.WRITE:'Number',NUMBER,'ispacked'.输出如下:Number1,234,567.89-ispacked
字段NUMBER总长为13,即,9位数字(包括小数点)、前导负号和作为分隔符的两个逗号。因为类型P字段的字段长度为8,所以NUMBER字段的输出长度为2*8+1=17。剩余的位置用四个空格填充。这意味着,在文字‘Number’和数字自身之间有五个空格。对齐格式(2)REPORTSAPMTEST.定位输出:列在屏幕上定位WRITE输出如下所示,通过制定字段名称前面的格式规范,可以在屏幕上定位WRITE语句的输出:语法WRITEAT[/][<pos>][(<len>)]<f>.此处 斜线‘/’表示新的一行
<pos>是最长为三位数字的数字或变量,表示在屏幕上的位置
<len>是最长为三位数字的数字或变量,表示输出长度如果格式规范只包含直接值(即,不是变量),可以忽略关键字AT定位输出:列在屏幕上定位WRITE输出定位输出:行SKIP语法SKIP{[n]
|{TOLINEline}}.
SKIPN
以当前行为基,向下跳转N行。若N无指定,则默认值为1。SKIPTOLINEline
跳转至指定行。定位输出:行SKIP格式化选项对
WRITE语句,可以
使用不同的
格式化选项
。语法WRITE....<f><选项>.所有数据类型的格式化选项选项
用途
LEFT-JUSTIFIED 输
出左对齐。
CENTERED 输
出居中。
RIGHT-JUSTIFIED 输
出右对齐。
UNDER<g> 输出
直接开始于
字段<g>下。
NO-GAP 忽
略字段<f>后的空格。
USINGEDITMASK<m> 指定格式模板<m>。 USINGNOEDITMASK 撤消对ABAP/4词典中指定的格式模板的激活。 NO-ZERO 如果字段仅包含零,则用空格代替它们。对类型C和N字段,将自动代替前导零。COLOR<n> 输出字段填充颜色。格式化选项对WRITE语句,可以使用不同的格式化选项ABAP屏幕输出DATA:G(5)VALUE'Hello', F(5)VALUE'Dolly'. WRITE:G,F. HelloDolly
WRITE:/10G, Hello /FUNDERG. Dolly WRITE:/GNO-GAP,F. HelloDolly DATATIMETYPETVALUE'154633'. WRITE:TIME, 154633 /(8)TIMEUSINGEDITMASK'__:__:__'. 15:46:33 WRITE:'000123', 000123 /'000123'NO-ZERO. 123 DATAFLOATTYPEFVALUE'123456789.0'. WRITEFLOATEXPONENT3. 1.23E+08 DATAPACKTYPEPVALUE'123.456' DECIMALS3. WRITEPACKDECIMALS2. 123.46 WRITE:/PACKROUND-2, 12,345.60 /PACKROUND-1, 1,234.56
/PACKROUND1, 12.346 /PACKROUND2. 1.235 WRITE:SY-DATUM, 06/27/1995 /SY-DATUMYYMMDD. 950627 ABAP屏幕输出DATA:G(5)VALUE'Hell初始化数据语法CLEAR<f>.该语句将数据对象<f>的内容初始化,可以用CLEAR语句重置任何数据对象值。REFRESHitab.该语句将内表中的数据重置为初始值。初始化数据语法选择屏幕的制作PARAMETERS
COL(11)
TYPE
C
default
'Hello
World‘.WRITE
:
10
'输出:',
16
COL.选择屏幕的制作PARAMETERS
COL(11)
TYPE选择屏幕(1)选择屏幕的制作,有两种方式parameters select-optionsparameters:输入的参数值是单值select-options:输入的参数值是多值,也可以是一个范围选择屏幕(1)选择屏幕的制作,有两种方式选择屏幕(2)
TABLES
afko.
PARAMETERS
aufnr2
LIKE
afko-aufnr.
SELECT-OPTIONS
aufnr1
FOR
afko-aufnr.选择屏幕(2)TABLES
afko.
PARAMETE一个简单的例子ABAP基础内表的应用select数据选取数据库表查询输入输出销售订单report一个简单的例子输入屏幕TABLES
:
vbak.PARAMETERS
vbeln
LIKE
vbak-vbeln.输入屏幕TABLES
:
vbak.定义变量定义表头DATA
:
BEGIN
OF
wa_head,
vbeln
LIKE
vbak-vbeln,
audat
LIKE
vbak-audat,
kunnr
LIKE
vbak-kunnr,
name1
LIKE
kna1-name1,
END
OF
wa_head.
定义行项目
DATA
:
BEGIN
OF
it_item
OCCURS
0,
vbeln
LIKE
vbap-vbeln,
posnr
LIKE
vbap-posnr,
matnr
LIKE
vbap-matnr,
arktx
LIKE
vbap-arktx,
kwmeng
LIKE
vbap-kwmeng,
meins
LIKE
vbap-meins,
netwr
LIKE
vbap-netwr,
waerk
LIKE
vbap-waerk,
END
OF
it_item.定义行数计数器DATA
line
TYPE
i.定义变量定义表头数据选取选取表头数据
SELECT
SINGLE
vbeln
audat
kunnr
INTO
(wa_head-vbeln,
wa_head-audat,
wa_head-kunnr)
FROM
vbak
WHERE
vbeln
=
vbeln.
SELECT
SINGLE
name1
INTO
wa_head-name1
FROM
kna1
WHERE
kunnr
=
wa_head-kunnr.
选取行项目数据
SELECT
vbeln
posnr
matnr
arktx
kwmeng
meins
netwr
waerk
INTO
CORRESPONDING
FIELDS
OF
TABLE
it_item
FROM
vbap
WHERE
vbeln
=
vbeln.
数据选取选取表头数据
屏幕输出DESCRIBE
TABLE
it_item
LINES
line."获取内表行数,设置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 烧结球团原料工岗位质量实操考核试卷含答案
- 金属玻璃家具制作工基础在岗评优考核试卷含答案
- 加氢精制工岗前理论技术考核试卷含答案
- 船舶电气装配工岗中跨界整合考核试卷含答案
- 司泵工安全应急模拟考核试卷含答案
- 固体树脂版制版员技能实操竞赛考核试卷含答案
- 植保机械操作工激励强化考核试卷含答案
- 2026年小学成语故事《顾曲周郎》三国典故教学教案
- 2026年小学成语故事《大义灭亲》是非思辨公开课教案
- 注册会计师CPA审计章节练习及易错题集
- 2026-2030医用包装袋市场投资前景分析及供需格局研究预测报告
- 中国邮政集团2026招聘笔试真题
- 2026年山东发展投资控股集团有限公司权属企业社会招聘(82人)考试备考试题及答案详解
- 2026中国农业大学烟台研究院非事业编实验系列管理服务岗工勤岗招聘4人(二)笔试题库含答案详解(综合题)
- (2026秋新版)西师大版四年级数学上册全册教案
- 统编版道德与法治五年级上册《开学第一课》课件
- 四川省泸州市2026年中考英语试题附答案
- 2026国企总部招聘笔试真题题库及标准答案(完整版)
- 动火作业专项施工方案
- 钢筋工程监理实施细则
- 某花园外墙防水工程施工组织设计精编版
评论
0/150
提交评论