cancel
Showing results for 
Search instead for 
Did you mean: 

How to color a particular cell in ALV.

Former Member
0 Kudos

hi,

I have a requirement where i need to select a particular cell of a column in ALV and upon selection , i need to change the color of the selected cell. I choose the color from the dropdown toolbar created by me.

plz help, thanks.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Frank,

In the below mentioned link a topic Color of ALV output, columns, and cells has been mentioned in the section '4.17.3 Appearance of ALV Output'.

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/db22242d-0701-0010-28a2-aea...

Hope this will help you.

Cheers,

Darshna.

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Frank Lampard,

1)  First create an Attribute in Context which of WDUI_TABLE_CELL_DESIGN type and bind this to            your  Dropdown.

METHOD configure_alv .

  "Instantiate Used Component

  DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.

  lo_cmp_usage =   wd_this->wd_cpuse_alv( ).

  IF lo_cmp_usage->has_active_component( ) IS INITIAL.

    lo_cmp_usage->create_component( ).

  ENDIF.

  "Create an instance of ALV Interface Controller

  DATA lo_interfacecontroller TYPE REF TO iwci_salv_wd_table .

  lo_interfacecontroller =   wd_this->wd_cpifc_alv( ).

  "Configuration of the ALV Output

  DATA lv_value TYPE REF TO cl_salv_wd_config_table.

  lv_value = lo_interfacecontroller->get_model( ).

  DATA:

        lr_column_settings TYPE REF TO if_salv_wd_column_settings,

        lt_columns         TYPE salv_wd_t_column_ref,

        ls_columns         LIKE LINE OF lt_columns,

        l_column   TYPE REF TO cl_salv_wd_column.

  lr_column_settings ?= lv_value.

  lt_columns = lr_column_settings->get_columns( ).

  LOOP AT lt_columns INTO ls_columns.
    ls_columns-r_column->set_cell_design_fieldname( value = 'CELLDESIGN' ).
   ls_columns-r_column->SET_CELL_DESIGN(VALUE = '33' ). " 33 for total you can give your own color
* lv_value->if_salv_wd_column_settings~delete_column( id = 'CELLDESIGN' ).
  ENDLOOP.

ENDMETHOD.

what ever color you select from Dropdown pass that color number instead of 33.

Thanks

Madhukiran.

Former Member
0 Kudos

Hi Frank,

see this link

http://wiki.sdn.sap.com/wiki/display/Snippets/Coloring+a+Row+and+Column+in+ALV+(OOPS)

or if you want to color particular column then -

*Set the attribute EMPHASIZE for that field in the FIELD CATALOG.

To color a row

1. Create a field in your internal table: line_color(here)

TYPES: BEGIN OF t_ekko,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

statu TYPE ekpo-statu,

aedat TYPE ekpo-aedat,

matnr TYPE ekpo-matnr,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

peinh TYPE ekpo-peinh,

line_color(4) TYPE c, "Used to store row color

END OF t_ekko.

2. Pass the value in layout.

FORM build_layout.
  gd_layout-no_input          = 'X'.
  gd_layout-colwidth_optimize = 'X'.
  gd_layout-totals_text       = 'Totals'(201).

* Set layout field for row attributes(i.e. color)
  gd_layout-info_fieldname =      'LINE_COLOR'.
ENDFORM.                    " build_layout

3.  Select the row based on your particular data.

LOOP AT it_ekko INTO wa_ekko.

* Populate color variable with colour properties

* Char 1 = C (This is a color property)

* Char 2 = 3 (Color codes: 1 - 7)

* Char 3 = Intensified on/off ( 1 or 0 )

* Char 4 = Inverse display on/off ( 1 or 0 )

*           i.e. wa_ekko-line_color = 'C410'

    ld_color = ld_color + 1.

* Only 7 colours so need to reset color value

    IF ld_color = 8.

      ld_color = 1.

    ENDIF.

    CONCATENATE 'C' ld_color '10' INTO wa_ekko-line_color.

* wa_ekko-line_color = 'C410'.

    MODIFY it_ekko FROM wa_ekko.

  ENDLOOP.

Former Member
0 Kudos

hi vijay,

thanks for the reply but could u please tell me how to 'select' only one cell of a particular column and then i will select a color for it from the dropdown toolbar of my alv. please help me on this.

dhruv_mehta
Active Contributor
0 Kudos

   REPORT  ZTEST_DHR.

TYPE-POOLS : SLIS.
TYPES: BEGIN OF TY_MARA,
        FLAG  TYPE CHAR1,
        MATNR TYPE MARA-MATNR,
        ERSDA TYPE MARA-ERSDA,
        ERNAM TYPE MARA-ERNAM,
        WESCH TYPE MARA-WESCH,
        STYLE TYPE LVC_T_STYL,
        CELLCOLR TYPE LVC_T_SCOL,
      END OF TY_MARA.

DATA : IT_MARA TYPE STANDARD TABLE OF TY_MARA.
DATA : IT_MARA1 TYPE STANDARD TABLE OF TY_MARA,
       WA_MARA TYPE TY_MARA,
       WA_MARA1 TYPE TY_MARA.


* for reuse alv grid display
*DATA : IT_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,
*        WA_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV,
*        WA_LAYOUT       TYPE SLIS_LAYOUT_ALV,
*        GV_REPID      TYPE SY-REPID.

*for LVC Display
DATA : WA_SETTINGS TYPE LVC_S_GLAY.
DATA : WA_LAYOUT TYPE LVC_S_LAYO.
DATA : IT_FIELDCATALOG TYPE LVC_T_FCAT,
        WA_FIELDCATALOG TYPE LVC_S_FCAT.


DATA REF1 TYPE REF TO CL_GUI_ALV_GRID.
DATA: LS_EDIT TYPE LVC_S_STYL,
      LT_EDIT TYPE LVC_T_STYL.

DATA : LS_CELL_COLOR TYPE LVC_S_SCOL.
DATA : LT_CELL_COLOR TYPE LVC_T_SCOL.

START-OF-SELECTION.

  SELECT MATNR ERSDA ERNAM WESCH
    FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT_MARA
  UP TO 10 ROWS.


END-OF-SELECTION.
  PERFORM BUILD_FIELDCATALOG.
  PERFORM BUILD_LAYOUT.
  PERFORM DISPLAY_ALV_REPORT.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .

  WA_FIELDCATALOG-FIELDNAME = 'FLAG'.
  WA_FIELDCATALOG-OUTPUTLEN =  6.
  WA_FIELDCATALOG-CHECKBOX  = 'X'.           "as checkbox
  WA_FIELDCATALOG-EDIT      = 'X'.
  WA_FIELDCATALOG-SELTEXT = 'Check box'.

  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.

  WA_FIELDCATALOG-FIELDNAME = 'MATNR'.
  WA_FIELDCATALOG-OUTPUTLEN =  20.
  WA_FIELDCATALOG-SELTEXT = 'Mat no'.
*  wa_fieldcatalog-input = 'X'.
  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.


  WA_FIELDCATALOG-FIELDNAME = 'ERSDA'.
  WA_FIELDCATALOG-OUTPUTLEN =  15.
  WA_FIELDCATALOG-SELTEXT = 'Creation Date'.
*  wa_fieldcatalog-input = 'X'.
*  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.


  WA_FIELDCATALOG-FIELDNAME = 'ERNAM'.
  WA_FIELDCATALOG-OUTPUTLEN =  20.
  WA_FIELDCATALOG-SELTEXT = 'Creation Time'.
*  wa_fieldcatalog-input = 'X'.
*  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.


  WA_FIELDCATALOG-FIELDNAME = 'WESCH'.
  WA_FIELDCATALOG-OUTPUTLEN =  20.
  WA_FIELDCATALOG-SELTEXT = 'Quantity'.
*  wa_fieldcatalog-input = 'X'.
*  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.

ENDFORM.                    "build_fieldcatalog
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .

  CONSTANTS : LC_X TYPE CHAR1 VALUE 'X'.

*  WA_LAYOUT-NO_INPUT          = LC_X.
  WA_LAYOUT-CWIDTH_OPT = LC_X.
  WA_LAYOUT-ZEBRA             = LC_X.
  WA_LAYOUT-STYLEFNAME = 'STYLE'.
  WA_LAYOUT-CTAB_FNAME = 'CELLCOLR'.

ENDFORM.                    " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT .



  LS_EDIT-FIELDNAME = 'FLAG'.
  LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
  INSERT LS_EDIT INTO TABLE LT_EDIT.
  INSERT LINES OF LT_EDIT INTO TABLE WA_MARA1-STYLE.

  LS_CELL_COLOR-FNAME = 'MATNR'.
  LS_CELL_COLOR-COLOR-COL = '7'.
  LS_CELL_COLOR-COLOR-INT = '1'.
  INSERT LS_CELL_COLOR into table LT_CELL_COLOR.
  INSERT LINES OF LT_CELL_COLOR into TABLE WA_MARA1-CELLCOLR.

  LOOP AT IT_MARA INTO WA_MARA.
    IF WA_MARA-ERSDA EQ '20080625'.
      MODIFY IT_MARA INDEX SY-TABIX FROM WA_MARA1 TRANSPORTING STYLE CELLCOLR.
    ENDIF.
  ENDLOOP.





  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
   EXPORTING
*      I_INTERFACE_CHECK                 = ' '
*      I_BYPASSING_BUFFER                =
*      I_BUFFER_ACTIVE                   =
     I_CALLBACK_PROGRAM                = SY-REPID
     I_CALLBACK_PF_STATUS_SET          = 'F_SET_STATUS'
     I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'
*      I_CALLBACK_TOP_OF_PAGE            = ' '
*      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*      I_CALLBACK_HTML_END_OF_LIST       = ' '
*      I_STRUCTURE_NAME                  =
*      I_BACKGROUND_ID                   = ' '
     I_GRID_TITLE                      = 'Example of select and deselect'
*      I_GRID_SETTINGS                   =
      IS_LAYOUT_LVC                     = WA_LAYOUT
     IT_FIELDCAT_LVC                   = IT_FIELDCATALOG

    TABLES
      T_OUTTAB                          = IT_MARA
*    EXCEPTIONS
*      PROGRAM_ERROR                     = 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.

*  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
*    EXPORTING
*      I_CALLBACK_PROGRAM       = GV_REPID
*      I_CALLBACK_PF_STATUS_SET = 'F_SET_STATUS'
*      I_CALLBACK_USER_COMMAND  = 'F_USER_COMMAND'
*      I_GRID_TITLE             = 'Example of select and deselect'
*      I_GRID_SETTINGS          = WA_SETTINGS
*      IS_LAYOUT                = WA_LAYOUT
*      IT_FIELDCAT              = IT_FIELDCATALOG[]
*    TABLES
*      T_OUTTAB                 = IT_MARA.
*  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

ENDFORM.                    " DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*&      Form  f_set_status
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STATUS1'.
ENDFORM.                    " f_set_status
*&---------------------------------------------------------------------*
*&      Form  f_user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                        RS_SELFIELD TYPE SLIS_SELFIELD.
* BREAK-POINT.
  CASE R_UCOMM.
    WHEN 'ASEL'.
      LOOP AT IT_MARA INTO WA_MARA.
        WA_MARA-FLAG = 'X'.
        MODIFY IT_MARA FROM WA_MARA.
      ENDLOOP.
      RS_SELFIELD-REFRESH = 'X'.


    WHEN 'DSEL'.
      LOOP AT IT_MARA INTO WA_MARA.
        WA_MARA-FLAG = ' '.
        MODIFY IT_MARA FROM WA_MARA.
      ENDLOOP.
      RS_SELFIELD-REFRESH = 'X'.


    WHEN 'DELETE'.
*      BREAK-POINT.

      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_GRID = REF1.

      CALL METHOD REF1->CHECK_CHANGED_DATA.

      DELETE IT_MARA
               WHERE FLAG = 'X'.
      RS_SELFIELD-REFRESH = 'X'.

    WHEN 'INSERT'.

      CLEAR WA_MARA.
      APPEND WA_MARA TO IT_MARA.
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_GRID = REF1.
      CALL METHOD REF1->REFRESH_TABLE_DISPLAY.

    WHEN 'SAVEDB'.

      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_GRID = REF1.
      CALL METHOD REF1->CHECK_CHANGED_DATA.

* CODE TO BE WRITTEN TO SAVE in DB just an insert statement
*ENDLOOP.
  ENDCASE.
ENDFORM.

   REPORT  ZTEST_DHR.

TYPE-POOLS : SLIS.
TYPES: BEGIN OF TY_MARA,
        FLAG  TYPE CHAR1,
        MATNR TYPE MARA-MATNR,
        ERSDA TYPE MARA-ERSDA,
        ERNAM TYPE MARA-ERNAM,
        WESCH TYPE MARA-WESCH,
        STYLE TYPE LVC_T_STYL,
        CELLCOLR TYPE LVC_T_SCOL,
      END OF TY_MARA.

DATA : IT_MARA TYPE STANDARD TABLE OF TY_MARA.
DATA : IT_MARA1 TYPE STANDARD TABLE OF TY_MARA,
       WA_MARA TYPE TY_MARA,
       WA_MARA1 TYPE TY_MARA.


* for reuse alv grid display
*DATA : IT_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,
*        WA_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV,
*        WA_LAYOUT       TYPE SLIS_LAYOUT_ALV,
*        GV_REPID      TYPE SY-REPID.

*for LVC Display
DATA : WA_SETTINGS TYPE LVC_S_GLAY.
DATA : WA_LAYOUT TYPE LVC_S_LAYO.
DATA : IT_FIELDCATALOG TYPE LVC_T_FCAT,
        WA_FIELDCATALOG TYPE LVC_S_FCAT.


DATA REF1 TYPE REF TO CL_GUI_ALV_GRID.
DATA: LS_EDIT TYPE LVC_S_STYL,
      LT_EDIT TYPE LVC_T_STYL.

DATA : LS_CELL_COLOR TYPE LVC_S_SCOL.
DATA : LT_CELL_COLOR TYPE LVC_T_SCOL.

START-OF-SELECTION.

  SELECT MATNR ERSDA ERNAM WESCH
    FROM MARA INTO CORRESPONDING FIELDS OF TABLE IT_MARA
  UP TO 10 ROWS.


END-OF-SELECTION.
  PERFORM BUILD_FIELDCATALOG.
  PERFORM BUILD_LAYOUT.
  PERFORM DISPLAY_ALV_REPORT.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .

  WA_FIELDCATALOG-FIELDNAME = 'FLAG'.
  WA_FIELDCATALOG-OUTPUTLEN =  6.
  WA_FIELDCATALOG-CHECKBOX  = 'X'.           "as checkbox
  WA_FIELDCATALOG-EDIT      = 'X'.
  WA_FIELDCATALOG-SELTEXT = 'Check box'.

  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.

  WA_FIELDCATALOG-FIELDNAME = 'MATNR'.
  WA_FIELDCATALOG-OUTPUTLEN =  20.
  WA_FIELDCATALOG-SELTEXT = 'Mat no'.
*  wa_fieldcatalog-input = 'X'.
  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.


  WA_FIELDCATALOG-FIELDNAME = 'ERSDA'.
  WA_FIELDCATALOG-OUTPUTLEN =  15.
  WA_FIELDCATALOG-SELTEXT = 'Creation Date'.
*  wa_fieldcatalog-input = 'X'.
*  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.


  WA_FIELDCATALOG-FIELDNAME = 'ERNAM'.
  WA_FIELDCATALOG-OUTPUTLEN =  20.
  WA_FIELDCATALOG-SELTEXT = 'Creation Time'.
*  wa_fieldcatalog-input = 'X'.
*  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.


  WA_FIELDCATALOG-FIELDNAME = 'WESCH'.
  WA_FIELDCATALOG-OUTPUTLEN =  20.
  WA_FIELDCATALOG-SELTEXT = 'Quantity'.
*  wa_fieldcatalog-input = 'X'.
*  wa_fieldcatalog-edit = 'X'.
  APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG.
  CLEAR  WA_FIELDCATALOG.

ENDFORM.                    "build_fieldcatalog
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .

  CONSTANTS : LC_X TYPE CHAR1 VALUE 'X'.

*  WA_LAYOUT-NO_INPUT          = LC_X.
  WA_LAYOUT-CWIDTH_OPT = LC_X.
  WA_LAYOUT-ZEBRA             = LC_X.
  WA_LAYOUT-STYLEFNAME = 'STYLE'.
  WA_LAYOUT-CTAB_FNAME = 'CELLCOLR'.

ENDFORM.                    " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT .



  LS_EDIT-FIELDNAME = 'FLAG'.
  LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
  INSERT LS_EDIT INTO TABLE LT_EDIT.
  INSERT LINES OF LT_EDIT INTO TABLE WA_MARA1-STYLE.

  LS_CELL_COLOR-FNAME = 'MATNR'.
  LS_CELL_COLOR-COLOR-COL = '7'.
  LS_CELL_COLOR-COLOR-INT = '1'.
  INSERT LS_CELL_COLOR into table LT_CELL_COLOR.
  INSERT LINES OF LT_CELL_COLOR into TABLE WA_MARA1-CELLCOLR.

  LOOP AT IT_MARA INTO WA_MARA.
    IF WA_MARA-ERSDA EQ '20080625'.
      MODIFY IT_MARA INDEX SY-TABIX FROM WA_MARA1 TRANSPORTING STYLE CELLCOLR.
    ENDIF.
  ENDLOOP.





  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
   EXPORTING
*      I_INTERFACE_CHECK                 = ' '
*      I_BYPASSING_BUFFER                =
*      I_BUFFER_ACTIVE                   =
     I_CALLBACK_PROGRAM                = SY-REPID
     I_CALLBACK_PF_STATUS_SET          = 'F_SET_STATUS'
     I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'
*      I_CALLBACK_TOP_OF_PAGE            = ' '
*      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*      I_CALLBACK_HTML_END_OF_LIST       = ' '
*      I_STRUCTURE_NAME                  =
*      I_BACKGROUND_ID                   = ' '
     I_GRID_TITLE                      = 'Example of select and deselect'
*      I_GRID_SETTINGS                   =
      IS_LAYOUT_LVC                     = WA_LAYOUT
     IT_FIELDCAT_LVC                   = IT_FIELDCATALOG

    TABLES
      T_OUTTAB                          = IT_MARA
*    EXCEPTIONS
*      PROGRAM_ERROR                     = 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.

*  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
*    EXPORTING
*      I_CALLBACK_PROGRAM       = GV_REPID
*      I_CALLBACK_PF_STATUS_SET = 'F_SET_STATUS'
*      I_CALLBACK_USER_COMMAND  = 'F_USER_COMMAND'
*      I_GRID_TITLE             = 'Example of select and deselect'
*      I_GRID_SETTINGS          = WA_SETTINGS
*      IS_LAYOUT                = WA_LAYOUT
*      IT_FIELDCAT              = IT_FIELDCATALOG[]
*    TABLES
*      T_OUTTAB                 = IT_MARA.
*  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*  ENDIF.

ENDFORM.                    " DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*&      Form  f_set_status
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STATUS1'.
ENDFORM.                    " f_set_status
*&---------------------------------------------------------------------*
*&      Form  f_user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*


FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
                        RS_SELFIELD TYPE SLIS_SELFIELD.
* BREAK-POINT.
  CASE R_UCOMM.
    WHEN 'ASEL'.
      LOOP AT IT_MARA INTO WA_MARA.
        WA_MARA-FLAG = 'X'.
        MODIFY IT_MARA FROM WA_MARA.
      ENDLOOP.
      RS_SELFIELD-REFRESH = 'X'.


    WHEN 'DSEL'.
      LOOP AT IT_MARA INTO WA_MARA.
        WA_MARA-FLAG = ' '.
        MODIFY IT_MARA FROM WA_MARA.
      ENDLOOP.
      RS_SELFIELD-REFRESH = 'X'.


    WHEN 'DELETE'.
*      BREAK-POINT.

      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_GRID = REF1.

      CALL METHOD REF1->CHECK_CHANGED_DATA.

      DELETE IT_MARA
               WHERE FLAG = 'X'.
      RS_SELFIELD-REFRESH = 'X'.

    WHEN 'INSERT'.

      CLEAR WA_MARA.
      APPEND WA_MARA TO IT_MARA.
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_GRID = REF1.
      CALL METHOD REF1->REFRESH_TABLE_DISPLAY.

    WHEN 'SAVEDB'.

      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_GRID = REF1.
      CALL METHOD REF1->CHECK_CHANGED_DATA.

* CODE TO BE WRITTEN TO SAVE in DB just an insert statement
*ENDLOOP.
  ENDCASE.
ENDFORM.

About Selecting a Color From Dropdown?  even i need to check for now this is the how u do cell color in alv

Former Member
0 Kudos

Hi Frank,

I think it is not possible to select just one cell. May be you can cross check.

The work around could be...

On click of the particular cell, you can capture its position. For this you can use the ON_CLICK event provided by ALV, and in the handler method you can save the index of the row and the name/id of the column.

In this handler you will find a parameter r_param.

Using r_param->column you will get the column of the ALV where user clicked.

Using r_param->index you will get the Row index of the ALV where user clicked.

You can save both these values in some local view attribute i.e. 

wd_this->selected_row = r_param->index .

wd_this->selected_column = r_param->column .

After this, onSelect event of your color dropdown, you can change the node's color attribute as suggested by Gangisetty.

You can do it by reading the particular row from the internal table and setting the color for the particular column.

Regards,

Rohit

Former Member
0 Kudos

Hi Frank,

In the WD Component SALV_WD_TABLE_* you will get some component related to colors. Just check that it has all these information. For this i will explain the brief logic which will do the needful.

1. Create one more colum which holds the type of color

2. Bind that color to you each column for whcih you want color

3. While pusing the information to your table , push the color information also in the new added color field.

Thats all it will work for individual cell.

I hope this information will help you.

Warm Regards,

Vijay