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>小数的位数
DATA: p(9) TYPE p DECIMALS 2 VALUE '-123456789012345.12'.
DATA :
W_CHAR TYPE C, "1位长度的字符变量
W_MULCHAR() TYPE C, "20位长度的字符变量
W_INTERGER TYPE I VALUE , "整型变量,并赋上了初值10
W_FLOAT TYPE F VALUE ,2E-10, "浮点数
W_DATE TYPE D VALUE '', "日期
W_TIME TYPE T VALUE '', "时间
W_NUMBER TYPE N, "1位数字变量
W_MULNUM() TYPE N, "10位数字变量
W_QUAN TYPE P, "缺省有3位小数的变量
W_CURR TYPE P DECIMALS . "固定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 <结构|表>.
.直接声明
DATA:
BEGIN OF TYP_STUDENT,
NAME() TYPE C,
BIRTH_DATE TYPE D,
BIRTH_TIME TYPE T,
HEIGHT TYPE P,
WEIGHT TYPE I,
END OF TYP_STUDENT. .使用like
DATA :
TYP_STUDENT_REF LIKE TYP_STUDENT,
TYP_MARA LIKE MARA. .特殊的用法中,在自己的结构中包含别的结构
DATA:
BEGIN OF TYP_STUDENT2.
INCLUDE STRUCTURE TYP_STUDENT.
DATA:CLASS()
TYPE N,
DIRECTOR() TYPE C,
END OF TYP_STUDENT2.

最新文章

  1. KnockoutJS:
  2. 使用phar上线你的代码包
  3. iOs 自定义UIView 日历的实现 Swift2.1
  4. Apache2.4.6 添加虚拟主机
  5. C++学习基础二——指针与引用的区别
  6. 【小技巧】9针USB转串口简易连通性测试,附25针转9针
  7. android之打开网页
  8. sql 显示0001
  9. 在vs中怎样一次性的添加一个文件夹到解决方案里
  10. Codeforces Round #378 (Div. 2) D题(data structure)解题报告
  11. 四层运维工具nc
  12. html文字有光晕
  13. HDU2023-求平均成绩
  14. GitHub常见错误解决办法
  15. mysql数据库字符集编码查看以及设置
  16. js--sort()排序方法的使用--(笔记)
  17. 原创:vsphere概念深入系列四:Nic Teaming若干问题
  18. 设计模式之Command(命令)(转)
  19. Java 策略模式(Strategy)
  20. [POI 2014]RAJ-Rally

热门文章

  1. nRF51822 配对之device_manager_init 调用,以及保证 用户数据存储 的Flash 操作不与device manager 模块冲突
  2. 【算法编程 C++ python】单链表反序输出
  3. Linux学习笔记(一)
  4. Redis采坑(一)——数据无法插入,内存溢出
  5. activiti 术语 国际化文件
  6. SQLite添加新的字段
  7. 【Linux】walle 部署上线单报错:mv: cannot overwrite directory ‘/www’ with non-directory
  8. matlab学习笔记4--导入和导出Internet数据
  9. 解决EasyDSS、EasyNVR流媒体RTMP、HLS(m3u8)、HTTP-FLV播放提示H5播放错误的问题
  10. 警方破获超大DDoS黑产案,20万个僵尸网络运营商被抓