ALV行 列颜色设置

ALV的颜色设置分为3种:行、列、单元格。

1.列颜色的设置

在 slis_t_fieldcat_alv-emphasize 中,写入需要的颜色代码。

Eg:

DATA: fc TYPE slis_t_fieldcat_alv WITH HEADER LINE.

fc-tabname = ‘ITAB‘.

fc-fieldname = ‘COL‘.

fc-emphasize = ‘C100‘.

append fc.

2.行颜色的设置

a.在要输出的 itab 中,加入 color 列,类型为C(4),记录需要的颜色代码。

b.设置 layout。alv_layout-info_fieldname = ‘COLOR‘.

Eg: DATA: BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE mara.

DATA: color(4) TYPE c.

DATA: END OF itab.

DATA: alv_layout TYPE slis_layout_alv.

itab-matnr =  ‘123‘.

itab-color = ‘C200‘.

APPEND itab.

alv_layout-info_fieldname = ‘COLOR‘.

3.单元格颜色设置

a.在要输出的 itab 中,加入 color 列,类型为 slis_t_specialcol_alv,记录需要的颜色代码。

b.设置 layout。alv_layout-coltab_fieldname = ‘COLOR‘.

Eg: DATA: BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE mara.

DATA: color TYPE slis_t_specialcol_alv.

DATA: END OF itab.

DATA: color TYPE slis_t_specialcol_alv.

DATA: alv_layout TYPE slis_layout_alv.

color-color-col = ‘1‘.
    color-color-int = ‘0‘.
    color-color-inv = ‘0‘.
    color-fieldname = ‘COL‘.

APPEND color.

itab-matnr =  ‘123‘.

itab-color[] = color[].

APPEND itab.

alv_layout-coltab_fieldname = ‘COLOR‘.

以上是我对ALV GRID着色方法的一个总结,由于技术水平有限可能还存在一些遗漏,还望大家指出。

事例代码:

REPORT ztest.

"双击单元格,可进入新的ALV画面.

TYPE-POOLS: slis.

*一共定义3个内表.
*itab1 :设置列颜色,
*itab2 :设置行颜色.
*itab3 :设置单元格颜色.

DATA: BEGIN OF itab_test OCCURS 0,
        col1(4) TYPE c,
        col2(4) TYPE c,
        col3(4) TYPE c,
        col4(4) TYPE c,
        col5(4) TYPE c,
        col6(4) TYPE c,
      END OF itab_test .

DATA: BEGIN OF itab_test2 OCCURS 0.
        INCLUDE STRUCTURE itab_test.
DATA: color(4) TYPE c.
DATA: END OF itab_test2.

DATA: BEGIN OF itab_test3 OCCURS 0.
        INCLUDE STRUCTURE itab_test.
DATA: color TYPE slis_t_specialcol_alv.
DATA: END OF itab_test3.

DATA: fc TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      fc2 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      fc3 TYPE slis_t_fieldcat_alv WITH HEADER LINE.

START-OF-SELECTION.
  PERFORM create_data.

END-OF-SELECTION.
  PERFORM fieldcat_build.
  PERFORM show_alv.

*&---------------------------------------------------------------------*
*&      Form  create_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM create_data.

DATA: l_color(4) TYPE c,
        l_char TYPE c,
        i TYPE i.
  DATA: color TYPE slis_t_specialcol_alv WITH HEADER LINE.

REFRESH itab_test.
  REFRESH itab_test2.
  REFRESH itab_test3.
  REFRESH fc.
  REFRESH fc2.
  REFRESH fc3.

WHILE sy-index < 8.
* 内表 1
    itab_test-col1 = ( sy-index - 1 ) * 6 + 1.
    itab_test-col2 = ( sy-index - 1 ) * 6 + 2.
    itab_test-col3 = ( sy-index - 1 ) * 6 + 3.
    itab_test-col4 = ( sy-index - 1 ) * 6 + 4.
    itab_test-col5 = ( sy-index - 1 ) * 6 + 5.
    itab_test-col6 = ( sy-index - 1 ) * 6 + 6.
    APPEND itab_test.

* 内表 2
    MOVE-CORRESPONDING itab_test TO itab_test2.
    l_char =  sy-index.

i = sy-index MOD 2.
    IF i = 0.
      CONCATENATE ‘C‘ l_char ‘01‘ INTO l_color.
    ELSE.
      CONCATENATE ‘C‘ l_char ‘10‘ INTO l_color.
    ENDIF.
    itab_test2-color = l_color.
    APPEND itab_test2.

* 内表 3
    MOVE-CORRESPONDING itab_test TO itab_test3.
    REFRESH color.

color-color-col = l_char.

color-color-int = ‘0‘.
    color-color-inv = ‘0‘.
    color-fieldname = ‘COL1‘. APPEND color.
    CONCATENATE l_char ‘00‘ INTO itab_test3-col1.

color-color-int = ‘0‘.
    color-color-inv = ‘1‘.
    color-fieldname = ‘COL2‘. APPEND color.
    CONCATENATE l_char ‘01‘ INTO itab_test3-col2.

color-color-int = ‘1‘.
    color-color-inv = ‘0‘.
    color-fieldname = ‘COL3‘. APPEND color.
    CONCATENATE l_char ‘10‘ INTO itab_test3-col3.

itab_test3-color[] = color[].
    APPEND itab_test3.

ENDWHILE.

ENDFORM.                    "create_data

************************************************************************
FORM fieldcat_build.
  DATA: BEGIN OF fc_struct,
          tabname(10),
          fieldname(5),
          seltext_m(5),
          emphasize(4),
        END OF fc_struct.
  DEFINE ac.
    clear: fc,fc2,fc_struct.
    fc_struct = &1.
    fc-tabname   = fc_struct-tabname.  "内表名
    fc-fieldname = fc_struct-fieldname. "字段名
    fc-seltext_m = fc_struct-seltext_m. "字段描述
    fc-emphasize = fc_struct-emphasize. "列颜色
    append fc.

fc2-tabname   = fc_struct-tabname.  "内表名
    fc2-fieldname = fc_struct-fieldname. "字段名
    fc2-seltext_m = fc_struct-seltext_m. "字段描述
    append fc2.

if fc3-fieldname < ‘COL4‘.
      fc3-tabname   = fc_struct-tabname.  "内表名
      fc3-fieldname = fc_struct-fieldname. "字段名
      fc3-seltext_m = fc_struct-seltext_m. "字段描述
      append fc3.
    endif.
  END-OF-DEFINITION.

ac ‘ITAB_TEST COL1 COL1 C100‘.
  ac ‘ITAB_TEST COL2 COL2 C200‘.
  ac ‘ITAB_TEST COL3 COL3 C300‘.
  ac ‘ITAB_TEST COL4 COL4 C400‘.
  ac ‘ITAB_TEST COL5 COL5 C500‘.
  ac ‘ITAB_TEST COL6 COL6 C600‘.

ENDFORM.                    "fieldcat_build

*&---------------------------------------------------------------------*
*&      Form  show_alv
*&---------------------------------------------------------------------*
*      显示内表 1
*----------------------------------------------------------------------*
FORM show_alv.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
    EXPORTING
      i_callback_program      = sy-repid
      it_fieldcat             = fc[]
      i_callback_user_command = ‘PROCESS_USER_COMMAND_1‘
      i_save                  = ‘A‘
    TABLES
      t_outtab                = itab_test
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.

IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                    "show_alv

*&---------------------------------------------------------------------*
*&      Form  PROCESS_USER_COMMAND_1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->UCOMM        text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM process_user_command_1 USING ucomm
               rs_selfield TYPE slis_selfield.

IF rs_selfield-fieldname <> space AND rs_selfield-tabindex > 0.
    PERFORM show_alv_2.
  ENDIF.

ENDFORM.                    "PROCESS_USER_COMMAND_1

*&---------------------------------------------------------------------*
*&      Form  show_alv_2
*&---------------------------------------------------------------------*
*       显示内表 2
*----------------------------------------------------------------------*
FORM show_alv_2.
  DATA: alv_layout       TYPE slis_layout_alv.

alv_layout-info_fieldname = ‘COLOR‘.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
    EXPORTING
      i_callback_program      = sy-repid
      it_fieldcat             = fc2[]
      i_callback_user_command = ‘PROCESS_USER_COMMAND_2‘
      is_layout               = alv_layout
      i_save                  = ‘U‘
    TABLES
      t_outtab                = itab_test2
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.

IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                                                    "show_alv_2

*&---------------------------------------------------------------------*
*&      Form  PROCESS_USER_COMMAND_2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->UCOMM        text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM process_user_command_2 USING ucomm
               rs_selfield TYPE slis_selfield.

IF rs_selfield-fieldname <> space AND rs_selfield-tabindex > 0.
    PERFORM show_alv_3.
  ENDIF.

ENDFORM.                    "PROCESS_USER_COMMAND_2

*&---------------------------------------------------------------------*
*&      Form  show_alv_3
*&---------------------------------------------------------------------*
*       显示内表 3
*----------------------------------------------------------------------*
FORM show_alv_3.
  DATA: alv_layout       TYPE slis_layout_alv.

alv_layout-coltab_fieldname = ‘COLOR‘.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
    EXPORTING
      i_callback_program = sy-repid
      it_fieldcat        = fc3[]
      is_layout          = alv_layout
      i_save             = ‘U‘
    TABLES
      t_outtab           = itab_test3
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.

IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                                                    "show_alv_3

时间: 2024-12-04 13:52:22

ALV行 列颜色设置的相关文章

函数alv下的颜色设置

ABAP中的颜色代码是由4位字都组成的 cxyz    c:color的简写,颜色代码均以C开头 x:标准色代码,SAP中一共有7个标准色    y:反转颜色启用/关闭 1/0 z:增强颜色启用/关闭 1/0 标准色代码一览表 X 颜色 主要用处 1 灰蓝色 抬头.标题栏 2 浅灰色 列表内容 3 黄色 汇总 4 蓝色 关键字 5 绿色 正确 6 红色 错误 7 橙色 控制 如: 单元格颜色控制: 定义最后显示内表的时候要在里面增加一个 colour  type lvc_T_scol,类型,这是

终端颜色设置

转载 命令行终端颜色设置 Linux给人最大的享受就是可以根据个人喜好去定制令自己舒服的系统配置,像终端颜色的设置就是一个典型的例子. 图1 系统默认状态下的终端显示 在没有经过自定义配置的终端下工作久了,难免容易疲劳,因为所有输入输出都是一个颜色,对查找一些命令的执行结果很不方便.除了颜色,默认终端配置下的长 长的路径名也是一个让人比较蛋疼的地方.经过网上一番资料查找,才知道,原来对终端的配置,可以写到不同的文件之中,例如:-/.bashrc./etc /bash.bashrc./etc/pr

ALV的颜色分为行的颜色、列的颜色和CELL的颜色

ALV的颜色分为行的颜色.列的颜色和CELL的颜色.任务要求,将一定的Tabellenfeld 用黄色填充,也就是说CELL的颜色 DATA:ls_cellcolorTYPElvc_s_scol,coltabTYPElvc_t_scol,colorTYPElvc_s_colo. DATA: BEGIN OFfield_struc, " 在表格结构中定义颜色            ....           CELLCOLORTYPElvc_t_scol,END OFfield_struc.vi

C#对gridView的列和行以及单元格进行颜色设置

①字体 其中gridView是gridView的Name(下同) gridView[column, row].Style.ForeColor = Color.Red;//设置第row行column列的单元格字体颜色 gridView.Rows[row].DefaultCellStyle.ForeColor = Color.Red;//设置第row行的行字体颜色gridView.Columns[column].DefaultCellStyle.ForeColor = Color.Yellow;//

ABAP ALV 示例:ALV单元格颜色,ALV行颜色,ALV双击事件,数据合计,ALV表头,ALV GUI STATUS

1 *& Program Name: ZMFIX_ASSET 2 *& 3 *& Description: 资产信息一览 4 *& Date/Author:  5 6 *& Table Update: 7 *& Special Logic: 8 *& Include: 9 *----------------------------------------------------------------------* 10 * MODIFICATION

cxgrid行,列颜色控制

在cxGridDBTableView的OnCustomDrawCell事件中 begin AText:=IntToStr(ARecord.Index); end; procedure TMain_Form.cxgrdbtblvwGrid1DBTableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone:

EXTJS根据值Value改变gridpanel单元格背景颜色或者设置整行字体颜色

第一步. 设置样式 .reportColor4{background: #93A9C1;}.reportColor5{background: #EEEEEE;} 第二步.修改单元格样式 header : '流通类型',width : 80,sortable : true,align : 'center',dataIndex: 'BR_TYPE',// css : 'background: #acdaf4;', // ----- 设置整个单元格的样式,但是不能根据条件变化renderer:func

Dynamic CRM 2013学习笔记(二十六)Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色

上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数可以多选或全选:动态地显示列,列不是固定的:根据某一字段的值来动态地显示整行字体的颜色. 下面介绍详细的方法: 一.动态参数.参数多选全选 动态参数: 首先定义一个Dataset: SELECT DISTINCT new_countryId, new_codename AS name FROM ne

雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色

jQuery EasyUI 数据网格 - 条件设置行背景颜色 本教程将向您展示如何根据一些条件改变数据网格(datagrid)组件的行样式.当 listprice 值大于 50 时,我们将为该行设置不同的颜色. 数据网格(datagrid)的 rowStyler 函数的设计目的是允许您自定义行样式.以下代码展示如何改变行样式: url="data/datagrid_data.json" singleSelect="true" fitColumns="tru