SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software
Development resources, articles, tutorials, code samples, tools and downloads for SAP HANA and ABAP, HANA Database, SQLScript, SAP UI5, Screen Personas, Web Dynpro, Workflow


Multi Color ALV Grid Color Alternate using ALV Layout info_fname Property


For a better view in ABAP lists created using ABAP ALV objects on ABAP reports, SAP developers and ABAP programmers generally use Zebra layout style.
Using Zebra Layout in ALV Grid objects for example cl_gui_alv_grid type ALV grids, enables lists whose lines have alternating colors.
This is generally a good feature for tracing a line or tracing a row of values on an ALV Grid list object.

alv-grid-zebra-layout

Unfortunately, some times ABAP develoeperS requirements can go further than using alternating colors of subsequent rows.
For example the below screenshot is from an ABAP program which lists possible dublicate sales orders in a SAP system.
So each pair is shown in a single color and the following pair is in alternating color. Or the next pair is displayed on ALV grid with a different color.

alv-grid-multi-coloring-rows





The cl_gui_alv_grid ALV Grid object is being displayed on the sample ABAP program using the following ABAP code.
The set_table_for_first_display method of the cl_gui_alv_grid object is used with layout parameter is_layout, data table parameter it_outtab and field catalog parameter it_fieldcatalog.

CALL METHOD g_grid->set_table_for_first_display
EXPORTING
 is_layout = gs_layout
CHANGING
 it_fieldcatalog = gs_fieldcatalog
 it_outtab = gt_dublicates. " gt_sameorders. " Data
Code

Until here there is no difference from calling an ordinary ALV Grid to display on an ABAP report SAP screen.
Actually for ABAP developers, the difference is within the data table parameter it_outtab or gt_dublicates.

In the below ABAP code fragment, you can see that there is an additional column named LINE_COLOR declared in 4 character type.
We will use LINE_COLOR column to hold color information related for the row.
So we can customize different colors for each row in the data structure or in the data table itself.

TYPES :
 BEGIN OF gty_dublicates, " Includes Additional Fields to Display on ALV
  pairn TYPE I,
  vbeln LIKE vbak-vbeln,
  auart LIKE vbak-auart,
  vkorg LIKE vbak-vkorg,
  erdat LIKE vbak-erdat,
  bstnk LIKE vbak-bstnk,
  augru LIKE vbak-augru,
  createdby LIKE vbak-ernam,
  netwr LIKE vbak-netwr,
  kunnr LIKE vbak-kunnr,
  pstlz LIKE adrc-POST_CODE1,
  name1 LIKE adrc-name1,
  LINE_COLOR(4) TYPE C,
 END OF gty_dublicates.

DATA :
 gs_dublicates TYPE gty_dublicates,
 gt_dublicates TYPE TABLE OF gty_dublicates.
Code

And the ABAP code block for assigning color codes to the line_color column of each row in the internal table can be manged by using the sy-tabix counter values and the ABAP MOD arithmetic command.

DATA :
 lv_i TYPE i,
 lv_doubl(1) TYPE c,
 lv_color(4) TYPE c,

LOOP AT gt_dublicates INTO gs_dublicates.

 lv_i = sy-tabix mod 4.
 IF lv_i = 1 OR lv_i = 2.
  lv_doubl = 2. " lv_color = 'C210'
 ELSE.
  lv_doubl = 1. " lv_color = 'C110'
 ENDIF.

 CONCATENATE 'C' lv_doubl '10' INTO lv_color.

 gs_dublicates-line_color = lv_color.
 MODIFY gt_dublicates from gs_dublicates.

ENDLOOP.
Code

One last step to successfully apply different colors to cl_gui_alv_grid ALV Grid list is to set the value of the grid layout parameter gs_layout info_fname property value to column name LINE_COLOR before calling the ALV grid set_table_for_first_display method.

gs_layout-info_fname = 'LINE_COLOR'.
Code

Here ABAP programmers can find downloadable sample ABAP report for alv coloring.
Also ABAP developers will sample ABAP report at ALV Grid Color - Table Row Background Color in ALV List where all different ALV grid color combinations are used for ALV list table row background color.



SAP HANA and ABAP

Install SAP Free
CRM Companies List
Web Based CRM Software


Copyright © 2004 - 2021 Eralper YILMAZ. All rights reserved.