REPORT  z_colour NO STANDARD PAGE HEADING  .
TABLES :pa0002.
  TYPE-POOLS: slis.                 "ALV Declarations
DATA : BEGIN OF it OCCURS 0,
      pernr LIKE pa0001-pernr,
      rufnm LIKE pa0002-rufnm,
      cell_colour TYPE lvc_t_scol,    "Cell colour
       END OF it.

SELECTION-SCREEN BEGIN OF BLOCK main WITH FRAME.
SELECT-OPTIONS :s_pnum  FOR pa0002-pernr .
SELECTION-SCREEN END OF BLOCK main.

*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH
HEADER LINE,
      gd_layout    TYPE slis_layout_alv,
      gd_repid     LIKE sy-repid,
      gt_sort     TYPE slis_t_sortinfo_alv.

* To colour a cell.
  DATA ls_cellcolour TYPE lvc_s_scol.

START-OF-SELECTION.
  PERFORM data_retrieval.
  PERFORM build_fieldcatalog.
  PERFORM build_layout.
  PERFORM display_alv_report.
END-OF-SELECTION.
  FREE : it.

FORM build_fieldcatalog .
  fieldcatalog-fieldname   = 'PERNR'.
  fieldcatalog-seltext_m   = 'Personnel No.'.
  fieldcatalog-col_pos     =  0.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'RUFNM'.
  fieldcatalog-seltext_m   = 'Name'.
  fieldcatalog-col_pos     =  0.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.
ENDFORM.

FORM build_layout .
  gd_layout-no_input          = 'X'.
  gd_layout-colwidth_optimize = 'X'.
  gd_layout-totals_text       = 'Totals'(256).
  gd_layout-coltab_fieldname = 'CELL_COLOUR'.

ENDFORM.                    " build_layout
FORM display_alv_report .
  gd_repid = sy-repid.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = gd_repid
      is_layout                = gd_layout
      it_fieldcat              = fieldcatalog[]
      i_save                   = 'A'
    TABLES
      t_outtab                 = it
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
  IF sy-subrc <> 0.
  ENDIF.
ENDFORM.                    " display_alv_report


FORM data_retrieval .
select pernr rufnm from pa0002 into corresponding
fields of table it where pernr in s_pnum.
  LOOP AT it.
*Now based on the value of the field pernr we can
change the cell colour of the field rufnm or pernr.
    IF it-pernr eq '10001' .
      ls_cellcolour-fname = 'RUFNM'.
      ls_cellcolour-color-col = '5'.
      ls_cellcolour-color-int = '1'.
      ls_cellcolour-color-inv = '0'.
      APPEND ls_cellcolour TO it-cell_colour.
      IF sy-subrc EQ 0.
        MODIFY it.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDFORM. 


Serkan AKKAVAK
Computer Engineer
serkurumsal@yandex.com