TYPE 后面跟随的只能是某种类, 而LIKE 后面可以跟实例对象,参照结构体对象生成内表时
只能用LIKE ,不能用 TYPE ,因为结构体对象不是类型,只是一种实例对象,参照结构类型生成
内表时可以用LIKE也可以用TYPE ,其中通过LIKE定义的内表直接拥有参照结构类型的元素结构,而通过
TYPE定义的内表只能间接拥有被参照结构类型的元素结构,结构类型不能作为内表的工作区,只有结构体对象才可以。
zebra(1) type c , "striped pattern 斑马线显示,颜色隔行交替显示
edit(1) type c , " for grid only ALV 可否编辑,注意只对Grid 模式有效,对List模式无效
f2code like sy-ucomm, "gs_layout-f2code = ‘&ETA’ 双击时触发的Funcode,这里为弹出详情窗口
colwidth_optimize(1) type c, "ALV网格(单元格)宽度设置为自动最优化,按 输出内容宽度自动调整
key_hotspot(1) type c, " keys as hotspot " 设置关键字段是否是热点,可单击
key(1) type c , " column with key-color 指定字段是否是关键字段,如果是则单元格显示的颜色会不同,并会靠前显示
col_pos like sy_cucol, "position of the column 列的输出位置字段在表中第几列
fieldname type slis_fieldname, "针对输出内表哪列进行设置,只有设置了的列才会显示,如果没有设置,则不会显示在ALV中。
lzero(1) type c, " 为X时输出前导零
no_sign(1) type c, " 不显示数字符号
no_zero(1)type c, "只输出有意义的值,空值不输出。为X时全为零(如:00000)时不输出,所以不输出零时应该最好同时设置lzero = sapce与no_zero = X,相反如果要输出,则应同时设置lzero = X 与no_zero = space
内表:如果使用有表头行的内表 ,CLEAR 仅清除表格工作区域。 要重置整个内表而不清除表格工作区域,使用REFRESH语句或者CLEAR[] ; REFRESH 加不加中括号都是只清内表,另外REFRESH是专门为清除内表的,不能清基本类型变量,但CLEAR可以,以上都不会释放掉内表所占用的空间,如果想初始化内表的同时还要释放掉所占用的空间,应该使用FREE
SELECT (column) FROM …
column: 可以是内表,也可以是字符串
TYPES: line_type type c length 72.
DATA: column type table of line_type.
append ‘carrid’ to column
append 'cityfrom cityto ’ to column
select … from database
parameters: p_cityfr type spfli-cityfrom,
p_cityto type spfli-cityto.
DATA: BEGIN OF wa,
fldate type sflight-fldate,
carrname type scarr-carrname,
connid type spfli-connid,
END OF wa.
DATA itab LIKE SORTED TABLE OF wa
WITH UNIQUE KEY fldate carrname connid.
DATA: column type string,
dbtab type string.
column = c~carrname
p~connid
f~fldate
database = ((scarr as c
& inner join spfli as p on p~carrid = c ~carrid
and p~cityfrom = p_cityfr
and p~cityto = p_cityto
inner join sflight as f on f~carrid = p ~carrid
and f~connid = p ~ connid).
select column from database
into corresponding fields of table itab.