600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > ABAP ALV 颜色设置(行 列 单元格)

ABAP ALV 颜色设置(行 列 单元格)

时间:2023-08-15 10:33:44

相关推荐

ABAP ALV 颜色设置(行 列 单元格)

关于ALV表格颜色,这种需求在项目中会经常用到。

列颜色

列的颜色很简单,在构成ALV字段的FIELDCAT内表中有一个字段是EMPHASIZE,将一个char型4位的颜色代码分配到FIELDCAT内表这个字段即可。

1 LW_FCAT-EMPHASIZE = 'C710'. "设置字段的颜色 2 3 MODIFY IT_FIELDCAT FROM LW_FCAT 4 TRANSPORTING EMPHASIZE 5 WHERE FIELDNAME = 'ESLRY'.

行颜色

1. 在构成ALV数据的内表中,添加一个char型4位的字段(CLR),用来记录颜色代码

1 TABLES ZEMP_TEST.2 3 TYPES: BEGIN OF TY_ZEMP. 4 INCLUDE STRUCTURE ZEMP_TEST. 5 TYPES: CLR TYPE CHAR4,"可以控制行颜色 6 END OF TY_ZEMP. 7 8 DATA: IT_ZEMP TYPE STANDARD TABLE OF TY_ZEMP, 9 IW_ZEMP TYPE TY_ZEMP.

2. 循环内表,设置颜色代码

1 LOOP AT IT_ZEMP INTO IW_ZEMP.2 "员工编号为‘3的行,颜色为红色 3 IF IW_ZEMP-EMPID = '3'. 4 IW_ZEMP-CLR = 'C610'. 5 MODIFY IT_ZEMP FROM IW_ZEMP. 6 CLEAR IW_ZEMP. 7 ENDIF. 8 ENDLOOP.

3. LAYOUT结构中INFO_FIELDNAME的值指定为 CLR

IW_LAYOUT-INFO_FIELDNAME = 'CLR'. "行颜色代码的字段

单元格颜色

单元格颜色的设置与行颜色设计基本一致

1. 在构成ALV数据的内表中,添加一个内表 CellColor,用来记录颜色代码,需要设置颜色的字段名

1 TYPES: BEGIN OF TY_ZEMP.2 INCLUDE STRUCTURE ZEMP_TEST. 3 TYPES: CLR TYPE CHAR4, 4 CELLCOLOR TYPE LVC_T_SCOL, "单元格颜色 5 END OF TY_ZEMP.

CellColor的结构:FNAME ALV 控制: 内部表字段的字段名称

COLOR ALV 控制: 颜色代码COLOR是一个结构:COL ALV 控制: 颜色

INT ALV 控制: 强化 1/0

INV ALV 控制: 相反 1/0 设置颜色是前景,或者是背景

NOKEYCOL ALV 控制: 覆盖码颜色

2. 循环内表,设置颜色代码

1 LOOP AT IT_ZEMP INTO IW_ZEMP. 2 3"员工编号为‘3’的行,颜色为红色 4IF IW_ZEMP-EMPID = '3'. 5 IW_ZEMP-CLR = 'C610'. 6 7 MODIFY IT_ZEMP FROM IW_ZEMP. 8 CLEAR IW_ZEMP. 9 10ENDIF.11 12IF IW_ZEMP-EMPID = '2'.13 IW_CELLCOLOR-FNAME = 'ENAME'.14 "员工编号为‘2’的行的‘ENAME’字段颜色为 黄色15 IW_CELLCOLOR-COLOR-COL = 3.16 IW_CELLCOLOR-COLOR-INT = 1.17 IW_CELLCOLOR-COLOR-INV = 0.18 19 APPEND IW_CELLCOLOR TO IW_ZEMP-CELLCOLOR.20 MODIFY IT_ZEMP FROM IW_ZEMP.21 CLEAR IW_ZEMP.22 23ENDIF.24 ENDLOOP.

3. LAYOUT结构中COLTAB_FIELDNAME的值指定为CELLCOLOR

IW_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'. "单元格颜色内表字段

最后在调用ALV函数时,设置layout,fieldcat参数

IS_LAYOUT= IW_LAYOUTIT_FIELDCAT = IT_FIELDCAT

ALV工具栏

可以自定义工具栏,或者添加标准ALV工具栏,然后去除一些不需要的功能,这样可以保留标准工具栏的功能

1 DATA:BEGIN OF TAB OCCURS 0, 2 FCODE LIKE RSMPE-FUNC, 3 END OF TAB. 4 5 TAB-FCODE = '&OL0'.APPEND TAB. 6 TAB-FCODE = '&OAD'.APPEND TAB. 7 TAB-FCODE = '&AVE'.APPEND TAB. 8 9 SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL' 10 EXCLUDING TAB IMMEDIATELY.

求和

LW_FCAT-DO_SUM = 'X'. "立即求和,只有I,F,P类型的列可以求和

----------------------------------------------------------

运行效果如下:

在SE38环境下的程序名输入栏输入’DEMO*’后按F4,你可以查到SAP所有的DEMO示例程序,会学到很多ABAP功能的实现方法,

输入’BCALV*’后按F4,你可以查到很多ALV示例程序。

附:ALV的颜色代码:/wren/article/details/3941551

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。