【ABAP】第一章-基础

1. ABAP语法基础

1.1 基本数据类型

CNDTIFPXstringXstring

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>小数的位数
DATAp(9TYPE DECIMALS 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. 



 

原文地址:https://www.cnblogs.com/msymm/p/12060932.html