1)先自定义一个结构ST_SCARR, [Page]
2)以结构ST_SCARR定义一个工作区WA_SCARR,
3)用”LIKE TABLE OF”从工作区WA_SCARR定义一个内表IT_SCARR.
4)用SELELT语句从数据库表SCARR中读取数据.
5)用”CORRESPONDING FIELDS OF TABLE ”给内表IT_SCARR字段进行同名输值.
6)用”LOOP AT…TO…”把内表中的数据逐条传给工作区,最后对工作区的数据进行输出.
TYPES: BEGIN OF ST_SCARR,
CARRID TYPE SCARR-CARRID,
CARRNAME TYPE SCARR-CARRNAME,
CURRCODE TYPE SCARR-CURRCODE,
URL TYPE SCARR-URL,
END OF ST_SCARR.
DATA: WA_SCARR TYPE ST_SCARR,
IT_SCARR LIKE TABLE OF WA_SCARR.
SELECT CARRID CARRNAME CURRCODE URL
FROM SCARR
INTO CORRESPONDING FIELDS OF TABLE IT_SCARR.
LOOP AT IT_SCARR INTO WA_SCARR.
WRITE: /1(3) WA_SCARR-CARRID,
5(20) WA_SCARR-CARRNAME,
26(5) WA_SCARR-CURRCODE,
32(30) WA_SCARR-URL.
ENDLOOP.
1.TYPES与DATA区别:TYPES是用来自定义某种类(型)的,需(用DATA语句)实例化以后才可以使用,而DATA是用来声明基本类型数据对象(实例变量)的,对于用DATA直接定义的结构体对象(不参照其它结构类型).
参照自定义类型生成新数据语法格式如下:
TYPES | DATA 。。。TYPE 1_type 。。。''1_type代表程序内部类型
参照程序中已经声明的数据对象生成新数据语法格式如下:
TYPES | DATA 。。。LIKE dobj 。。。。。''dobj代表数据对象
2.TYPE与LIKE区别:TYPE后面跟随的只能是某种类(型),而LIKE后面可以跟实例对象,参照结构体对象生成内表时只能用LIKE,不能用TYPE,因为结构体对象不是类型,只是一种实例对象,参照结构类型生成内表时可以用LIKE也可以用TYPE.其中通过LIKE定义的内表直接拥有参照结构类型的元素结构,而通过TYPE定义的内表只能间接拥有被参照结构类型的元素结构,结构类型不能作为内表的工作区,只有结构体对象才可以.
阅读(1678) | 评论(0) | 转发(0) |