内表代码
statics: namec(10) type c value '123'. "声明的变量仅在目前的程序中使用,结束后会自动释放
types: begin of <结构名>,
<字段1>
<字段2>
<字段3>
end of <结构名>.
结构复用
types:BEGIN OF styu,
c1 type c,
END OF styu.
data:BEGIN OF ge_stu.
INCLUDE TYPE styu."注意这里要用句号
DATA:END OF ge_stu.
ge_stu-c1 = 3.
write:/ ge_stu.
TABLES:USR21."透明表即数据库表
TYPES:BEGIN OF EMP,
NAME LIKE USR2I-BNAME,
TELNUM LIKE USR2I-PERSNUMBER,
ADDR LIKE USR2I-ADDRNUMBER,
END OF EMP.
*参考该结构定义一个初始化大小为10,并有HEADER LNE的内表
DATA: EMPTAB TYPE STANDARD TABLE OF EMP INITIAL SIZE 10 WITH HEADER LINE.
"该方法定义初始化值为10,并有HEADER LINE的内表
DATA:EMPTAB2 LIKE STANDARD TABLE OF EMPTAB INITIAL SIZE 20.
*参考上例已建内表,重新定义大小为20并没有HEADER LINE的内表
DATA:EMPTAB3 LIKE EMPTAB OCCURS 10.
*定义一个初始化大小为10,并有HEADER LNE的排序表,以NAME为关键字,该内表中NAME字段数据不能重复
DATA:EMPTAB4 LIKE SORTED TABLE OF EMPTAB WITH UNIOUE KEY NAME INITIAL SIZE 10 WITH HEADER LINE.
“定义一个初始化值为0的哈希表
DATA:EMPTAB5 LIKE HASHED TABLE OF EMPTAB WITH UNIOUE KEY NAME WITH HEADER LINE.
*------取数据--------*
SELECT BNAME AS NAME
PERSNUMBER AS TELNUM"取透明表内的数据添加到内表中
ADDRNUMBER AS ADDR
INTO TABLE EMP”通过OpenSQL将从数据表中抓取的数据直接复制给内表
FROM USR21.
*下列:
TYPES:BEGIN OF ty_stu,
NAME TYPE c,
age TYPE i,
num TYPE i,
END OF ty_stu.
DATA: st_stus type standard table of ty_stu with NON-UNIQUE sorted key uus_age components age,"uus_age是自定义的键名
so_stus type sorted table of ty_stu with NON-UNIQUE key num with sorted key us_nn components num name,"us_nn是自定义的键名
hs_stus type hashed table of ty_stu with unique key num with unique hashed key uh_nn components num name.
标准表也有key
with index table secondary key"最多可设置两个"相当于聚合索引.
RANGES:r_mat FOR mara-matnr其定义的效果与下面代码中的内表创建效果一致。
DATA:BEGIN OF r_mat OCCURS 0,
sign TYPE c LENGTH 1,
option TYPE c LENGTH 2,
low LIKE mara-matnr
high LIKE mara-matnr,
END OF y mat.
注意:sing和option的值必须是大写 下面介绍以下range中四个参数的具体取值: SIGN 可以取以下两种值:INCLUED 和 EXCLUDE sign = 'I' 'I' 表示包含:LOW 、HIGH的值 sign = 'E' 'E' 表示排除:LOW、HIGH的值
OPTION 运算符可以取以下值:
'EQ' , 'NE' "等于,不等于 Equal ,Not Equal
'GT' , 'LT' "大于,小于 Greater Than ,Less Than
'GE' , 'LE' "大于等于,小于等于 Greater Than or Equal ,Less Than or Equal
'CP' , 'NP' "参考判断格式,如"ABC*",NP排除参考格式
'BT' , 'NB' "位于,不位于,功能与 Between 和 Not Between 一样。
浙公网安备 33010602011771号