1、变量
变量定义包含name, length, type等,语法如下:
DATA <name> [<length>] type <type>[ value <value>] [ decimal <decimals>]
其中: [] 里的内容表示可选项。<>表示名称
<name>: 变量名称, 最长30个字符, 不可含有 + . , : ( ) 等字符
<length>长度,要用圆括号括起来 如 LINE(20) TYPE C.
<type>:数据类型
<value>: 初始值
<decimals>: 小数位
声明多个变量时候DATA后面加上冒号,每个声明语句结束后用逗号隔开。
实例:
DATA:C1 TYPE C,
INT1 TYPE I VALUE 1,
TEMP TYPE P DECIMAL 2.
关键字TYPE和LIKE
变量定义也可以用关键字LIKE
DATA <name> [<length>] like<object>|<type>[ value <value>] [ decimal <decimals>]
LIKE 用在已有的数据类型, , 而TYPE则是用在定义数据类型。
实例:DATA:TRANSCODE LIKE SY-TCODE.
2、常量
常量定义使用 CONSTANTS
CONSTANTS<常量名>[<长度> ] TYPE <数据类型> VALUE <默认值>
•常量值一旦被定义,即被长期保存在内存,其值无法改变
实例:
CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'.
3、结构体
A、 结构体定义:
DATA: BEGIN OF <name>
<field1>……
<field2>……
END OF<name>.
实例:
DATA:BEGIN OF USERINF,
SID(10) TYPE C,
NAME(20) TYPE C,
TEL(20) TYPE C,
END OF USERINF.
DATA USER2 LIKE USERINF.
B、结构体赋值:
• 有差异的结构体,可使用MOVE-CORRESSPONDING 匹配及赋值相同的字段
实例1:
USERINF-SID='A00001'.
USERINF-NAME='JERY'.
USERINF-TEL='010-12345678'.
USER2=USERINF.
WRITE:USER2, / USERINF-SID.
实例2:
DATA:BEGIN OF USERDETAIL,
SID(10) TYPE C,
NAME(20) TYPE C,
BIRDATE TYPE D,
ADD(50) TYPE C,
END OF USERDETAIL.
MOVE-CORRESSPONDING USERINF TO USERDETAIL.
4、结构体继承
- 参考已存在的结构体创建一个属性相同的新结构体
- 可在新结构体中增加字段
- 定义语句:INCLUDE STRUCTURE
实例:
DATA: BEGIN OF EMPLOYEE,
INCLUDE STRUCTURE USERINF,
DATA:BIRTHDATE TYPE D,
ADD(50) TYPE C,
END OF EMPLOYEE.
MOVE-CORRESSPONDING USERINF TO USERDETAIL.