提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
变量命名规范:
局部变量 -> lv_xx
全局变量 -> gv_xx
C:范围 1-65535,用来处理文本,接收字母字符。
N:数字类型的字符串,范围 1-65535,初始值为 0,用于表示识别数字。
D: 8 字符变量,通常用于日期,初始值为 00000000
T: 6 字符变量,通常用于时间,初始值 000000
I: 用于存储数字,初始值为0 范围是 -2^31- 2^31。
F: 浮点类型数字,能够精确到15为小数点, 值的范围是 10^307 to -10^307。
P: 数字被存储在压缩格式,他们最大的是31字节
STRING: 与C类似,没有定义长度。
XSTRING: 与X类型一致。没有定义长度。
C、N、D、I、F变量在程序中可以定义长度。如果没定义则取最小值。
指针
TYPES: BEGIN OF ts_type,
first_data TYPE string,
second_data TYPE i,
third_data TYPE c,
END OF tt_type.
DATA : ls_type TYPE tt_type,
lt_type TYPE STANDARD TABLE OF tt_type.
FIELD-SYMBOLS: <fs_type1> TYPE c,
<fs_type2> TYPE tt_type,
<fs_type4> TYPE data,
<fs_type5> TYPE any,
<fs_type6> TYPE ANY TABLE,
<fs_type7> LIKE ls_type,
<fs_type8> LIKE LINE OF lt_type.
SELECT * FROM sflight INTO TABLE gt_sflight.
为了提高性能,最好不要使用 *
注意:
1.select single 不能与 order by appending一起用
2.模糊匹配: like ‘XXX_’
3.select for update 是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的
不一致性。
4.PACKAGE SIZ 直接发送到添加了 PACKAGE SIZE 的表中。PACKAGE SIZE 负责确定在循环的一次执行中需要选择多少条目。SELECT ENDSELECT
SELECT carrid connid planetype PACKAGE SIZE 100
FROM sflight
INTO CORRESPONDING FIELDS OF gt_sflight.
ENDSELECT
预定一个价格最高的飞机航班
SELECT *
FROM sflight
INTO CORRESPONDING FIELDS OF gt_sflight
WHERE price = ( SELECT MAX( price )
FROM sflight ).
DATA: c_cursor TYPE cursor,
gt_cursor TYPE TABLE OF sflight.
OPEN CURSOR c_cursor FOR
SELECT carrid connid
FROM sflight.
DO.
FETCH NEXT CURSOR c_cursor APPENDING TABLE gt_cursor PACKAGE SIZE 100.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
CLOSE CURSOR c_cursor.
In this example, we get data
SELECT mandt, carrid, connid, countryfr, countryto
FROM spfli
INTO TABLE @data(lt_spfli).
DATA: gr_alv TYPE REF TO cl_salv_table,
gr_columns TYPE REF TO cl_salv_columns_table.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = gr_alv
CHANGING
t_table = YOUR TABLE.
gr_columns = gr_alv->get_columns( ).
gr_columns->set_optimize( value = 'X' ).
gr_alv->display( ).