like是引用数据对象 TYPE是引用数据类型
一个最简单的例子
代码语言:javascript复制TYPES:BEGIN OF ty_alv,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
END OF ty_alv.
DATA: alv1 TYPE ty_alv.
DATA: alv2 LIKE alv1.
ty_alv是定义的一个数据类型; 因此alv1可以type,但是不能like,使用like会报错,因为他不能引用数据类型。 但是alv2可以like alv1, 因为alv1已经被实例化为一个对象了,所以可以like
不过我更喜欢用type,因为在开发中,大部分情况下 用like的情况下大部分都可以用type,但是用type的情况下却不一定可以用like。
使用type的情况:
- 基本的数据类型,i,n,c,等。
- 已经在系统定义好的数据元素,用SE11 查看数据元素
- 数据库表里的字段
- 你自己在程序里面用TYPES,也就是上面的例子
- 自己在程序里面用TYPES定义的结构里面的一个小成员,如 data lv_m type ty_alv-matnr。
- 数据库表