1. ABAP语法基础
1.1 基本数据类型
C、N、D、T、I、F、P、X、string、Xstring
P:默认为8字节,最大允许16字节。最大整数位:16*2 = 32 - 1 = 31 -14(允许最大小数位数) = 17位整数位
类型 | 最大长度(字符数) | 默认长度 | 说明 |
C | 1~262143个字符 | 1 字符 | |
N | 1~262143个字符 | 1 字符 | 0到9之间字符组成的数字字符串 |
D | 8 个字符 | 日期格式必须为 YYYYMMDD | |
T | 6 个字符 | 格式为 24-hour的 HHMMSS | |
I | 4 bytes | -2.147.483.648 to +2.147.483.647 | |
F | 8 bytes | 小数位最大可以到17位,即可精确到小数点后17位 | |
P | 1 to 16 bytes | 8 bytes | 两个数字位压缩后才占一个字节,由于0-9的数字只需要4Bit位,所以一个字节实质上允许存储二位数字,这就是P数据类型为压缩数据类型的由来。并借用半个字节来存储小数点位置、正号、负号相关信息 |
X | 1~524,287 bytes | 1 byte | 十六进制字符 0-9, A-F具体的范围为:00~FF 类型X是十六进制类型,可表示内存字节实际内容,使用两个十六制字符表示一个字节中所存储的内容。但直接打印输出时,输出的还是赋值时字面意义上的值,而不是Unicode解码后的字符 如果未在 DATA 语句中指定参数<length>,则创建长度为 1 注:如果值是字母,则一定要大写 |
1.1.1 数据申明
定义变量
DATA < f > [(< length >)] < type> [< value>] [< decimals>].//<f>指变量名;<length>变量长度;<type>变量类型;<decimals>小数的位数
DATA: p(9) TYPE p DECIMALS 2 VALUE '-123456789012345.12'.
DATA : W_CHAR TYPE C, "1位长度的字符变量 W_MULCHAR(20) TYPE C, "20位长度的字符变量 W_INTERGER TYPE I VALUE 10, "整型变量,并赋上了初值10 W_FLOAT TYPE F VALUE 1,2E-10, "浮点数 W_DATE TYPE D VALUE '20030312', "日期 W_TIME TYPE T VALUE '123212', "时间 W_NUMBER TYPE N, "1位数字变量 W_MULNUM(10) TYPE N, "10位数字变量 W_QUAN TYPE P, "缺省有3位小数的变量 W_CURR TYPE P DECIMALS 2. "固定2位小数的变量 DATA : W_CHAR_REF LIKE W_CHAR, "和上面定义的W_CHAR一样 W_MATNR LIKE MARA-MATNR. "和标准表MARA中字段MATNR一样
定义常量
CONSTANTS < c>[< length>] < type> < value> [< decimals>].
CONSTANTS: BEGIN OF < fstring>,
< component declaration>,
…
END OF < fstring>.//字符串定义为常量
定义结构
DATA / TYPES: BEGIN OF <结构名>, <项目1>, <项目2>, …… <项目n>, END OF <结构名>.
DATA : <结构名> TYPE|LIKE <结构|表>.
1.直接声明 DATA: BEGIN OF TYP_STUDENT, NAME(40) TYPE C, BIRTH_DATE TYPE D, BIRTH_TIME TYPE T, HEIGHT TYPE P, WEIGHT TYPE I, END OF TYP_STUDENT. 2.使用like DATA : TYP_STUDENT_REF LIKE TYP_STUDENT, TYP_MARA LIKE MARA. 3.特殊的用法中,在自己的结构中包含别的结构 DATA: BEGIN OF TYP_STUDENT2. INCLUDE STRUCTURE TYP_STUDENT. DATA:CLASS(2) TYPE N, DIRECTOR(40) TYPE C, END OF TYP_STUDENT2.