[REUSE_ALV_GRID_DISPLAY]如何指定单元格颜色

下面简单介绍一下使用REUSE_ALV_GRID_DISPLAY函数时,如何设定单元格颜色,方法比较简单,直接上代码:

 

*&---------------------------------------------------------------------*
*& Report ZGER_COLOR
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
report zger_color.

type-pools:slis.

data :begin of gt_flight occurs 0,
        carrid   like sflight-carrid,
        connid   like sflight-connid,
        fldatE   like sflight-fldatE,
        seatsmax like sflight-seatsmax,
        seatsocc like sflight-seatsocc,
        color    type lvc_t_scol,"保存颜色的字段
      end of gt_flight.

data gt_fielscat type slis_t_fieldcat_alv.
data ga_layout type slis_layout_alv.
data ga_col type lvc_s_scol.
data gt_coltab type lvc_t_scol.
data ga_color type lvc_s_colo.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'
  exporting
    i_program_name     = sy-repid
    i_internal_tabname 'GT_FLIGHT'
*   I_STRUCTURE_NAME   =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
    i_inclname         = sy-repid
*   I_BYPASSING_BUFFER =
*   I_BUFFER_ACTIVE    =
  changing
    ct_fieldcat        = gt_fielscat
* EXCEPTIONS
*   INCONSISTENT_INTERFACE       = 1
*   PROGRAM_ERROR      = 2
*   OTHERS             = 3
  .
if sy-subrc <> 0.
* Implement suitable error handling here
endif.


select carrid
  connid
  fldatE
  seatsmax
  seatsocc
from sflight
  into corresponding fields of table gt_flight
  up to 10 rows.

*设定颜色
ga_color-col '5'.
ga_color-int '0'.
ga_color-inv '0'.
loop at gt_flight.
* 指定第一行 SEATSOCC列单元格颜色
  if sy-tabix 1.
    ga_col-fname 'SEATSOCC'.
    ga_col-color = ga_color.
    append ga_col to gT_coltab.
    clear ga_col.
    gt_flight-color = gt_coltab.
    modify gt_flight.
  endif.
endloop.

ga_layout-coltab_fieldname 'COLOR'.

call function 'REUSE_ALV_GRID_DISPLAY'
  exporting
*   I_INTERFACE_CHECK  = ' '
*   I_BYPASSING_BUFFER = ' '
*   I_BUFFER_ACTIVE    = ' '
    i_callback_program = SY-REPID
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME   =
*   I_BACKGROUND_ID    = ' '
*   I_GRID_TITLE       =
*   I_GRID_SETTINGS    =
   IS_LAYOUT          = GA_LAYOUT
   IT_FIELDCAT        = GT_FIELSCAT
*   IT_EXCLUDING       =
*   IT_SPECIAL_GROUPS  =
*   IT_SORT            =
*   IT_FILTER          =
*   IS_SEL_HIDE        =
*   I_DEFAULT          = 'X'
*   I_SAVE             = ' '
*   IS_VARIANT         =
*   IT_EVENTS          =
*   IT_EVENT_EXIT      =
*   IS_PRINT           =
*   IS_REPREP_ID       =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE  = 0
*   I_HTML_HEIGHT_TOP  = 0
*   I_HTML_HEIGHT_END  = 0
*   IT_ALV_GRAPHICS    =
*   IT_HYPERLINK       =
*   IT_ADD_FIELDCAT    =
*   IT_EXCEPT_QINFO    =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  tables
    t_outtab           = GT_FLIGHT
* EXCEPTIONS
*   PROGRAM_ERROR      = 1
*   OTHERS             = 2
  .
if sy-subrc <> 0.
* Implement suitable error handling here
endif.

测试结果:

第一行的最后一列单元格颜色变为浅绿色。

posted @ 2020-03-21 11:10  差劲  阅读(289)  评论(0)    收藏  举报