TYPE-POOLS
孙嘉悦
2023-12-01
我们在定义Tables的时候,一般会加上TYPE-POOLS SLIS.
slis应该是个Package.声明了它后就可以用它包括的函数、类、消息等。
SLIS_FIELDCAT_ALV 是控制ALV的列的信息,比如列宽、颜色、是否可修改等。
SLIS_LAYOUT_ALV 是控制整体的ALV的显示状态的,比如隔行显示不同的颜色,自动优化全部列的宽度,全部列可修改等等。
下面一个控制ALV单元格颜色的例子:
DATA: BEGIN OF IT_BUSS OCCURS 0,
PXKCSL TYPE P DECIMALS 0, "批销库存数量
SEL(1),
colour TYPE slis_t_specialcol_alv, "这个需要加
END OF IT_BUSS.
......
LOOP AT IT_BUSS.
F_TABIX = SY-TABIX.
color-fieldname = 'JHCGS'.
color-color-col = '9'.
APPEND color.
IT_BUSS-colour = color[].
modify IT_BUSS INDEX F_TABIX.
ENDLOOP.
.......
DATA: gs_layout TYPE slis_layout_alv. "整体alv的属性
gs_layout-colwidth_optimize = 'X'. "最合适的列宽
gs_layout-box_fieldname = 'CHX'. "CHX是做批量选择的字段
gs_layout-f2code = 'LOOK'.
DATA: it_fields TYPE slis_t_fieldcat_alv.
DATA: wa_fields TYPE LINE OF slis_t_fieldcat_alv.
gs_layout-coltab_fieldname = 'COLOUR'."加入修改的颜色
REFRESH it_fields.
CLEAR wa_fields. "alv中具体字段的属性