Saturday, September 22, 2018

SALV 9 : Adding Defualt PF Status and Button in Application Toolbar

Note: In this tutorial First we need to copy Status from Standard Program so that please find the Process.

Step 1 : Execute SE41.
























*&---------------------------------------------------------------------*
*& Report  ZSALV_REPORT_SYMBOL
*&
*&---------------------------------------------------------------------*
*& In This Tutorial i will show you How to Add Button in Application Toolbar
*& Using PF_STATUS in SALV ALV
*&---------------------------------------------------------------------*

REPORT  ZSALV_TOP_END_LIST.

*& Constant Declaration.
DATA LV_EBELN TYPE EKKO-EBELN.

*& Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_EBELN FOR LV_EBELN.
SELECTION-SCREEN END OF BLOCK A1.

CLASS CL_DATA DEFINITION.

  PUBLIC SECTION.

*& Structure for Purchasing Document Header Table
    TYPES BEGIN OF TY_EKKO,
                      EBELN  TYPE EBELN,   "Purchasing Document Number
                      BUKRS  TYPE BUKRS,   "Company Code
                      BSTYP  TYPE EBSTYP,  "Purchasing Document Category
                      BSART  TYPE ESART,   "Purchasing Document Type
                      BEDAT  TYPE EBDAT,   "Purchasing Document Date
                   END OF TY_EKKO,

*& Structure for Purchasing Document Item Table
                   BEGIN OF TY_EKPO,
                      EBELN  TYPE EBELN,   "Purchasing Document Number
                      EBELP  TYPE EBELP,   "Item Number of Purchasing Document
                      MATNR  TYPE MATNR,   "Material Number
                      MENGE  TYPE BSTMG,   "Purchase Order Quantity
                      MEINS  TYPE BSTME,   "Purchase Order Unit of Measure
                      NETPR  TYPE BPREI,   "Net Price in Purchasing Document (
                   END OF TY_EKPO.

*& Final Output stucture
    TYPES BEGIN OF TY_FINAL,
                       CHECK TYPE SAP_BOOL,
                       EBELN TYPE EBELN,   "Purchasing Document Number
                       BSART TYPE ESART,   "Purchasing Document Type
                       BEDAT TYPE EBDAT,   "Purchasing Document Date
                       MATNR TYPE MATNR,   "Material Number
                       MENGE TYPE BSTMG,   "Purchase Order Quantity
                       MEINS TYPE BSTME,   "Purchase Order Unit of Measure
                       NETPR TYPE BPREI,   "Net Price in Purchasing Document 
                    END OF TY_FINAL.

*& Internal Table Declration
    DATA GT_EKKO  TYPE TABLE OF TY_EKKO INITIAL SIZE 1,
                  GT_EKPO  TYPE TABLE OF TY_EKPO INITIAL SIZE 1,
                  GT_FINAL TYPE TABLE OF TY_FINAL INITIAL SIZE 1.

*& Workarea Declaration.
    DATA GS_FINAL TYPE TY_FINAL,
                  GS_EKKO  TYPE TY_EKKO,
                  GS_EKPO  TYPE TY_EKPO.

*& Declare Variable for Class.
    DATA LO_ALV     TYPE REF TO CL_SALV_TABLE,
                  LO_COLUMNS TYPE REF TO CL_SALV_COLUMNS,
                  LO_COLUMN  TYPE REF TO CL_SALV_COLUMN_LIST,
                  LO_CHECK   TYPE REF TO CL_SALV_COLUMN_LIST,
                  LO_EVENT   TYPE REF TO CL_SALV_EVENTS_TABLE.

    DATA LV_NO TYPE INT4.

*& Declare Methods for Get Data and Display Data
    METHODS GET_DATA,     "Get data from Data base.
                        GET_POP_DATA"Populate Final Display Data
                        DISPLAY.      "Display Data

  PRIVATE SECTION.
    METHODS SET_PF_STATUS      "This Method Perform Sort
                CHANGING
                  CH_ALV TYPE REF TO CL_SALV_TABLE.

ENDCLASS.

CLASS CL_CLICK DEFINITION.
  PUBLIC SECTION.
    METHODS CHECK_BOX
                    FOR EVENT LINK_CLICK OF CL_SALV_EVENTS_TABLE
                        IMPORTING ROW COLUMN.

    METHODS BUTTON
                 FOR EVENT IF_SALV_EVENTS_FUNCTIONS~ADDED_FUNCTION
                         OF CL_SALV_EVENTS_TABLE
                            IMPORTING E_SALV_FUNCTION.

ENDCLASS.


*& Start of Selection
START-OF-SELECTION.

*& Refence for Cl_DATA
  DATA LO_CL_DATA TYPE REF TO CL_DATA.

*& Object for CL_DATA Class.
  CREATE OBJECT LO_CL_DATA.

*& Call the GET_DATA Method.
  LO_CL_DATA->GET_DATA).

*& Call the GET_POP_DATA Method.
  LO_CL_DATA->GET_POP_DATA).

*& Call the DISPLAY Method.
  LO_CL_DATA->DISPLAY).


CLASS CL_DATA IMPLEMENTATION.

*&This Method is used to Get data from Data base
  METHOD GET_DATA.

    SELECT EBELN
                  BUKRS
                  BSTYP
                  BSART
                  BEDAT
        FROM EKKO INTO TABLE GT_EKKO WHERE EBELN IN S_EBELN.

    IF GT_EKKO[] IS NOT INITIAL.
      SORT GT_EKKO BY EBELN.
    ELSE.
      MESSAGE 'Data not Found' TYPE 'E'.
    ENDIF.

    IF GT_EKKO[] IS NOT INITIAL.

      SELECT EBELN
                    EBELP
                    MATNR
                    MENGE
                    MEINS
                    NETPR
          FROM EKPO INTO TABLE GT_EKPO FOR ALL ENTRIES IN GT_EKKO
          WHERE EBELN EQ GT_EKKO-EBELN.

    ENDIF.

  ENDMETHOD.

*& This Method is used to Populate final display Data
  METHOD GET_POP_DATA.

    LOOP AT GT_EKPO INTO GS_EKPO.

      GS_FINAL-EBELN GS_EKPO-EBELN.
      GS_FINAL-MATNR GS_EKPO-MATNR.
      GS_FINAL-MENGE GS_EKPO-MENGE.
      GS_FINAL-MEINS GS_EKPO-MEINS.
      GS_FINAL-NETPR GS_EKPO-NETPR.

      CLEAR GS_EKKO.
      READ TABLE GT_EKKO INTO GS_EKKO WITH KEY EBELN GS_EKPO-EBELN.
      IF SY-SUBRC EQ 0.
        GS_FINAL-BSART GS_EKKO-BSART.
        GS_FINAL-BEDAT GS_EKKO-BEDAT.
      ENDIF.

      APPEND GS_FINAL TO GT_FINAL.
      CLEAR GS_FINAL.

    ENDLOOP.

  ENDMETHOD.

*& This Method is used to Display Data
  METHOD DISPLAY.

    DATA LO_CLICK TYPE REF TO CL_CLICK.

*& We call the Factory Method to get the instance of the ALV.

    TRY.
        CALL METHOD CL_SALV_TABLE=>FACTORY
*      EXPORTING
*        LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE
*        R_CONTAINER    =
*        CONTAINER_NAME =
      IMPORTING
        R_SALV_TABLE    LO_ALV
          CHANGING
            T_TABLE     GT_FINAL
            .
      CATCH CX_SALV_MSG .
    ENDTRY.

*& Get the all columns
    LO_COLUMNS LO_ALV->GET_COLUMNS).

*& Set Column Optimization.
    LO_COLUMNS->SET_OPTIMIZE'X' ).


*& Change the Column Heading.
    TRY.
        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'CHECK' ).
        LO_COLUMN->SET_CELL_TYPEIF_SALV_C_CELL_TYPE=>CHECKBOX_HOTSPOT ).
        LO_COLUMN->SET_OUTPUT_LENGTH10 ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'STATUS' ).
        LO_COLUMN->SET_LONG_TEXT'Status' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Status' ).
        LO_COLUMN->SET_SHORT_TEXT'Status' ).
        LO_COLUMN->SET_ICON'X' ).
        LO_COLUMN->SET_OUTPUT_LENGTH10 ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'EBELN' ).
        LO_COLUMN->SET_LONG_TEXT'Purchase Number' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Pur. Number' ).
        LO_COLUMN->SET_SHORT_TEXT'PO Number' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'MATNR' ).
        LO_COLUMN->SET_LONG_TEXT'Material Code' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Material Number' ).
        LO_COLUMN->SET_SHORT_TEXT'Material' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'BSART' ).
        LO_COLUMN->SET_LONG_TEXT'Document Type' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Document Type' ).
        LO_COLUMN->SET_SHORT_TEXT'Doc.Type' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'BEDAT' ).
        LO_COLUMN->SET_LONG_TEXT'Document Date' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Document Date' ).
        LO_COLUMN->SET_SHORT_TEXT'Doc. Date' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'MEINS' ).
        LO_COLUMN->SET_LONG_TEXT'Unit of Mesure' ).
        LO_COLUMN->SET_MEDIUM_TEXT'UOM' ).
        LO_COLUMN->SET_SHORT_TEXT'UOM' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'MENGE' ).
        LO_COLUMN->SET_LONG_TEXT'Po Quantity' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Quantity' ).
        LO_COLUMN->SET_SHORT_TEXT'Qty' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'NETPR' ).
        LO_COLUMN->SET_LONG_TEXT'PO Price' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Price' ).
        LO_COLUMN->SET_SHORT_TEXT'Price' ).

      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.

    "Call Sort Method
    CALL METHOD SET_PF_STATUS
      CHANGING
        CH_ALV LO_ALV.

    LO_EVENT LO_ALV->GET_EVENT).

    CREATE OBJECT LO_CLICK.
    SET HANDLER LO_CLICK->BUTTON FOR LO_EVENT.
    SET HANDLER LO_CLICK->CHECK_BOX FOR LO_EVENT.

*& Here we will call the display method to get the output on the screen
    LO_ALV->DISPLAY).

  ENDMETHOD.

  METHOD SET_PF_STATUS.

    TRY.

      CALL METHOD CH_ALV->SET_SCREEN_STATUS
        EXPORTING
          REPORT        SY-REPID
          PFSTATUS      'STATUS'
          SET_FUNCTIONS CH_ALV->C_FUNCTIONS_ALL.

    ENDTRY.


  ENDMETHOD.

ENDCLASS.

CLASS CL_CLICK IMPLEMENTATION.

  "Enable Checkbox Value
  METHOD CHECK_BOX.

    FIELD-SYMBOLS <FS_DATA> LIKE LINE OF LO_CL_DATA->GT_FINAL.

    READ TABLE LO_CL_DATA->GT_FINAL ASSIGNING <FS_DATA> INDEX ROW.
    IF SY-SUBRC IS INITIAL.
      <FS_DATA>-CHECK 'X'.
    ELSE.
      CLEAR <FS_DATA>-CHECK.
    ENDIF.

    "Update Check box Value in ALV
    LO_CL_DATA->LO_ALV->REFRESH).

  ENDMETHOD.

  METHOD BUTTON.

    "Perform Download Button
    IF SY-UCOMM EQ '&DOWN'.

      DELETE LO_CL_DATA->GT_FINAL WHERE CHECK NE 'X'.

      CALL FUNCTION 'DOWNLOAD'
        TABLES
          DATA_TAB LO_CL_DATA->GT_FINAL.

    ENDIF.

  ENDMETHOD.

ENDCLASS.




Output: 



























Download Source Code in PDF Format.

Download Source Code in Text Format.

SALV 8 : ICONS(Traffic Signal) and Tooltrips

*&---------------------------------------------------------------------*
*& Report  ZSALV_REPORT_SYMBOL
*&
*&---------------------------------------------------------------------*
*& In This Tutorial i will show you how to Display Trafic Signal,
*& Symbol and Tooltrip (Signal Description).
*&---------------------------------------------------------------------*

REPORT  ZSALV_REPORT_SYMBOL.

*& Constant Declaration.
DATA LV_EBELN TYPE EKKO-EBELN.

*& Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_EBELN FOR LV_EBELN.
SELECTION-SCREEN END OF BLOCK A1.

CLASS CL_DATA DEFINITION.

  PUBLIC SECTION.

*& Structure for Purchasing Document Header Table
    TYPES BEGIN OF TY_EKKO,
              EBELN  TYPE EBELN,   "Purchasing Document Number
              BUKRS  TYPE BUKRS,   "Company Code
              BSTYP  TYPE EBSTYP,  "Purchasing Document Category
              BSART  TYPE ESART,   "Purchasing Document Type
              BEDAT  TYPE EBDAT,   "Purchasing Document Date
            END OF TY_EKKO,

*& Structure for Purchasing Document Item Table
            BEGIN OF TY_EKPO,
              EBELN  TYPE EBELN,   "Purchasing Document Number
              EBELP  TYPE EBELP,   "Item Number of Purchasing Document
              MATNR  TYPE MATNR,   "Material Number
              MENGE  TYPE BSTMG,   "Purchase Order Quantity
              MEINS  TYPE BSTME,   "Purchase Order Unit of Measure
              NETPR  TYPE BPREI,   "Net Price in Purchasing Document (in Document Currency)
           END OF TY_EKPO.

*& Final Output stucture
    TYPES BEGIN OF TY_FINAL,
              STATUS TYPE CHAR10,
              EBELN  TYPE EBELN,   "Purchasing Document Number
              BSART  TYPE ESART,   "Purchasing Document Type
              BEDAT  TYPE EBDAT,   "Purchasing Document Date
              MATNR  TYPE MATNR,   "Material Number
              MENGE  TYPE BSTMG,   "Purchase Order Quantity
              MEINS  TYPE BSTME,   "Purchase Order Unit of Measure
              NETPR  TYPE BPREI,   "Net Price in Purchasing Document (in Document Currency)
            END OF TY_FINAL.

*& Internal Table Declration
    DATA GT_EKKO  TYPE TABLE OF TY_EKKO INITIAL SIZE 1,
           GT_EKPO  TYPE TABLE OF TY_EKPO INITIAL SIZE 1,
           GT_FINAL TYPE TABLE OF TY_FINAL INITIAL SIZE 1.

*& Workarea Declaration.
    DATA GS_FINAL TYPE TY_FINAL,
           GS_EKKO  TYPE TY_EKKO,
           GS_EKPO  TYPE TY_EKPO.

*& Declare Variable for Class.
    DATA LO_ALV                 TYPE REF TO CL_SALV_TABLE,
           LO_COLUMNS             TYPE REF TO CL_SALV_COLUMNS,
           LO_COLUMN              TYPE REF TO CL_SALV_COLUMN_LIST,
           LO_FUNCTIONAL_SETTING  TYPE REF TO CL_SALV_FUNCTIONAL_SETTINGS,
           LO_FUNCTION_LIST       TYPE REF TO CL_SALV_FUNCTIONS_LIST,
           LO_TOOLTIPS            TYPE REF TO CL_SALV_TOOLTIPS,
           LV_VALUE               TYPE LVC_VALUE.

    DATA LV_NO TYPE INT4.

*& Declare Methods for Get Data and Display Data
    METHODS GET_DATA,     "Get data from Data base.
              GET_POP_DATA"Populate Final Display Data
              DISPLAY.      "Display Data

ENDCLASS.

*& Start of Selection
START-OF-SELECTION.

*& Refence for Cl_DATA
  DATA LO_CL_DATA TYPE REF TO CL_DATA.

*& Object for CL_DATA Class.
  CREATE OBJECT LO_CL_DATA.

*& Call the GET_DATA Method.
  LO_CL_DATA->GET_DATA).

*& Call the GET_POP_DATA Method.
  LO_CL_DATA->GET_POP_DATA).

*& Call the DISPLAY Method.
  LO_CL_DATA->DISPLAY).


CLASS CL_DATA IMPLEMENTATION.

*&This Method is used to Get data from Data base
  METHOD GET_DATA.

    SELECT EBELN
           BUKRS
           BSTYP
           BSART
           BEDAT
       FROM EKKO INTO TABLE GT_EKKO WHERE EBELN IN S_EBELN.

    IF GT_EKKO[] IS NOT INITIAL.
      SORT GT_EKKO BY EBELN.
    ELSE.
      MESSAGE 'Data not Found' TYPE 'E'.
    ENDIF.

    IF GT_EKKO[] IS NOT INITIAL.

      SELECT EBELN
             EBELP
             MATNR
             MENGE
             MEINS
             NETPR
        FROM EKPO INTO TABLE GT_EKPO FOR ALL ENTRIES IN GT_EKKO
        WHERE EBELN EQ GT_EKKO-EBELN.

    ENDIF.

  ENDMETHOD.

*& This Method is used to Populate final display Data
  METHOD GET_POP_DATA.

    "Not Require
    INCLUDE<icon>.

    SORT GT_EKKO BY EBELN.
    SORT GT_EKPO BY EBELN.

    LOOP AT GT_EKKO INTO GS_EKKO.

      GS_FINAL-BSART GS_EKKO-BSART.
      GS_FINAL-BEDAT GS_EKKO-BEDAT.

      IF GS_EKKO-BSART 'NB'.
        "Add Green Signal
        GS_FINAL-STATUS icon_green_light.
      ELSEIF GS_EKKO-BSART EQ 'UB'.
        "Add Red Signal
        GS_FINAL-STATUS icon_red_light.
      ELSEIF GS_EKKO-BSART EQ 'FO'.
        "Add Yellow Signal
        GS_FINAL-STATUS icon_yellow_light.
      ELSEIF GS_EKKO-BSART EQ 'EC'.
        "Add Green Signal
        GS_FINAL-STATUS icon_led_red.
      ELSEIF GS_EKKO-BSART EQ 'AN'.
        GS_FINAL-STATUS icon_led_green.
      ELSEIF GS_EKKO-BSART EQ 'EUB'.
        GS_FINAL-STATUS icon_led_yellow.
      ENDIF.

      CLEAR GS_EKPOLV_NO.
      READ TABLE GT_EKPO INTO GS_EKPO WITH KEY EBELN GS_EKKO-EBELN BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        LV_NO SY-TABIX.
      ENDIF.

      LOOP AT GT_EKPO INTO GS_EKPO FROM LV_NO.

        IF GS_EKPO-EBELN NE GS_EKKO-EBELN.
          EXIT.
        ENDIF.

        GS_FINAL-EBELN GS_EKPO-EBELN.
        GS_FINAL-MATNR GS_EKPO-MATNR.
        GS_FINAL-MENGE GS_FINAL-MENGE + GS_EKPO-MENGE.
        GS_FINAL-MEINS GS_EKPO-MEINS.
        GS_FINAL-NETPR GS_FINAL-NETPR + GS_EKPO-NETPR.

      ENDLOOP.

      APPEND GS_FINAL TO GT_FINAL.
      CLEAR GS_FINAL.

    ENDLOOP.

  ENDMETHOD.

*& This Method is used to Display Data
  METHOD DISPLAY.

*& We call the Factory Method to get the instance of the ALV.

    TRY.
        CALL METHOD CL_SALV_TABLE=>FACTORY
*      EXPORTING
*        LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE
*        R_CONTAINER    =
*        CONTAINER_NAME =
      IMPORTING
        R_SALV_TABLE    LO_ALV
          CHANGING
            T_TABLE     GT_FINAL
            .
      CATCH CX_SALV_MSG .
    ENDTRY.

*& Get the all columns
    LO_COLUMNS LO_ALV->GET_COLUMNS).

*& Set Column Optimization.
    LO_COLUMNS->SET_OPTIMIZE'X' ).

*& Displaying toolbar on alv
    LO_ALV->GET_FUNCTIONS)->SET_ALL).

*& Change the Column Heading.
    TRY.

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'STATUS' ).
        LO_COLUMN->SET_LONG_TEXT'Status' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Status' ).
        LO_COLUMN->SET_SHORT_TEXT'Status' ).
        LO_COLUMN->SET_ICON'X' ).
        LO_COLUMN->SET_OUTPUT_LENGTH10 ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'EBELN' ).
        LO_COLUMN->SET_LONG_TEXT'Purchase Number' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Pur. Number' ).
        LO_COLUMN->SET_SHORT_TEXT'PO Number' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'MATNR' ).
        LO_COLUMN->SET_LONG_TEXT'Material Code' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Material Number' ).
        LO_COLUMN->SET_SHORT_TEXT'Material' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'BSART' ).
        LO_COLUMN->SET_LONG_TEXT'Document Type' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Document Type' ).
        LO_COLUMN->SET_SHORT_TEXT'Doc.Type' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'BEDAT' ).
        LO_COLUMN->SET_LONG_TEXT'Document Date' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Document Date' ).
        LO_COLUMN->SET_SHORT_TEXT'Doc. Date' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'MEINS' ).
        LO_COLUMN->SET_LONG_TEXT'Unit of Mesure' ).
        LO_COLUMN->SET_MEDIUM_TEXT'UOM' ).
        LO_COLUMN->SET_SHORT_TEXT'UOM' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'MENGE' ).
        LO_COLUMN->SET_LONG_TEXT'Po Quantity' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Quantity' ).
        LO_COLUMN->SET_SHORT_TEXT'Qty' ).

        LO_COLUMN ?= LO_COLUMNS->GET_COLUMN'NETPR' ).
        LO_COLUMN->SET_LONG_TEXT'PO Price' ).
        LO_COLUMN->SET_MEDIUM_TEXT'Price' ).
        LO_COLUMN->SET_SHORT_TEXT'Price' ).

      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.

*& Add Tool Trips
    LO_FUNCTIONAL_SETTING LO_ALV->GET_FUNCTIONAL_SETTINGS).

    LO_TOOLTIPS LO_FUNCTIONAL_SETTING->GET_TOOLTIPS).

*& Add Symbol Description
    TRY.

        LV_VALUE icon_green_light.
        CALL METHOD LO_TOOLTIPS->ADD_TOOLTIP
          EXPORTING
            TYPE    CL_SALV_TOOLTIP=>C_TYPE_ICON
            VALUE   LV_VALUE
            TOOLTIP 'NB Doc Type'.
      CATCH CX_SALV_EXISTING .
    ENDTRY.

    TRY.
        LV_VALUE icon_red_light.
        CALL METHOD LO_TOOLTIPS->ADD_TOOLTIP
          EXPORTING
            TYPE    CL_SALV_TOOLTIP=>C_TYPE_ICON
            VALUE   LV_VALUE
            TOOLTIP 'UB Doc Type'.
      CATCH CX_SALV_EXISTING .
    ENDTRY.

    TRY.
        LV_VALUE icon_yellow_light.
        CALL METHOD LO_TOOLTIPS->ADD_TOOLTIP
          EXPORTING
            TYPE    CL_SALV_TOOLTIP=>C_TYPE_ICON
            VALUE   LV_VALUE
            TOOLTIP 'FO Doc Type'.
      CATCH CX_SALV_EXISTING .
    ENDTRY.

    TRY.
        LV_VALUE icon_led_red.
        CALL METHOD LO_TOOLTIPS->ADD_TOOLTIP
          EXPORTING
            TYPE    CL_SALV_TOOLTIP=>C_TYPE_ICON
            VALUE   LV_VALUE
            TOOLTIP 'EC Doc Type'.
      CATCH CX_SALV_EXISTING .
    ENDTRY.

    TRY.
        LV_VALUE icon_led_green.
        CALL METHOD LO_TOOLTIPS->ADD_TOOLTIP
          EXPORTING
            TYPE    CL_SALV_TOOLTIP=>C_TYPE_ICON
            VALUE   LV_VALUE
            TOOLTIP 'AN Doc Type'.
      CATCH CX_SALV_EXISTING .
    ENDTRY.

    TRY.
        LV_VALUE icon_led_yellow.
        CALL METHOD LO_TOOLTIPS->ADD_TOOLTIP
          EXPORTING
            TYPE    CL_SALV_TOOLTIP=>C_TYPE_ICON
            VALUE   LV_VALUE
            TOOLTIP 'EUN Doc Type'.
      CATCH CX_SALV_EXISTING .
    ENDTRY.

*& Here we will call the display method to get the output on the screen
    LO_ALV->DISPLAY).

  ENDMETHOD.

ENDCLASS.

Output:





















Download Source Code in PDF Format.

Download Source Code in TXT Format.