ALV控制某列的颜色

有时候想控制ALV某列的颜色,如图:
ALV控制某列的颜色


这个参数是在slis_t_fieldcat_alv这里面控制的:

  DATA : fieldcat  TYPE slis_t_fieldcat_alv  WITH  HEADER  LINE .

CONSTANTS:
con_red   TYPE char4 VALUE 'C500',                                     "红色
con_green TYPE char4 VALUE 'C600'.                                     "绿色

DEFINE fill_fieldcat.
  fieldcat-col_pos   = &1.
  fieldcat-fieldname = &2.
  fieldcat-seltext_l = &3.

  "设置列的颜色
  case fieldcat-fieldname.
    when 你想要的那个字段名称.                                      "借方红色,贷方绿色
      fieldcat-emphasize = con_red.
    when 你想要的那个字段名称.
      fieldcat-emphasize = con_green.
    when others.
  endcase.

  fieldcat-do_sum    = 'X'.                                            "统计功能打开
  append fieldcat.
END-OF-DEFINITION.


然后在调用时:
 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     is_layout                         = layout
     it_fieldcat                       = fieldcat[]
……


至于色码:参考:http://blog.csdn.net/f122300349/article/details/5516371
ALV里色码.就是颜色编码,4位CHAR型,形式如下所示:C X Y Z(四位),其中第一位为‘C’固定不变,X表示颜色代码(如下表所示),Y表示加强的设置,Z表示相反的设置。

ALV使用到的颜色如下所示:
C               color
1              gray-blue
2              light gray
3              yellow
4              blue green
5              green
6              red
7              orange

以下引自: http://blog.csdn.net/lijunhai/article/details/1967091

1 )颜色含义
1 :海蓝;2:浅清;3:黄色;4:浅蓝;5:青色;6:红色;7:橙色。
(1)首位为主颜色;
(2)次位为辅助颜色;
(3)末位为0时,表示首位数字表为表格的底色;
末位为1时,则表示以1为底色,首位数字则表为表格字体的颜色;
末位为其它颜色时,则表示底色为ALV的默认颜色;
以上三条是本人大概总结出来的规律,本人发现的现象基本如上,但也不一定全部正确。
其中C200与系统标准ALV底色比较相似;C410与系统标准关键字颜色比较相似。
2 )列颜色:
设置ALV字段fieldcat属性: i_fieldcat-emphasize = &3. " 颜色
fieldcat属性 写入属性内表allfields:alv_append_field 'WERKS' ' 工厂 ' 'C110'.
C110 :为颜色代码;
3 )行颜色:
(1)在内表itab定义一个字段line_color来存储颜色;loop内表itab,在需要显示颜色的行其值赋为颜色'C110';
(2)在定义alv显示格式定义:
设置ALV显示layout属性:i_layout-info_fieldname = 'LINE_COLOR',line_color为内表定义的存储颜色的列名。
4)单元格颜色
单元格颜色属性:LVC_S_SCOL,该属性为一结构,含三个字段:FNAME(30)、COLOR(颜色结构,含三个字段:col(10)、int(3)、inv(10))、NOKEYCOL(1)(覆盖码颜色)
ALV 列属性:coltab_fieldname
exa
定义内表itab含字段FLDNAME type LVC_S_SCOL;
定义单元格颜色结构cellcolor type LVC_S_SCOL;
循环内表,当要设置单元格颜色所在的列字段colname要设置颜色时
fldname-FNAME =  COLNAME
fldname-COLOR-col =  2 (颜色代码)
fldname-COLOR-int =  1
fldname-COLOR-inv =  0

转载于:https://www.cnblogs.com/senlinmu110/p/3802273.html

对于SAP ALV(ABAP List Viewer)来说,要修改某一列的数据,你可以按照以下步骤进行操作: 1. 首先,你需要获取对应的ALV表格对象。可以通过使用`cl_salv_table`类的`get_instance`方法来获取。 2. 通过调用`cl_salv_table`类的`get_columns`方法,获取所有列的信息。将其存储在一个表格对象中。 3. 在获取的列信息表格中,找到你想要修改的列,并读取该列的相关信息,例如列名称、列类型等。 4. 使用`cl_salv_table`类的`set_cell_value`方法,将你想要修改的单元格的新赋给对应的行和列。 5. 最后,通过调用`cl_salv_table`类的`display`方法,刷新并显示修改后的ALV表格。 以下是一个示例代码,演示了如何修改ALV表格的某一列数据: ```abap DATA: lo_alv_table TYPE REF TO cl_salv_table, lt_columns TYPE salv_t_column, ls_column TYPE salv_s_column, lv_new_value TYPE string. " 获取ALV表格对象 lo_alv_table = cl_salv_table=>get_instance( ). " 获取所有列的信息 lt_columns = lo_alv_table->get_columns( ). " 找到并修改特定列的数据 READ TABLE lt_columns WITH KEY columnname = 'COLUMN_NAME'. IF sy-subrc = 0. " 设置新的列 ls_column = lt_columns[ sy-tabix ]. lv_new_value = 'NEW_VALUE'. lo_alv_table->set_cell_value( EXPORTING row_id = 'ROW_ID' column_id = ls_column-column_id value = lv_new_value ). ENDIF. " 刷新并显示修改后的表格 lo_alv_table->display( ). ``` 请将代码中的`COLUMN_NAME`替换为你想要修改的列的名称,`ROW_ID`替换为你想要修改的行的标识符,`NEW_VALUE`替换为你要设置的新。 希望以上信息对你有所帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值