数据字典中的数据类型与ABAP中的中数据类型对应关系

学ABAP一段时间了,一直误打误撞的,没看理论知识,每次看到系统标准表里的字段类型,然后再看看ABAP的类型,两个总对不上。也没去谷歌,也没去问人。

今天看到这个文档,才解释清楚之前的疑惑。哈,今天赚了。

知识点(1)

数据字典预置类型 ABAP类型 运行长度 说明
ACCP N(6) 6 会计计算周期
CHAR C(n) 1-255 字符
CLNT C(3) 3 集团,数据区域代码
CUKY C(5) 5 货币代码
CURR(n,m) P((n+1)/2)DECIMALm 42736 货币金额
DATS D(8) 8 日期
DEC n,m P((n+1)/2)DECIMALm n(1-31)m(1-17) 数值计算
FLTP F(8) 18 浮点数
INT1 X(1)(类型b) 3 单字节整形数
INT2 X(2)(类型s) 5 双字节整形数
INT4 X(4)(类型i) 10 四字节整形数
LANG C(1) 内部1位外部2位 语言代码
LCHR C(n) 256-最大值 长字符
LRAW X(n) 256-最大值 长位字串
NUMC n N(n) 1-255 数值文字
PREC X(2) 16 精确度
QUAN n,m P((n+1)/2)DECIMALm 42736 数量
RAW n X(n) 1-255 位字串
TIMS T(6) 6 时间
VARC n C(n) 255-最大值 长字符(仅3.0前可用)
STRING STRING 1-最大值 字符串
RAWSTRING XSTRING 1-最大值 位字符串
UNIT C(n) 2~3 单位

数据定义: 知识点(2)

TYPES:BEGIN OF t_staff,
                     S_no(3) type n,
                     Name(20),
              END OF t_staff.
DATA staff TYPEt_staff.

定义了一个结构类型t_staff, 里面包含了 员工工号,员工姓名两个字段。并根据其声明了一个结构体对象staff.

结构比作人,社会赋予人人的各属性是这个结构的字段。

TYPES:BEGIN OF HUMAN,
        ID(18)  TYPE N,  "身份证号码
       NAME(20),   "姓名
      AGE(2) TYPE N,  "年龄
      BOB  TYPE D, " 生日
     HIGE TYPE F,  "身高
    WIGHTH TYPE F, "体重
     END HUMAN.

 知识点(3)

通用逻辑表达式列表:  把后面的英文记住了,这几个符号也就记住了。

运算符

意义

EQ=

等于 (Equal)

NE<>><

不等于(NotEqual)

LT<

小于(LESSTHAN)

LE<=

小于等于(Less than orEqual to)

GT>

大于(GreaterThan)

GE>=

大于等于(Greater than orEqual to)

       知识点(4)    

types定义的并不是结构体对象,只是结构类型,不能作为工作区,当定义的内表没有表头行(工作区),必须为其定义一个结构体作为工作区,否则无法使用此内表.如果没有给内表定义工作区,则在定义内表时必须声明表头行(withheader line).

DATA:BEGIN OFline, "work area(structure)结构类型且结构体对象
     num TYPE i,
     sqr TYPE i,
    END OF line,
   "无表头行内表,内表定义都使用data关键词.
itab TYPE(LIKE)STANDARD TABLE OF line WITH KEY table_line.

DATADIRTAB LIKE CDIR OCCURS 10 WITH HEADER LINE.定义标准内表

 

知识点(5)

1.TYPESDATA区别:TYPES是用来定义某种类(),(DATA语句)实例化以后才可以使用,DATA是用来定义数据对象(实例变量),对于用DATA直接定义的结构体对象(不参照其它结构类型),其同时也是一个结构类型.

2.TYPELIKE区别:TYPE后面跟随的只能是某种类(),LIKE后面可以跟随类型或实例对象,参照结构体对象生成内表时只能用LIKE,不能用TYPE,因为结构体对象不是类型,只是一种实例对象,参照结构类型生成内表时可以用LIKE也可以用TYPE.其中通过LIKE定义的内表直接拥有参照结构类型的元素结构,而通过TYPE定义的内表只能间接拥有被参照结构类型的元素结构,结构类型不能作为内表的工作区,只有结构体对象才可以.

 

知识点(6)

:CLEAR itab[].表示操作的是内表对象.CLEAR itab.itab有表头行时表示操作表头行,如无表头行时表示操作内表对象.

内表分有表头的内表和没表头的内表。

clear itab 和clear itab[] 是有区别的,clear itab[] 操作两种情况的内表。clear itab 操作的是当内表有表头时,操作表头;没表头时,操作内表对象。这样理解对吗?

理解错了,CLEARitab[].:只清空整个内表对象数据.不清空表头行

 

知识点(7)

 下面这个很难理解,我都看了5遍了。

控制级操作(用于总计,缩进,格式控制等)

AT FIRST|LAST|NEW f|END OF f.

      

ENDAT.

说明:

l  FIRST:当循环为内表的第一行时,执行语句块中语句.在工作区中,系统用*填充所有关键词内容.

l  LAST:当循环为内表的最后一行时,执行语句块中语句.在工作区中,系统用*填充所有关键词内容.

l  NEW f:字段f前面(即左边)的全部字段内容之一不同于上一行时,执行语句块中语句.在工作区中,系统用*填充f后面所有关键词内容.

l  END OF f:如果下一行行组中的任何字段内容不同于上一行,执行语句块中语句.在工作区中,系统用*填充f后面所有关键词内容.

:在控制级操作期间,在工作区中,对于非标准关键词段,将全部进行初始化,在执行完控制操作后(ENDAT语句后)工作区中的数据将全部还原到进入控制级操作语句前(即进入AT)状态.

 知识点(8)

 FOR ALL ENTRIES IN ITAB  相当于循环输出内表在WHERE子句中出现的   意义相当于where子句。

 

 

你可能感兴趣的:(数据字典中的数据类型与ABAP中的中数据类型对应关系)