sap alv报表的问题,如何把第一行设置为默认的,还有颜色是怎么处理的,知道的高手,麻烦指点我一下

2024年11月27日 22:22
有1个网友回答
网友(1):

  ALV GRID颜色设置分别为行,列,单元格三种,如果将字段设置为主键那么主键列会自动变为蓝色。

  列颜色的设置

  在创建列目录表时将field catalog structure 的 emphasize字段填入需要的颜色代码

  eg:

  DATA: wa_fields TYPE LINE OF slis_t_fieldcat_alv.

  wa_fields-fieldname = . "e.g. 'EBELN'.

  wa_fields-seltext_m = . "e.g '采购订单号'.

  wa_fields-emphasize = . "e.g. 'C610'.

  行颜色的设置

  在list data table中添加一个字段(CHAR4)用来存储颜色代码

  eg:

  *--- Internal table holding list data

  DATA BEGIN OF gt_list OCCURS 0 .

  INCLUDE STRUCTURE SFLIGHT .

  DATA rowcolor(4) TYPE c .

  DATA END OF gt_list .

  保存数据到list data table中的同时要把颜色字段的代码一起存入,该代码会被alv解析为行项的颜色

  初始化ALV前将颜色字段名填入layout structure.

  eg:

  ps_layout-info_fname = . "e.g. ‘ROWCOLOR’.

  单元格颜色设置

  和行颜色设置相同首先需要在list data table中添加一个字段用来存储行颜色信息,不过类型是LVC_T_SCOL

  eg:

  *--- Internal table holding list data

  DATA BEGIN OF gt_list OCCURS 0 .

  INCLUDE STRUCTURE SFLIGHT .

  DATA rowcolor(4) TYPE c .

  DATA cellcolors TYPE lvc_t_scol .

  list data table中的cellcolors字段将被用来存储单元格的颜色信息

  eg:

  DATA ls_cellcolor TYPE lvc_s_scol .

  ...

  READ TABLE gt_list INDEX 5 .

  ls_cellcolor-fname = 'SEATSOCC' .

  ls_cellcolor-color-col = '7' .

  ls_cellcolor-color-int = '1' .

  ls_cellcolor-color-inv = '0' .

  ls_callcoloe-nokeycol = '' .

  APPEND ls_cellcolor TO gt_list-cellcolors .

  MODIFY gt_list INDEX 5 .

  ALV GRID 第五条记录的SEATSOCC字段颜色将被设置为C710,如果不希望覆盖主键字段的颜色可以将ls_callcoloe-nokeycol设置为X