一.调试
F5 一行执行,进入代码块;F6 代码块会当作一行直接执行; F7 跳出代码块;F8 直接结束或者到下一个断点
二.内表操作
2.1Insert
TYPES:BEGIN OF ty_stu,
num TYPE n LENGTH 4,
sub TYPE c LENGTH 4,
name TYPE c LENGTH 10,
score TYPE i,
END OF ty_stu.
DATA: t_stu TYPE TABLE OF ty_stu,
s_stu TYPE ty_stu.
s_stu-num = 0001.
s_stu-sub = 'MATH'.
s_stu-name = 'TOM'.
s_stu-score = 88.
BREAK-POINT.
"内表操作
" 1.填充数据-INSERT
"1.1insert s_stu INTO TABLE t_stu.
"1.2
* INSERT INITIAL LINE INTO t_stu INDEX 1 ASSIGNING FIELD-SYMBOL(<fs>).
* <fs>-num = 0001.
"1.3
* INSERT INITIAL LINE INTO t_stu INDEX 1 REFERENCE INTO DATA(stu_ref).
* stu_ref->num = 0001.
"1.4
* DATA t1 TYPE TABLE of ty_stu.
* INSERT s_stu INTO TABLE t1.
* INSERT s_stu INTO TABLE t1.
* INSERT LINES OF t1 INTO TABLE t_stu.'
"1.5
* s_stu-num = 0002.
* DATA t1 TYPE TABLE of ty_stu.
* INSERT s_stu INTO t1 INDEX 1.
2.2 append (只能用在标准表和排序表)
"2. 数据追加-APPEND
APPEND s_stu TO t_stu.
2.3数据汇总/合并-COLLECT
" 3.数据汇总/合并-COLLECT
COLLECT s_stu INTO t_stu.
2.4 数据降序-sort
SORT t_stu [by num ASCENDING score DESCENDING ] .
2.5 数据读取-read
TYPES:BEGIN OF ty_stu,
num TYPE n LENGTH 4,
sub TYPE c LENGTH 4,
name TYPE c LENGTH 10,
score TYPE i,
END OF ty_stu.
DATA: t_stu TYPE TABLE OF ty_stu WITH NON-UNIQUE SORTED KEY k_num COMPONENTS num sub,
s_stu TYPE ty_stu.
s_stu-num = 0001.
s_stu-sub = 'MATH'.
s_stu-name = 'TOM'.
s_stu-score = 88.
APPEND s_stu to t_stu.
" 5.读取
*5.1
* DATA wa TYPE ty_stu.
* wa-num = 0001.
* READ TABLE t_stu INTO s_stu FROM wa USING KEY k_num.
*5.2 READ TABLE t_stu INTO s_stu WITH TABLE KEY k_num COMPONENTS num = 0002.
* 5.3
* SORT t_stu by num sub.
* read TABLE t_stu INTO s_stu with key num = 0001 sub = 'MATH' BINARY SEARCH.
* 5.4 key 对应表里 DATA: t_stu TYPE TABLE OF ty_stu WITH NON-UNIQUE SORTED KEY k_num COMPONENTS num sub,
* read TABLE t_stu INTO s_stu with key k_num COMPONENTS num = 002 .
* 5.5 根据索引将表里的数据赋值给结构
* READ TABLE t_stu INTO s_stu INDEX 1.
2.6 内表循环-Loop
TYPES:BEGIN OF ty_stu,
num TYPE n LENGTH 4,
sub TYPE c LENGTH 4,
name TYPE c LENGTH 10,
score TYPE i,
END OF ty_stu.
DATA: t_stu TYPE TABLE OF ty_stu WITH NON-UNIQUE SORTED KEY k_num COMPONENTS num sub,
s_stu TYPE ty_stu.
* 6 Loop 这里的key 用拿个表里的字段进行循环
*LOOP AT t_stu INTO s_stu USING KEY k_num.
*ENDLOOP.
* 这里循环两次
*LOOP AT t_stu INTO s_stu FROM 1 to 2.
*ENDLOOP.
* 这里循环出name等于tom的结构
*LOOP AT t_stu INTO s_stu WHERE name = 'TOM '.
*ENDLOOP.
* 只有第一行才能进 AT FIRST ,最后一行进AT LAST
*LOOP AT t_stu INTO s_stu .
* AT FIRST .
* ENDAT.
*
* AT LAST.
* ENDAT.
*ENDLOOP.
补充:还有group by 分组
2.7 MODIFY 修改数据
* 7.1根据key
* s_stu-num = '01'. s_stu-sub = 'MATH'. s_stu-score = 100.
* MODIFY TABLE t_stu USING KEY k_num FROM s_stu .
* 7.2根据索引
* s_stu-num = 01. s_stu-sub = 'test'. s_stu-score = 99.
* MODIFY t_stu FROM s_stu INDEX 2.
* 7.3循环更改
* LOOP AT t_stu INTO s_stu USING KEY k_num.
* s_stu-score -= 10.
* MODIFY t_stu USING KEY loop_key FROM s_stu TRANSPORTING score.
* ENDLOOP.
* 7.4条件更改
*s_stu-score += 20.
*MODIFY t_stu FROM s_stu TRANSPORTING score WHERE num = 002 AND sub = 'ENG'.
2.8 删除 delete
2.8.1
s_stu-num = 0001. s_stu-sub = 'MATH'. s_stu-name = 'TOM'.
DELETE TABLE t_stu FROM s_stu.
2.8.2
delete TABLE t_stu WITH TABLE KEY primary_key COMPONENTS num = 0001 sub = 'MATH' name = 'TOM'.
2.8.3 索引
DELETE t_stu INDEX 1.
2.8.4循环删除
LOOP AT t_stu INTO s_stu USING KEY k_num.
DELETE t_stu USING KEY loop_key.
ENDLOOP.
2.8.5 范围删除
delete t_stu USING KEY k_num FROM 1 to 2.
2.8.6 重复删除 ,先排序后删除
SORT t_stu by num.
delete ADJACENT DUPLICATES FROM t_stu COMPARING num.
2.9 其他
DESCRIBE [KIND(类型)] [LINE (行)]
DESCRIBE TABLE t_stu LINES DATA(lines).
WRITE lines.(打印出多少行)
CLEAR
FREE
2.10函数
abs()
DATA(STR) = ABS(-1)/LINES(t_stu)/line_index()
WRITE STR.
2.11消息
message : se91 type:A,E,I,S,W,X
message 'XXX' type 'X'