内表代码

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 一样。

 

posted @ 2023-09-19 22:31  u米  阅读(53)  评论(0)    收藏  举报