公司动态

076、ALV颜色、图标与热键

📅 2026/8/25 14:48:06
076、ALV颜色、图标与热键
076、ALV颜色、图标与热键前阵子被一个问题磨了半天。用户说ALV状态灯显示成乱码,跑过去一看,明明给的是icon_red_light,屏幕上却显示字母“@”。我打开内表定义,发现图标字段长度是CHAR1。存一个以@开头、@结尾四字符图标?截断成“@”了。这种问题代码怎么调都调不出来,属于数据结构设计时的“抠门”导致的。今天把这几个和ALV颜值相关的功能集中说一下:颜色、图标、还有热键。这三个东西很多教材里都放在“ALV美化”章节,但实际踩坑不少。先说颜色。ALV颜色有三层:列颜色、行颜色、单元格颜色。列颜色最无脑,在FIELD CATALOG里直接给EMPHASIZE赋值:gs_fieldcat-fieldname = 'AMOUNT'. gs_fieldcat-emphasize = 'C410'. " 红色,C是大写,别给我写成小写 APPEND gs_fieldcat TO gt_fieldcat.EMPHASIZE这个字段名字也有人记成EMPHASIS,那是老黄历了。LVC_S_FCAT里面就是EMPHASIZE。值一共4位:第一位C,第二位颜色号,第三位是否加重,第四位是否反白。比如C410就是红色加粗。颜色号1到9各是什么,说实在的没人记得住,我每次都要去别的程序抄。网上有颜色表,自己试一遍就记住了。行颜色需要动内表。输出内表里加一个CHAR4字段,名字随意,比如COLOR,然后在布局里指定:gs_l