Professional Documents
Culture Documents
ABAP数据类型
ABAP数据类型
html) \ jevinxu
(http://www.sapjx.com/author/jevinxu) \ 1 评论 (http://www.sapjx.com/abap-programming-data-
types.html#comments)
1.数据类型与数据对象
2.内表和内表结构(Internal Table)
3.数据流控制语句
4.模块化(Modularization)
1.数据类型与数据对象
ABAP (http://www.sapjx.com/tag/sap-abap)元素数据基本类型有以下8种:
类型 描述 长度 标准长度
C 字符 1-65365字符 1位字符
I 整型 4位
P 包 1-16位 8位
F 浮点型 8位
D 日期类型 8位字符
T 时间类型 6位字符
X 十六进制 1位
其中:
C 和 N 为字符类型,N 为数字文本,如果定义的位数为4位,但是数据只有两位时,会补上前置零,例如:0020.
例如,日期:20140224,时间:120535。
提示:内部显示和外部显示
在 SAP (http://www.sapjx.com/tag/sap) 数据字典中,显示的数据需要区分内部显示和外部显示。
外部显示就是我们在屏幕上看到的数据;
内部显示则是系统内部操作的数据。
例如:
N 类型:0020,外部显示就是20,而内部显示则是0020;
日期类型:2014-02-24,外部显示为2014.02.24(根据SAP (http://www.sapjx.com/tag/sap)用户日期格式设置显示),而内部显示则是
20140224.
1.2 变量的定义
1.2.1 通过类型定义
语法:
通过Data关键字声明变量,如若需要定义多个变量时,可用在Data 关键字后加上冒号“:”.
例如:
01 * 定义单个变量:
02 DATA Person(35) TYPE C.
03
04 * 定义多个变量:
05 DATA: Player(35) TYPE C,
06 NickName(35),
07 Points TYPE I,
08 Games TYPE I VALUE '10',
09 Average(5) TYPE P,
10 Starter,
11 Acquired TYPE D.
1.2.2 初始值
在 ABAP 的8种基本类型中,每个类型都有其初始值。
在定义变量时,如果没有设置其默认值,或者使用CLEAR 语法清除变量时,系统都会将其恢复成初始值。
每个类型的初始值如下表所示:
类型 初始值 类型 初始值
C (blank) N zeroes
I zero D 00000000
P zero T 000000
F zeroes X 00
在定义变量时,可以通过分配默认值,来初始化变量:
1 DATA: Player(35) TYPE C ,
2 NickName(35) VALUE 'Dr.J',
3 Points TYPE I,
4 Games TYPE I VALUE '10',
5 Average(5) TYPE P VALUE 10,
6 Starter VALUE 'Yes',
7 Acquired TYPE D VALUE '20100101'.
使用CLEAR语法,则会将变量恢复回初始值(上表所示)。如:
1 * 清除单个变量
2 CLEAR NickName.
3
4 * 清除多个变量
5 CLEAR: Points, Games, Average.
ABAP可以通过现有的类型,通过LIKE关键字,将已定义好的变量作为参考类型,作为新定义变量的类型。
语法:
如:
使用LIKE定义同样类型的变量:
1.3 定义常量
语法:
通过关键字CONSTANTS 声明定义常量,与变量一样,区别在于:
常量定义时,必须分配默认值,且常量不能在程序中修改。
1.4 自定义类型
上面提到,ABAP中有8种基本类型,ABAP也允许用户自定义类型,便于维护操作。
例如,不同字节长度字符串用途不同,如果需要定义不同的长度的C类型来操作,就可以通过自定义类型实现。
语法:
TYPES <name>(<length>) TYPE <data type>.
通过关键字 TYPES,自定义相关类型,然后在定义声明变量时,使用自定义的类型作为变量类型:
01 * 自定义类型
02 TYPES: NAME(35) TYPE C,
03 TEAMS(20) TYPE C.
04
05 * 使用自定义类型作为变量类型
06 DATA: PLAYER TYPE NAME VALUE 'Troy Aikman',
07 NICKNAME LIKE PLAYER.
08
09 * 使用自定义类型作为常量类型
10 CONSTANTS: TEAM1 TYPE TEAMS VALUE 'Cowboys',
11 TEAM2 LIKE TEAM1 VALUE 'Packers'.
1.5 数据输出
1.5.1 数据基本输出
ABAP 8种基本类型的标准输出长度及输出对齐方式,如下表所示:
类型 输出标准长度 对齐方式
C 自定义长度 左对齐
I 12位 右对齐
P (2 * 自定义长度 + )1 右对齐
F 22位 右对齐
N 自定义长度 左对齐
D 10位 左对齐
T 8位 左对齐
X (2*自定义长度) 左对齐
通过WRITE关键词输出多个数据对象,然后通过反斜杠”/“ 进行换行输出:
输出结果:
9.876543210000000E+03
987.654E+01
9876.54
12
12.0
32.00
1.6 定义指针变量
ABAP中存在指针变量,指针变量定义后,不是通过变量来保存值,而是通过指针给变量分配源字段的内存地址。
一般多用于在与大量数据交互操作时,优化程序性能。
语法:
输出结果:
Line 1: 12 12 12 12
Line 2: 32 32 32 32
需要注意的是,如若没有对指针分配值,却使用该指针时,语法检查时,可以通过;