Cell Color in ABAP ALV Grid Report | Cell Color in ALV Grid Display

Cell Color In Abap Alv Grid Report | Cell Color In Alv Grid Display | How do you color a cell in ALV grid | ALV ABAP Source Code | LVC_T_SCOL | LVC_S_SCOL

In this Article we will learn How do you color a cell in ALV grid Report and how to add color in whole row of ALV Grid Report.

How do you color a cell in ALV grid Report

Let’s Take a Scenario

If we display a log report as in the image below, where we need to color the column cell “Message Type”, “Content Number” and the Status column data cell if there is an error in the column. so we move on to the next section where we’ll change the color to red in the cells where an error occurs as per the scenario.

Cell Color in ABAP ALV Grid Report
This is the simple image without color

To Achieve this scenario we will include a field in Structure Log where our output column belongs. Field type should be LVC_T_SCOL ( Table type for cell coloring) .

Cell Color in ABAP ALV Grid Report

To perform the above task we have to use some specific fields, table type and structure which is explaining below with pictures and steps.

  1. Create an ABAP Program.

2. Add an field called ‘CELLCOLOR’ of type LVC_T_SCOL (table type) in your structure.

LVC_T_SCOL

3. Define a work area WA_CELLCOLOR of type LVC_S_SCOL(Structure) for table type ‘CELLCOLOR’ defined in our structure.

LVC_T_SCOL

4. Use the field ‘CELLCOLOR’ based on our requirement.

LVC_T_SCOL

5. Assign ‘CELLCOLOR’ to WA_LAYOUT-COLTAB_FIELDNAME of ALV Grid Layout structure.

LVC_T_SCOL

6. Create an ALV report by function module REUSE_ALV_GRID_DISPLAY.

LVC_T_SCOL :-Table Type is used to define internal table for color field in structure using to display in ALV Report.

LVC_T_SCOL

LVC_S_SCOL :- LVC_S_SCOL is structure used to define table type LVC_T_SCOL. This structure has Field Name type LVC_FNAME, Color is structure type LVC_S_COLO.

LVC_S_SCOL

LVC_S_COLO :- LVC_S_COLO structure has

COL : – field used for Color Code (1-Blue, 2-Grey, 3-Yellow, 4-Blue/Grey, 5-Green, 6-Red, 7-Orange)
INT :- Field is used for intensified , 0 = Intensified off, 1 = Intensified on.
INV :- Field used for background color or Text color, 1 = Text Color, 0 = Background color.

LVC_S_COLO

ALV ABAP Source Code

*&---------------------------------------------------------------------*
*& Report  ZPS_SALESORG_EXTEND
*&
*&---------------------------------------------------------------------*
*& Created By : ---- Pankaj Singh
*& Requested By : ---- Manoj Rawat(PPC)
*& Description : ---- Sales Organization and distribution channel Extend in Mass Materials.
*& TR ----- AEDK908881
*& T_Code : ---- ZIT_SALESEXTND
*&---------------------------------------------------------------------*
REPORT ZPS_SALESORG_EXTEND.
TABLES: MARA, MVKE.

TYPES: BEGIN OF TY_LOG,
         MATNR        TYPE MARA-MATNR,
         MSG_TYPE(10) TYPE C,
         STATUS       TYPE STRING,
         CELLCOLOR    TYPE LVC_T_SCOL,
       END OF TY_LOG.

DATA: IT_LOG TYPE TABLE OF TY_LOG,
      WA_LOG TYPE           TY_LOG.

DATA: WA_HEADER    TYPE BAPIMATHEAD,
      WA_SALEDATA  TYPE BAPI_MVKE,
      WA_SALEDATAX TYPE BAPI_MVKEX,
      WA_RETURN    TYPE BAPIRET2.
DATA: IT_ZCONTROL TYPE TABLE OF ZCONTROL1,
      WA_ZCONTROL LIKE LINE OF IT_ZCONTROL.

DATA: IT_FCAT      TYPE SLIS_T_FIELDCAT_ALV,
      WA_FCAT      TYPE SLIS_FIELDCAT_ALV,
      WA_LAYOUT    TYPE SLIS_LAYOUT_ALV,
      WA_CELLCOLOR TYPE LVC_S_SCOL.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR NO INTERVALS.
PARAMETERS:     P_VKORG TYPE MVKE-VKORG OBLIGATORY DEFAULT '1000',
                P_VTWEG TYPE MVKE-VTWEG.

SELECTION-SCREEN: END OF BLOCK B1.

AT SELECTION-SCREEN ON S_MATNR.
  PERFORM VALIDATE_MATNR.



START-OF-SELECTION.

  SELECT * FROM MVKE INTO TABLE @DATA(IT_MVKE) WHERE MATNR IN @S_MATNR.
  SELECT * FROM MARA INTO TABLE @DATA(IT_MARA) WHERE MATNR IN @S_MATNR.
  SELECT * FROM ZCONTROL1 INTO TABLE IT_ZCONTROL.

  REFRESH: IT_LOG.

  LOOP AT S_MATNR.

    READ TABLE IT_MVKE TRANSPORTING NO FIELDS WITH KEY MATNR = S_MATNR-LOW
                                                        VKORG = P_VKORG
                                                         VTWEG = P_VTWEG BINARY SEARCH.

    IF SY-SUBRC = 0.
      WA_LOG-MSG_TYPE = 'ERROR'.
      WA_LOG-MATNR = S_MATNR-LOW.
      CONCATENATE S_MATNR-LOW 'Material already exist at' P_VKORG ',' P_VTWEG INTO WA_LOG-STATUS SEPARATED BY SPACE.
      WA_CELLCOLOR-COLOR-COL = 6.
      WA_CELLCOLOR-COLOR-INT = 1.
      WA_CELLCOLOR-COLOR-INV = 0.
      APPEND WA_CELLCOLOR TO WA_LOG-CELLCOLOR.
      APPEND WA_LOG TO IT_LOG.
      CLEAR: WA_LOG, S_MATNR, WA_CELLCOLOR.
      CONTINUE.
    ENDIF.





    READ TABLE IT_MARA INTO DATA(WA_MARA) WITH KEY MATNR = S_MATNR-LOW.
*    SELECT COUNT(*) FROM ZMM_PRD_TYP WHERE PRDCAT = 'RM-COM'.
*  READ TABLE IT_ZCONTROL INTO WA_ZCONTROL WITH KEY MTART = WA_MARA-MTART BINARY SEARCH.

*      SELECT MTART, MBRSH FROM MARA INTO @DATA(LV_HDATA) WHERE MATNR = @S_MATNR-LOW.
*  IF SY-SUBRC <> 0.

    IF WA_MARA-MTART = 'ZFWR' OR WA_MARA-MTART = 'ZGFG' OR WA_MARA-MTART = 'ZAFG'.
      READ TABLE IT_MVKE INTO DATA(WA_MVKE) WITH KEY MATNR = S_MATNR-LOW
                                                VKORG = '1000'
                                                VTWEG = '50'.
    ELSE.
      READ TABLE IT_MVKE INTO WA_MVKE WITH KEY MATNR = S_MATNR-LOW
                                                VKORG = '1000'
                                                VTWEG = '90'.


    ENDIF.

    WA_HEADER-MATERIAL = S_MATNR-LOW.
    WA_HEADER-MATL_TYPE = WA_MARA-MTART.
    WA_HEADER-IND_SECTOR = WA_MARA-MBRSH.
    WA_HEADER-SALES_VIEW = 'X'.
    WA_SALEDATA-SALES_ORG = P_VKORG.
    WA_SALEDATAX-SALES_ORG = P_VKORG.
    WA_SALEDATA-DISTR_CHAN = P_VTWEG.
    WA_SALEDATAX-DISTR_CHAN = P_VTWEG.

    WA_SALEDATA-CASH_DISC = WA_MVKE-SKTOF.
    WA_SALEDATAX-CASH_DISC = 'X'.
    WA_SALEDATA-ITEM_CAT = WA_MVKE-MTPOS.
    WA_SALEDATAX-ITEM_CAT = 'X'.
    WA_SALEDATA-MATL_STATS = WA_MVKE-VERSG.
    WA_SALEDATAX-MATL_STATS = 'X'.
    WA_SALEDATA-ACCT_ASSGT = WA_MVKE-KTGRM.
    WA_SALEDATAX-ACCT_ASSGT = 'X'.
    WA_SALEDATA-MAT_PR_GRP = WA_MVKE-KONDM.
    WA_SALEDATAX-MAT_PR_GRP = 'X'.
    WA_SALEDATA-MATL_GRP_1 = WA_MVKE-MVGR1.
    WA_SALEDATAX-MATL_GRP_1 = 'X'.
    WA_SALEDATA-MATL_GRP_2 = WA_MVKE-MVGR2.
    WA_SALEDATAX-MATL_GRP_2 = 'X'.
    WA_SALEDATA-MATL_GRP_3 = WA_MVKE-MVGR3.
    WA_SALEDATAX-MATL_GRP_3 = 'X'.
    WA_SALEDATA-MATL_GRP_4 = WA_MVKE-MVGR4.
    WA_SALEDATAX-MATL_GRP_4 = 'X'.
    WA_SALEDATA-MATL_GRP_5 = WA_MVKE-MVGR5.
    WA_SALEDATAX-MATL_GRP_5 = 'X'.


    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        HEADDATA   = WA_HEADER
        SALESDATA  = WA_SALEDATA
        SALESDATAX = WA_SALEDATAX
      IMPORTING
        RETURN     = WA_RETURN.



    IF WA_RETURN-TYPE = 'S'.
      WA_LOG-MSG_TYPE ='SUCCESS'.
      WA_LOG-MATNR = S_MATNR-LOW.
      CONCATENATE S_MATNR-LOW 'Material extended at' P_VKORG ',' P_VTWEG INTO WA_LOG-STATUS SEPARATED BY SPACE.
      APPEND WA_LOG TO IT_LOG.
      CLEAR: WA_LOG, S_MATNR.

    ELSE.
      WA_LOG-MSG_TYPE = 'ERROR'.
      WA_LOG-MATNR = S_MATNR-LOW.
      CONCATENATE S_MATNR-LOW WA_RETURN-MESSAGE INTO WA_LOG-STATUS SEPARATED BY SPACE.
      WA_CELLCOLOR-COLOR-COL = 6.
      WA_CELLCOLOR-COLOR-INT = 1.
      WA_CELLCOLOR-COLOR-INV = 0.
      APPEND WA_CELLCOLOR TO WA_LOG-CELLCOLOR.
      APPEND WA_LOG TO IT_LOG.
      CLEAR: WA_LOG, S_MATNR, WA_CELLCOLOR.


    ENDIF.







    CLEAR: WA_HEADER, WA_SALEDATA, WA_SALEDATAX, WA_RETURN, WA_MARA, WA_ZCONTROL, WA_MVKE.

  ENDLOOP.

  REFRESH IT_FCAT.
  CLEAR: WA_FCAT, WA_LAYOUT.

  WA_FCAT-FIELDNAME = 'MSG_TYPE'.
  WA_FCAT-SELTEXT_M = 'MESSAGE TYPE'.
  WA_FCAT-TABNAME = 'IT_LOG'.
  APPEND WA_FCAT TO IT_FCAT.
  CLEAR: WA_FCAT.

  WA_FCAT-FIELDNAME = 'MATNR'.
  WA_FCAT-SELTEXT_M = 'MATERIAL NUMBER'.
  WA_FCAT-TABNAME = 'IT_LOG'.
  APPEND WA_FCAT TO IT_FCAT.
  CLEAR: WA_FCAT.

  WA_FCAT-FIELDNAME = 'STATUS'.
  WA_FCAT-SELTEXT_M = 'STATUS'.
  WA_FCAT-TABNAME = 'IT_LOG'.
  APPEND WA_FCAT TO IT_FCAT.
  CLEAR: WA_FCAT.

  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  WA_LAYOUT-ZEBRA = 'X'.
  WA_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM     = SY-REPID
      I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
      IS_LAYOUT              = WA_LAYOUT
      IT_FIELDCAT            = IT_FCAT
    TABLES
      T_OUTTAB               = IT_LOG
* EXCEPTIONS
*     PROGRAM_ERROR          = 1
*     OTHERS                 = 2
    .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

FORM TOP_OF_PAGE.
  DATA: T_HEADER      TYPE SLIS_T_LISTHEADER,
        WA_HEADER     TYPE SLIS_LISTHEADER,
        T_LINE        LIKE WA_HEADER-INFO,
        LD_LINES      TYPE I,
        LD_LINESC(10) TYPE C.

* Title


  WA_HEADER-TYP  = 'H'.
  WA_HEADER-INFO = 'Extend Sales Organization and Distribution Channel'.
  APPEND WA_HEADER TO T_HEADER.
  CLEAR WA_HEADER.

  DATA : DATE(10) TYPE C.

  CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
    EXPORTING
      DATE_INTERNAL            = SY-DATUM
    IMPORTING
      DATE_EXTERNAL            = DATE
    EXCEPTIONS
      DATE_INTERNAL_IS_INVALID = 1
      OTHERS                   = 2.
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  WA_HEADER-TYP  = 'S'.
  WA_HEADER-KEY  = 'Dated'.
  WA_HEADER-INFO =  DATE.
  APPEND WA_HEADER TO T_HEADER.
  CLEAR WA_HEADER.




  WA_HEADER-TYP  = 'S'.
  WA_HEADER-KEY = 'RUN BY:'.
  WA_HEADER-INFO = SY-UNAME.
  APPEND WA_HEADER TO T_HEADER.
  CLEAR: WA_HEADER.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = T_HEADER.


ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  VALIDATE_MATNR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM VALIDATE_MATNR .

  IF S_MATNR IS INITIAL.
    MESSAGE 'Please Enter Material Number' TYPE 'E'.
  ELSE.
    LOOP AT S_MATNR.
      SELECT COUNT(*) FROM MARA WHERE MATNR = S_MATNR-LOW.
      IF SY-SUBRC <> 0.
        MESSAGE 'Enter correct material number' TYPE 'E'.
        EXIT.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFORM.

Result : Cell Color in ALV Grid Display

Cell Color in ALV Grid Display

You Can Also check our Other similar Articles

Thanks for the visit….

%d bloggers like this: