ALV 颜色设置(行,列,单元格)
【转自:https://www.cnblogs.com/mingdashu/p/color_alv.html】
BCALV_EDIT_03
http://blog.sina.com.cn/s/blog_a87b19300102who3.html
关于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_LAYOUT
IT_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的颜色代码:http://blog.csdn.net/wren2004/article/details/3941551
*----------------------------------------------------------------------------------------------------------------------------------、

1 INCLUDE <icon>.
2
3 INCLUDE <symbol>.
4
5
6
7 TYPE-POOLS slis.
8
9
10
11 TABLES spfli.
12
13
14
15 TYPES: BEGIN OF ty_layout,
16
17 exception(1),
18
19 checkbox,
20
21 icon TYPE icon_d,
22
23 symbol TYPE icon_d,
24
25 color(4),
26
27 cell_color TYPE slis_t_specialcol_alv,
28
29 hyperlink TYPE string,
30
31 link_handle TYPE int4,
32
33 END OF ty_layout.
34
35 TYPES BEGIN OF ty_spfli.
36
37 INCLUDE TYPE ty_layout.
38
39 INCLUDE TYPE spfli.
40
41 TYPES END OF ty_spfli.
42
43 TYPES ty_tab_spfli TYPE ty_spfli OCCURS 0.
44
45
46
47 PERFORM f_main.
48
49
50
51 *&---------------------------------------------------------------------*
52
53 *& Form f_main
54
55 *&---------------------------------------------------------------------*
56
57 * ALV display
58
59 *----------------------------------------------------------------------*
60
61 FORM f_main.
62
63 DATA: lt_spfli TYPE ty_tab_spfli,
64
65 lt_fieldcat TYPE slis_t_fieldcat_alv,
66
67 ls_layout TYPE slis_layout_alv,
68
69 lt_hyperlink TYPE lvc_t_hype,
70
71 lt_add_fieldcat TYPE slis_t_add_fieldcat.
72
73
74
75 PERFORM get_data TABLES lt_spfli.
76
77
78
79 PERFORM set_catalog CHANGING lt_fieldcat.
80
81
82
83 PERFORM set_layout USING ls_layout.
84
85
86
87 PERFORM hyperlink_build TABLES lt_hyperlink.
88
89
90
91 PERFORM add_fieldcat_build TABLES lt_add_fieldcat.
92
93
94
95 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
96
97 EXPORTING
98
99 i_callback_program = sy-repid
100
101 i_grid_title = 'Xin''s ALV'
102
103 it_fieldcat = lt_fieldcat
104
105 it_hyperlink = lt_hyperlink
106
107 is_layout = ls_layout
108
109 it_add_fieldcat = lt_add_fieldcat
110
111 TABLES
112
113 t_outtab = lt_spfli.
114
115 ENDFORM. "f_main
116
117
118
119 *&---------------------------------------------------------------------*
120
121 *& Form set_layout
122
123 *&---------------------------------------------------------------------*
124
125 * text
126
127 *----------------------------------------------------------------------*
128
129 * -->P_LAYOUT text
130
131 *----------------------------------------------------------------------*
132
133 FORM set_layout USING p_layout TYPE slis_layout_alv.
134
135 p_layout-zebra = 'X'.
136
137 p_layout-colwidth_optimize = 'X'.
138
139 p_layout-window_titlebar = 'LinHuanXin''s ALV Demo'.
140
141 p_layout-no_hline = 'X'.
142
143 p_layout-no_vline = 'X'.
144
145 p_layout-info_fieldname = 'COLOR'.
146
147 p_layout-coltab_fieldname = 'CELL_COLOR'.
148
149 p_layout-lights_fieldname = 'EXCEPTION'.
150
151 ENDFORM. "set_layout
152
153
154
155 *&---------------------------------------------------------------------*
156
157 *& Form get_data
158
159 *&---------------------------------------------------------------------*
160
161 * Get the data for output
162
163 *----------------------------------------------------------------------*
164
165 * -->PT_SPFLI data internal table
166
167 *----------------------------------------------------------------------*
168
169 FORM get_data TABLES pt_spfli TYPE ty_tab_spfli.
170
171
172
173 DATA: lt_cell TYPE slis_t_specialcol_alv,
174
175 ls_cell LIKE LINE OF lt_cell,
176
177 lwa_spfli LIKE LINE OF pt_spfli.
178
179
180
181 SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE pt_spfli.
182
183
184
185 LOOP AT pt_spfli INTO lwa_spfli.
186
187
188
189 IF lwa_spfli-distid = 'KM'.
190
191 lwa_spfli-color = 'C610'.
192
193 ENDIF.
194
195 IF lwa_spfli-distance < 1000.
196
197 CLEAR ls_cell.
198
199 REFRESH lt_cell.
200
201 ls_cell-fieldname = 'DISTANCE'.
202
203 ls_cell-color-col = '4'.
204
205 ls_cell-color-int = '1'.
206
207 ls_cell-color-inv = '0'.
208
209 ls_cell-nokeycol = 'X'.
210
211 APPEND ls_cell TO lt_cell.
212
213 lwa_spfli-cell_color = lt_cell.
214
215 lwa_spfli-checkbox = 'X'.
216
217 lwa_spfli-exception = '1'.
218
219 ELSE.
220
221 lwa_spfli-exception = '2'.
222
223 ENDIF.
224
225
226
227 lwa_spfli-link_handle = sy-tabix.
228
229 lwa_spfli-hyperlink = 'www.163.com'.
230
231 lwa_spfli-icon = icon_detail.
232
233 lwa_spfli-symbol = sym_folder.
234
235 MODIFY pt_spfli FROM lwa_spfli.
236
237 ENDLOOP.
238
239 ENDFORM. "get_data
240
241
242
243 *&---------------------------------------------------------------------*
244
245 *& Form add_fieldcat_build
246
247 *&---------------------------------------------------------------------*
248
249 * text
250
251 *----------------------------------------------------------------------*
252
253 * -->PT_FIELDCAT text
254
255 *----------------------------------------------------------------------*
256
257 FORM add_fieldcat_build TABLES pt_fieldcat TYPE slis_t_add_fieldcat.
258
259 DATA lwa_fieldcat LIKE LINE OF pt_fieldcat.
260
261
262
263 lwa_fieldcat-fieldname = 'HYPERLINK'.
264
265 lwa_fieldcat-web_field = 'LINK_HANDLE'.
266
267 APPEND lwa_fieldcat TO pt_fieldcat.
268
269 ENDFORM. "get_data
270
271
272
273 *&---------------------------------------------------------------------*
274
275 *& Form hyperlink_build
276
277 *&---------------------------------------------------------------------*
278
279 * text
280
281 *----------------------------------------------------------------------*
282
283 * -->PT_HYPERLINK text
284
285 *----------------------------------------------------------------------*
286
287 FORM hyperlink_build TABLES pt_hyperlink TYPE lvc_t_hype.
288
289 DATA lwa_hyperlink LIKE LINE OF pt_hyperlink.
290
291
292
293 DO 13 TIMES.
294
295 lwa_hyperlink-handle = sy-index.
296
297 lwa_hyperlink-href = 'www.sina.com.cn'.
298
299 APPEND lwa_hyperlink TO pt_hyperlink.
300
301 ENDDO.
302
303 DO 13 TIMES.
304
305 lwa_hyperlink-handle = 13 + sy-index.
306
307 lwa_hyperlink-href = 'www.163.com'.
308
309 APPEND lwa_hyperlink TO pt_hyperlink.
310
311 ENDDO.
312
313
314
315 ENDFORM. "hyperlink_build
316
317
318
319 *&---------------------------------------------------------------------*
320
321 *& Form set_catalog
322
323 *&---------------------------------------------------------------------*
324
325 * set fieldcatalog for alv output
326
327 *----------------------------------------------------------------------*
328
329 FORM set_catalog CHANGING pt_fieldcat TYPE slis_t_fieldcat_alv.
330
331 DATA lwa_fieldcat TYPE slis_fieldcat_alv.
332
333
334
335 "macro
336
337 DEFINE add_field.
338
339 clear lwa_fieldcat.
340
341 lwa_fieldcat-fieldname = &1.
342
343 lwa_fieldcat-seltext_l = &2.
344
345 lwa_fieldcat-emphasize = &3.
346
347 lwa_fieldcat-key = &4.
348
349 lwa_fieldcat-fix_column = &4.
350
351 append lwa_fieldcat to pt_fieldcat.
352
353 END-OF-DEFINITION.
354
355
356
357 "add field catalog
358
359 add_field 'MANDT' 'Client' '' 'X'.
360
361 add_field 'CARRID' 'Airline Code' '' 'X'.
362
363 add_field 'CONNID' 'Fight Number' '' 'X'.
364
365 add_field 'COUNTRYFR' 'Country From' '' ''.
366
367 add_field 'CITYFROM' 'City From' '' ''.
368
369 add_field 'AIRPFROM' 'Airpart From' '' ''.
370
371 add_field 'COUNTRYTO' 'Country To' 'C510' ''.
372
373 add_field 'CITYTO' 'City To' '' ''.
374
375 add_field 'AIRPTO' 'Airpart To' '' ''.
376
377 add_field 'FLTIME' 'Fly Time' '' ''.
378
379 add_field 'DEPTIME' 'Dept Time' '' ''.
380
381 add_field 'ARRTIME' 'Arrive Time' '' ''.
382
383 add_field 'DISTANCE' 'Distance' '' ''.
384
385 add_field 'DISTID' 'Mass unit of distance' '' ''.
386
387 add_field 'FLTYPE' 'Flight type' '' ''.
388
389 add_field 'PERIOD' 'Arrival n day(s) later' '' ''.
390
391 add_field 'HYPERLINK' 'HYPERLINK' '' ''.
392
393
394
395 "checkbox
396
397 CLEAR lwa_fieldcat.
398
399 lwa_fieldcat-fieldname = 'CHECKBOX'.
400
401 lwa_fieldcat-seltext_l = 'Checkbox'.
402
403 lwa_fieldcat-checkbox = 'X'.
404
405 lwa_fieldcat-fix_column = 'X'.
406
407 APPEND lwa_fieldcat TO pt_fieldcat.
408
409
410
411 "icon
412
413 CLEAR lwa_fieldcat.
414
415 lwa_fieldcat-fieldname = 'ICON'.
416
417 lwa_fieldcat-seltext_l = 'Icon'.
418
419 lwa_fieldcat-icon = 'X'.
420
421 APPEND lwa_fieldcat TO pt_fieldcat.
422
423
424
425 "symbol
426
427 CLEAR lwa_fieldcat.
428
429 lwa_fieldcat-fieldname = 'SYMBOL'.
430
431 lwa_fieldcat-seltext_l = 'Symbol'.
432
433 lwa_fieldcat-symbol = 'X'.
434
435 APPEND lwa_fieldcat TO pt_fieldcat.
436
437
438
439 ENDFORM. "set_catalog


1 BUTN_TYPE 按钮类型
2 可用的按钮类型:
3 0 Button(normal)
4 1 Menu and default button
5 2 Menu
6 3 分割符
7 4 Radio button
8 5 Checkbox
9 6 Menu entry

ALV 颜色设置(行,列,单元格)的更多相关文章
- (转载)WPF:DataGrid设置行、单元格的前景色
WPF:DataGrid设置行.单元格的前景色 0. 说明 /********************************** 本示例实现功能1.DataGrid基本操作2.列标题样式3.内容居中 ...
- ABAP ALV 颜色设置(行,列,单元格)
BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...
- SAP ABAP ALV 颜色设置(两个ALV函数例子) 列 行 单元格
@[TOC](设置ALV颜色)# 前言淦! 要求花花绿绿的ALV ,那就淦他! 需要的参数和对应颜色放在最后.稍微改改就能用. 介绍两个常用的ALV函数实现1.REUSE_ALV_GRID_DISPL ...
- CxGrid 改变某行或单元格的颜色
CxGrid 改变某行或单元格的颜色 一个表(T)的结构结构如下. ID Test 1 20012 14443 17885 26456 4568 cxGrid成功连接到该表, 如果要实现单元格特效 ...
- [Xcode 实际操作]五、使用表格-(5)设置UITableView的单元格背景颜色
目录:[Swift]Xcode实际操作 本文将演示单元格背景颜色的设置 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先添加两个协 ...
- table、tr、td表格的行、单元格等属性说明
table.tr.td表格的行.单元格等属性说明 <table>标签定义HTML表格.简单的HTML表格由table元素以及一个或多个tr.th或td元素组成. tr元素定义表格行,th元 ...
- Java poi导出设置 Excel某些单元格不可编辑
小白的总结,大神勿喷:需要转载请说明出处,如果有什么问题,欢迎留言 一.需求: 1.某一列 .某一行或某些单元格不可编辑,其他列可以编辑 二.期间遇到的问题 1.无法设置成不可编辑 2.设置为不可编辑 ...
- Easyui datagrid 设置内容超过单元格宽度时自动换行显示
datagrid 设置内容超过单元格宽度时自动换行显示 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 问题描述 单元格内容超过单元格宽度不会自动化换行.如下 ...
- ExtJs GridPanel 给表格行或者单元格自定义样式
Ext.onReady(function(){ Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:['name', 'ema ...
随机推荐
- 神经网络(3)---如何表示hypothesis,如何表示我们的model
大脑中的神经元 我们的大脑都充满了上图所示的神经元,神经元有一个细胞体(cell body),还有一些input wires,专业词汇叫做树突(dendrite),它们从其它地方接收输入信息,神经元还 ...
- jquery左划出现删除按钮,右滑隐藏
jquery左侧划出显示删除按钮,右滑动隐藏删除按钮 <!doctype html> <html> <head> <meta charset="ut ...
- java中日志打印
目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使 ...
- SQL server 中rowcount与@@rowcount 的使用
rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例,set rowcount 10select * from 表A 这样的查询只会返 ...
- Navicat连接Oracle报ORA-12737错误
替换oci.dll 文件分享百度网盘:链接:https://pan.baidu.com/s/1wayojGlKcgdMRZTvBqAUgw 密码:3d6j 把下载的文件放到Navicat文件夹里,然后 ...
- 关于ORA-12154: TNS:could not resolve the connect identifier specified的问题
问题:net configuration assistant测试连接可以连接.但是PLSQL连接不了,报ORA-12154: TNS:could not resolve the connect ide ...
- Convert AS400 Spool to PFD Tools – PDFing
1. Steps There’s a tool PDFing convert spool file to PDF with simple way. No need install AS400 obje ...
- Vin2008 X64安装.Net Framework1.1
http://www.iis.net/learn/install/installing-iis-7/how-to-install-aspnet-11-with-iis-on-vista-and- ...
- Bootstap学习的实用网站
基本CSS样式 http://v2.bootcss.com/base-css.html 93 Twitter Bootstrap HTML Templates https://shapebootstr ...
- P1143 进制转换
漂亮小姐姐点击就送:https://www.luogu.org/problemnew/show/P1143 题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入输出格式 输入格式: 输入数据共 ...