用语言着实难以描述:且看例子,
DATA : a TYPE I. 这是没有问题的,
但是DATA : a LIKE I,系统就有错误提示了:
Field "I" is unknown. It is neither in one of the specified tables nor
defined by a "DATA" statement . . . . . . . . . .,
就是说Like 的后面跟的是一个字段,那么这个字段要么是一个 table里面定义的字段,比如:
data : v_datum TYPE SY-DATUM.
要么是我们自己用DATA 定义的一个字段,如果,你改成 DATA : b LIKE a ,就不会有错了,因为我们前面用DATA 定义了A .
那么,DATA : b TYPE a.呢,系统的提示是The type "A" is unknown. 说明A 不是一个type,只是我们定义的一个字段,就是说如果你要用TYPE 这个关键字那么,你必须后面跟一个type,那么什么是TYPE呢,
1.最基本的数据类型,i,n,c,等,
2.或已经在系统定义好的data type ,用SE11 查看DATA TYPE(data element),比如 WERKS_D就是一个data type ,你可以这样定义:
DATA: V_PLANT type WERKS_D.
3.DB table 里面的字段,
data : v_volc type marc-WERKS.
4.一种是你自己在程序里面用TYPES:定义的.如
types :begin of volcano,
vol1 type i,
vol2 type c,
end of volcano.
data : wa_vol type volcano.
data : wa_vol1 LIKE wa_vol.这是可以的。
5.一种是你自己在程序里面用TYPES定义的结构里面的一个小成员,如:
data : v_volc1 TYPE volcano-vol1.
6.当然数据库表,结构那时当然的,如:
data : wa_volcano TYPE marc.
还有下面的两个都是可以的。
DATA : v_datum TYPE sy-datum.
DATA : v_datum LIKE sy-datum.
那为什么,这两个都可以呢,对于TYPE 你可以理解为TYPE 中我列举的第3种,至于用like你可以理解为
one of the specified tables 。
那么那种效率高呢,很多人说TYPE 效率高,我说要看习惯。
欢迎大家指正和补充,要去吃饭了。
阅读(8503) | 评论(1) | 转发(0) |