0
点赞
收藏
分享

微信扫一扫

ALV控制某列的颜色_SAP刘梦

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

ALV控制某列的颜色_SAP刘梦_python




这个参数是在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[] ……


至于色码: 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


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 ’ 。


欢迎关注订阅号:SAP学习记录 (SAPlearning )

PO <wbr><wbr><wbr>text <wbr><wbr><wbr>copy <wbr><wbr><wbr>rules <wbr><wbr><wbr>:copy <wbr><wbr><wbr>PR <wbr><wbr><wbr>item <wbr><wbr><wbr>text <wbr><wbr><wbr>to <wbr><wbr><wbr>PO



举报

相关推荐

0 条评论