Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

adding color to a row in alv grid not using object oriented.

Former Member
0 Kudos

Hello Gurus.

I want to display a row in color in alv grid using normal alv, not by using object oriented programming.

I am having one of the field say spart ie division in internal table itab.

The spart has values like 12 , 45, 67, 68 ,88 ,99.

when ever spart is 12 i want to display that row in color format. Here this table is sorted by mblnr so if 1st record is 12 then may be 50 th record will be 12. so when where the record contains the value has 12 then that row should be displayed in color. So please tell me how to do it. Previously i posted the same question but i got is by using object oriented. so please tell me how to do it without using object oriented.

Thanks for all the replies.

1 REPLY 1

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Check this example code.



report zrich_0004
       no standard page heading.

type-pools slis.

data: fieldcat type slis_t_fieldcat_alv.

data: begin of imara occurs 0,
      matnr type mara-matnr,
      mtart type mara-mtart,
      maktx type makt-maktx,
      color_line(4) type c,
      tcolor type slis_t_specialcol_alv,  "cell
      end of imara.

data: xcolor type slis_specialcol_alv.

start-of-selection.

  perform get_data.
  perform write_report.


************************************************************************
*  Get_Data
************************************************************************
form get_data.

  imara-matnr = 'ABC'.
  imara-mtart = 'ZCFG'.
  imara-maktx = 'This is description for ABC'.
  append imara.

  imara-matnr = 'DEF'.
  imara-mtart = 'ZCFG'.
  imara-maktx = 'This is description for DEF'.
  append imara.

  imara-matnr = 'GHI'.
  imara-mtart = 'ZCFG'.
  imara-maktx = 'This is description for GHI'.
  append imara.

  loop at imara.

    if sy-tabix = 1.
      imara-color_line = 'C410'.   " color line
    endif.

    if sy-tabix = 2.          "color CELL
      clear xcolor.
      xcolor-fieldname = 'MTART'.
      xcolor-color-col = '3'.
      xcolor-color-int = '1'. "Intensified on/off
      xcolor-color-inv = '0'.

      append xcolor to imara-tcolor.

    endif.

    modify imara.

  endloop.

endform.

************************************************************************
*  WRITE_REPORT
************************************************************************
form write_report.

  data: layout type  slis_layout_alv.

  layout-coltab_fieldname = 'TCOLOR'.
  layout-info_fieldname = 'COLOR_LINE'.

  perform build_field_catalog.

* CALL ABAP LIST VIEWER (ALV)
  call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
            is_layout   = layout
            it_fieldcat = fieldcat
       tables
            t_outtab    = imara.

endform.

************************************************************************
* BUILD_FIELD_CATALOG
************************************************************************
form build_field_catalog.

  data: fc_tmp type slis_t_fieldcat_alv with header line.
  clear: fieldcat. refresh: fieldcat.

  clear: fc_tmp.
  fc_tmp-reptext_ddic    = 'Material Number'.
  fc_tmp-fieldname  = 'MATNR'.
  fc_tmp-tabname   = 'IMARA'.
  fc_tmp-outputlen  = '18'.
  append fc_tmp to fieldcat.

  clear: fc_tmp.
  fc_tmp-reptext_ddic    = 'Material Type'.
  fc_tmp-fieldname  = 'MTART'.
  fc_tmp-tabname   = 'IMARA'.
  fc_tmp-outputlen  = '4'.
  append fc_tmp to fieldcat.

  clear: fc_tmp.
  fc_tmp-reptext_ddic    = 'Material'.
  fc_tmp-fieldname  = 'MAKTX'.
  fc_tmp-tabname   = 'IMARA'.
  fc_tmp-outputlen  = '40'.
  fc_tmp-emphasize = 'C610'.   " color column
  append fc_tmp to fieldcat.

endform.

Regards,

Rich Heilman