ABAP随笔
第二章 数据类型
1.ABAP命名规则(23)
全局变量G 局部变量L,字段V/D 结构体S 常量C 内表T 类O RANGE(范围)R 参照变量(数据对象)F 例:GV_CARRID
2.基本数据类型(30)
初始长度 | 可变长度 | 初始值 | 意义 | |
---|---|---|---|---|
数字型 | ||||
I | 4 | 4 | 0 | 整数(自然数) |
F | 8 | 8 | 0 | 浮点型 |
P | 8 | 1-16 | 0 | Packed number 整数=16-小数指定 |
字符型 | ||||
C | 1 | 1~65535 | ‘……’ | 文本字段(alphanumeric characters) |
D | 8 | 8 | ‘00000000’ | 日期字段(样式:YYYYMMDD) |
N | 1 | 1~65535 | ‘0……0’ | 数字文本字段(数字型字符串)有前导 |
T | 6 | 6 | ‘000000’ | (样式:HHMMSS) |
十六进制类型 | ||||
X | 1 | 1~65535 | X’0……0’ | 十六进制字段 |
3.系统变量sy-datum(系统)和sy-datlo(本地)的区别(37)
系统基本信息自动会保存到SYST结构体中,用户本地profile信息TIMEZONE会保存到系统变量SY-ZONLO中。
4.String相关命令(39)
①FIND
ABAP字段中存在字段B时,SY-SUBRC返回值为0
gv_str = 'ABAP'.
gv_chr = 'B'.
FIND gv_chr IN gv_str.
IF SY-SUBRC EQ 0.
WRITE 'B found'.
ENDIF.
结果:B found
②REPLACE
将ABAP变换成BBAP
gv_str = 'ABAP'.
gv_chr = 'BBAP'.
REPLACE 'ABAP' IN gv_str WITH gv_chr.
WRITE / gv_str.
结果:BBAP
③TRANSLATE
大小写字母转换LOWER CASE / UPPER CASE,ABAP→abap / abap→ABAP
gv_str = 'ABAP'.
TRANSLATE gv_str TO LOWER CASE.
WRITE / gv_str.
结果:abap
④SHIFT
ABAP依次向左移动
gv_str = 'ABAP'.
SHIFT gv_str.
WRITE / gv_str.
结果:BAP
⑤CONDENSE
去空格并向左对齐,经常与NO-GAPS一起使用去掉空格
gv_str = 'AB AP'.
CONDENSE gv_str NO-GAPS.
WRITE / gv_str.
结果:ABAP
⑥OVERLAY
填充Character的空格,但不覆盖原来字符
gv_str = ' B P'.
gv_chr = 'AAAA'.
OVERLAY gv_str WITH gv_chr.
WRITE / gv_str.
结果:ABAP
⑦CONCATENATE
AB+AP连接成ABAP
gv_str = 'AB'.
gv_chr = 'AP'.
CONCATENATE gv_str gv_chr INTO gv_str.
WRITE / gv_str.
结果:ABAP
⑧SPLIT
以字符C为中心分为AB与AP
GS_STR = 'ABCAP'.
SPLIT gv_str AT 'C' INTO gv_str gv_chr.
WRITE / gv_str gv_chr.
结果:AB AP
5.单引号“ ’ ”与grave“ ` ”的区别(39)
DATA gv_char(32) TYPE c.
gv_char = 'This is a'.
CONCATENATE gv_char 'text ' INTO gv_char SEPARATED BY space.
* 结果 => ''This is a text''
CONCATENATE gv_char `text ` INTO gv_char SEPARATED BY space.
* 结果 => ''This is a text ''
若使用grave(`),则能够识别字符串中包含的所有空格。
SEPARATED BY space 加空格
6.程序中经常使用的ABAP数据字典类型(52)
面试用
很难
ABAP数据字典类型 | ABAP基本数据类型 |
---|---|
ACCP | N(6) |
CHAR n | C(n) |
CLNT | C(3) |
CUKY | C(5) |
CURR n,m | P((n+1)/2 DECIMAL m |
DEC n,m | P((n+1)/2 DECIMAL m |
DATS | D(8) |
FLTP | F(8) |
INT1 | X(1) |
INT2 | X(2) |
INT4 | X(4) |
LANG | C(1) |
NUMC n | N(n) |
PREC | X(2) |
QUAN n,m | P((n+1)/2 DECIMAL m |
RAW n | X(n) |
TIMS | T(6) |
UNIT | C(n) |
VARC n | C(n) |
LRAW | X(n) |
LCHR | C(n) |
STRING | SRTING |