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’的行,顏色為紅色 4 IF IW_ZEMP-EMPID = '3'. 5 IW_ZEMP-CLR = 'C610'. 6 7 MODIFY IT_ZEMP FROM IW_ZEMP. 8 CLEAR IW_ZEMP. 9 10 ENDIF. 11 12 IF 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 23 ENDIF. 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.?
- 求和
----------------------------------------------------------
?運行效果如下:
?
在SE38環境下的程序名輸入欄輸入’DEMO*’后按F4,你可以查到SAP所有的DEMO示例程序,會學到很多ABAP功能的實現方法,
輸入’BCALV*’后按F4,你可以查到很多ALV示例程序。
?
附:ALV的顏色代碼:http://blog.csdn.net/wren2004/article/details/3941551
總結
以上是生活随笔為你收集整理的ABAP ALV 颜色设置(行,列,单元格)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ALV 层级分组显示报表
- 下一篇: 解决MySql 数据库 提示:1045