Skip to Content
author's profile photo Former Member
Former Member

Alv

Hello,

How can i color a particular cell in alv display?

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

7 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Oct 16, 2006 at 12:58 PM
    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Oct 16, 2006 at 12:59 PM

    Hi,

    Use emphasize Field of the fieldcatalog with various options it will color the cells of the alv.

    regards,

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Oct 16, 2006 at 12:59 PM

    This program will show how to color a cell using the REUSE function module.

    
    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.
    
    

    If using the class, I have an example for that also.

    Regards

    Rich Heilman

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 16, 2006 at 01:09 PM

    hi

    good

    go through this

      • tables used -

      tables: mkpf,

      mseg,

      lfa1,

      makt.

        • global hashed tables used

        *

        data: begin of wa_mkpf, "header

        mblnr like mkpf-mblnr,

        mjahr like mkpf-mjahr,

        budat like mkpf-budat,

        xblnr like mkpf-xblnr,

        end of wa_mkpf.

        data: ht_mkpf like hashed table of wa_mkpf

        with unique key mblnr mjahr

        with header line.

        data: st_mkpf like standard table of wa_mkpf

        with header line.

        *

        data: begin of wa_mseg, " line items

        mblnr like mseg-mblnr,

        mjahr like mseg-mjahr,

        zeile like mseg-zeile,

        bwart like mseg-bwart,

        charg like mseg-charg,

        matnr like mseg-matnr,

        lifnr like mseg-lifnr,

        erfmg like mseg-erfmg,

        erfme like mseg-erfme,

        end of wa_mseg.

        data ht_mseg like hashed table of wa_mseg

        with unique key mblnr mjahr zeile

        with header line.

        data st_mseg like standard table of wa_mseg

        with header line.

          • cache structure for lfa1 records

          data: begin of wa_lfa1,

          lifnr like lfa1-lifnr,

          name1 like lfa1-name1,

          end of wa_lfa1.

          data ht_lfa1 like hashed table of wa_lfa1

          with unique key lifnr

          with header line.

            • cache structure for material related data

            data: begin of wa_material,

            matnr like makt-matnr,

            maktx like makt-maktx,

            end of wa_material.

            data: ht_material like hashed table of wa_material

            with unique key matnr

            with header line.

              • result table

              data: begin of wa_lst, "

              budat like mkpf-budat,

              mblnr like mseg-mblnr,

              lifnr like mseg-lifnr,

              name1 like lfa1-name1,

              xblnr like mkpf-xblnr,

              zeile like mseg-zeile,

              charg like mseg-charg,

              matnr like mseg-matnr,

              maktx like makt-maktx,

              erfmg like mseg-erfmg,

              erfme like mseg-erfme,

              mjahr like mseg-mjahr,

              end of wa_lst.

              data: ht_lst like hashed table of wa_lst

              with unique key mblnr mjahr zeile

              with header line.

              data: begin of wa_lst1, " sumary by material

              matnr like mseg-matnr,

              maktx like makt-maktx,

              erfmg like mseg-erfmg,

              erfme like mseg-erfme,

              color_line(4) TYPE c, " Line color

              color_cell TYPE lvc_t_scol, " Cell color

              celltab type LVC_T_STYL,

              end of wa_lst1.

              data: ht_lst1 like hashed table of wa_lst1

              with unique key matnr

              with header line.

                • structures for alv grid display.

                • itabs

                type-pools: slis.

                data: it_lst like standard table of wa_lst with header line,

                it_fieldcat_lst type slis_t_fieldcat_alv with header line,

                it_sort_lst type slis_t_sortinfo_alv,

                it_lst1 like standard table of wa_lst1 with header line,

                it_fieldcat_lst1 type slis_t_fieldcat_alv with header line,

                it_sort_lst1 type slis_t_sortinfo_alv.

                  • structures

                  data: wa_sort type slis_sortinfo_alv,

                  ls_layout type slis_layout_alv.

                    • color management.

                    DATA : wa_color TYPE lvc_s_scol.

                    • Internal table for color management.

                    DATA : it_color TYPE TABLE OF lvc_s_scol.

                    • itab for input enabling.

                    DATA: lt_celltab TYPE lvc_t_styl. "

                      • global varialbes

                      data: g_lines type i.

                      data: g_repid like sy-repid,

                      ok_code like sy-ucomm.

                        • selection-screen

                        "text: Dates:

                        select-options: so_budat for mkpf-budat default sy-datum.

                        "text: Material numbers.

                        select-options: so_matnr for mseg-matnr.

                        selection-screen uline.

                        selection-screen skip 1.

                        "Text: show summary by material.

                        parameters: gp_bymat as checkbox default ''.

                        parameters: gp_hier as checkbox default 'X'.

                        start-of-selection.

                        perform get_data.

                        perform show_data.

                        end-of-selection.

                        *----


                        *

                        • FORM get_data *

                        *----


                        *

                        • ........ *

                        *----


                        *

                        form get_data.

                        select mblnr mjahr budat xblnr

                        into table ht_mkpf

                        from mkpf

                        where budat in so_budat. " make use of std index.

                          • have we retrieved data from mkpf?

                          describe table ht_mkpf lines g_lines.

                          if g_lines > 0.

                            • if true then retrieve all related records from mseg.

                            • Doing this way we make sure that the access is by primary key

                            • of mseg.

                            • The reason is that is faster to filter them in memory

                            • than to allow the db server to do it.

                            select mblnr mjahr zeile bwart charg

                            matnr lifnr erfmg erfme

                            into table ht_mseg

                            from mseg

                            for all entries in ht_mkpf

                            where mblnr = ht_mkpf-mblnr

                            and mjahr = ht_mkpf-mjahr.

                            endif.

                              • fill t_lst or t_lst1 according to user's choice.

                              if gp_bymat = ' '.

                              perform fill_ht_lst.

                              else.

                              perform fill_ht_lst1.

                              endif.

                              endform.

                              form fill_ht_lst.

                              refresh ht_lst.

                                • Example: how to discard unwanted data in an efficient way.

                                loop at ht_mseg.

                                • filter unwanted data

                                check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.

                                check ht_mseg-matnr in so_matnr.

                                • read header line.

                                read table ht_mkpf with table key mblnr = ht_mseg-mblnr

                                mjahr = ht_mseg-mjahr.

                                clear ht_lst.

                                • * note : this may be faster if you specify field by field.

                                move-corresponding ht_mkpf to ht_lst.

                                move-corresponding ht_mseg to ht_lst.

                                perform read_lfa1 using ht_mseg-lifnr changing ht_lst-name1.

                                perform read_material using ht_mseg-matnr changing ht_lst-maktx.

                                insert table ht_lst.

                                endloop.

                                endform.

                                form fill_ht_lst1.

                                data: colorear.

                                refresh ht_lst1.

                                  • Example: how to discard unwanted data in an efficient way.

                                  • hot to simulate a collect in a faster way

                                  loop at ht_mseg.

                                  • filter unwanted data

                                  check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.

                                  check ht_mseg-matnr in so_matnr.

                                  • * note : this may be faster if you specify field by field.

                                  read table ht_lst1 with table key matnr = ht_mseg-matnr

                                  transporting erfmg.

                                  if sy-subrc <> 0. " if matnr doesn't exist in sumary table

                                  " insert a new record

                                  clear ht_lst1.

                                  ht_lst1-matnr = ht_mseg-matnr.

                                  perform read_material using ht_mseg-matnr changing ht_lst1-maktx.

                                  ht_lst1-erfmg = ht_mseg-erfmg.

                                  ht_lst1-erfme = ht_mseg-erfme.

                                  if colorear = ''.

                                  colorear = 'X'.

                                  refresh it_color.

                                  ht_lst1-color_cell[] = it_color[].

                                  MOVE 'C410' TO ht_lst1-color_line.

                                  else.

                                  colorear = ' '.

                                  refresh it_color. clear it_color.

                                  MOVE 'MATNR' TO wa_color-fname.

                                  MOVE '6' TO wa_color-color-col.

                                  MOVE '1' TO wa_color-color-int.

                                  MOVE '1' TO wa_color-color-inv.

                                  APPEND wa_color TO it_color.

                                  MOVE 'MAKTX' TO wa_color-fname.

                                  MOVE '3' TO wa_color-color-col.

                                  MOVE '1' TO wa_color-color-int.

                                  MOVE '1' TO wa_color-color-inv.

                                  APPEND wa_color TO it_color.

                                  MOVE 'ERFMG' TO wa_color-fname.

                                  MOVE '5' TO wa_color-color-col.

                                  MOVE '1' TO wa_color-color-int.

                                  MOVE '1' TO wa_color-color-inv.

                                  APPEND wa_color TO it_color.

                                  ht_lst1-color_cell[] = it_color[].

                                  clear ht_lst1-color_line.

                                  endif.

                                  insert table ht_lst1.

                                  else." a record was found.

                                  " collect erfmg. To do so, fill in the unique key and add

                                  " the numeric fields.

                                  ht_lst1-matnr = ht_mseg-matnr.

                                  add ht_mseg-erfmg to ht_lst1-erfmg.

                                  modify table ht_lst1 transporting erfmg.

                                  endif.

                                  endloop.

                                  endform.

                                    • implementation of cache for lfa1.

                                    form read_lfa1 using p_lifnr changing p_name1.

                                    read table ht_lfa1 with table key lifnr = p_lifnr

                                    transporting name1.

                                    if sy-subrc <> 0.

                                    clear ht_lfa1.

                                    ht_lfa1-lifnr = p_lifnr.

                                    select single name1

                                    into ht_lfa1-name1

                                    from lfa1

                                    where lifnr = p_lifnr.

                                    if sy-subrc <> 0. ht_lfa1-name1 = 'n/a in lfa1'. endif.

                                    insert table ht_lfa1.

                                    endif.

                                    p_name1 = ht_lfa1-name1.

                                    endform.

                                      • implementation of cache for material data

                                      form read_material using p_matnr changing p_maktx.

                                      read table ht_material with table key matnr = p_matnr

                                      transporting maktx.

                                      if sy-subrc <> 0.

                                      ht_material-matnr = p_matnr.

                                      select single maktx into ht_material-maktx

                                      from makt

                                      where spras = sy-langu

                                      and matnr = p_matnr.

                                      if sy-subrc <> 0. ht_material-maktx = 'n/a in makt'. endif.

                                      insert table ht_material.

                                      endif.

                                      p_maktx = ht_material-maktx.

                                      endform.

                                      form show_data.

                                      if gp_hier = 'X'. "no anda.

                                      • perform show_hierarchicalALV.

                                      else.

                                      if gp_bymat = ' '.

                                      perform show_ht_lst.

                                      else.

                                      perform show_ht_lst1.

                                      endif.

                                      endif.

                                      endform.

                                      form show_hierarchicalALV.

                                      st_mkpf[] = ht_mkpf[].

                                      st_mseg[] = ht_mseg[].

                                      call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

                                      • exporting

                                      • I_INTERFACE_CHECK = ' '

                                      • I_CALLBACK_PROGRAM =

                                      • I_CALLBACK_PF_STATUS_SET = ' '

                                      • I_CALLBACK_USER_COMMAND = ' '

                                      • IS_LAYOUT =

                                      • IT_FIELDCAT =

                                      • IT_EXCLUDING =

                                      • IT_SPECIAL_GROUPS =

                                      • IT_SORT =

                                      • IT_FILTER =

                                      • IS_SEL_HIDE =

                                      • I_SCREEN_START_COLUMN = 0

                                      • I_SCREEN_START_LINE = 0

                                      • I_SCREEN_END_COLUMN = 0

                                      • I_SCREEN_END_LINE = 0

                                      • I_DEFAULT = 'X'

                                      • I_SAVE = ' '

                                      • IS_VARIANT =

                                      • IT_EVENTS =

                                      • IT_EVENT_EXIT =

                                      • i_tabname_header =

                                      • i_tabname_item =

                                      • I_STRUCTURE_NAME_HEADER =

                                      • I_STRUCTURE_NAME_ITEM =

                                      • is_keyinfo =

                                      • IS_PRINT =

                                      • IS_REPREP_ID =

                                      • I_BUFFER_ACTIVE =

                                      • I_BYPASSING_BUFFER =

                                      • IMPORTING

                                      • E_EXIT_CAUSED_BY_CALLER =

                                      • ES_EXIT_CAUSED_BY_USER =

                                      tables

                                      t_outtab_header = st_mkpf

                                      t_outtab_item = st_mseg

                                      • 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.

                                      endform.

                                      form show_ht_lst.

                                      "needed because the FM can't use a hashed table.

                                      it_lst[] = ht_lst[].

                                      perform fill_layout using 'full display'

                                      changing ls_layout.

                                      perform fill_columns_lst.

                                      • perform sort_lst.

                                      g_repid = sy-repid.

                                      call function 'REUSE_ALV_GRID_DISPLAY'

                                      exporting

                                      i_callback_program = g_repid

                                      i_callback_pf_status_set = 'SET_PF_STATUS'

                                      is_layout = ls_layout

                                      it_fieldcat = it_fieldcat_lst[]

                                      • it_sort = it_sort_lst

                                      tables

                                      t_outtab = it_lst

                                      exceptions

                                      program_error = 1

                                      others = 2.

                                      endform.

                                      form show_ht_lst1.

                                      "needed because the FM can't use a hashed table.

                                      it_lst1[] = ht_lst1[].

                                      perform fill_layout using 'Sumary by matnr'

                                      changing ls_layout.

                                      perform fill_columns_lst1.

                                      • perform sort_lst.

                                      g_repid = sy-repid.

                                      call function 'REUSE_ALV_GRID_DISPLAY'

                                      exporting

                                      i_callback_program = g_repid

                                      i_callback_pf_status_set = 'SET_PF_STATUS'

                                      is_layout = ls_layout

                                      it_fieldcat = it_fieldcat_lst1[]

                                      • it_sort = it_sort_lst

                                      tables

                                      t_outtab = it_lst1

                                      exceptions

                                      program_error = 1

                                      others = 2.

                                      endform.

                                      form fill_layout using p_window_titlebar

                                      changing cs_layo type slis_layout_alv.

                                      clear cs_layo.

                                      cs_layo-window_titlebar = p_window_titlebar.

                                      cs_layo-edit = 'X'.

                                      cs_layo-edit_mode = space.

                                      MOVE 'COLOR_LINE' TO cs_layo-info_fieldname.

                                      • Field that identify cell color in inetrnal table

                                      MOVE 'COLOR_CELL' TO cs_layo-coltab_fieldname.

                                      • move 'CELLTAB' TO cs_layo-stylefname.

                                      endform. " armar_layout_stock

                                      form set_pf_status using rt_extab type slis_t_extab.

                                        • create a new status

                                        • and then select extras -> adjust template -> listviewer

                                        set pf-status 'VISTA'.

                                        endform. "set_pf_status

                                        define add_lst.

                                        clear it_fieldcat_lst.

                                        it_fieldcat_lst-fieldname = &1.

                                        it_fieldcat_lst-outputlen = &2.

                                        it_fieldcat_lst-ddictxt = 'L'.

                                        it_fieldcat_lst-seltext_l = &1.

                                        it_fieldcat_lst-seltext_m = &1.

                                        it_fieldcat_lst-seltext_m = &1.

                                        if &1 = 'MATNR'.

                                        it_fieldcat_lst-emphasize = 'C111'.

                                        endif.

                                        append it_fieldcat_lst.

                                        end-of-definition.

                                        define add_lst1.

                                        clear it_fieldcat_lst.

                                        it_fieldcat_lst1-fieldname = &1.

                                        it_fieldcat_lst1-outputlen = &2.

                                        it_fieldcat_lst1-ddictxt = 'L'.

                                        it_fieldcat_lst1-seltext_l = &1.

                                        it_fieldcat_lst1-seltext_m = &1.

                                        it_fieldcat_lst1-seltext_m = &1.

                                        append it_fieldcat_lst1.

                                        end-of-definition.

                                        form fill_columns_lst.

                                        • set columns for output.

                                        refresh it_fieldcat_lst.

                                        *

                                        add_lst 'BUDAT' 10.

                                        add_lst 'MBLNR' 10.

                                        add_lst 'LIFNR' 10.

                                        add_lst 'NAME1' 35.

                                        add_lst 'XBLNR' 15.

                                        add_lst 'ZEILE' 5.

                                        add_lst 'CHARG' 10.

                                        add_lst 'MATNR' 18.

                                        add_lst 'MAKTX' 30.

                                        add_lst 'ERFMG' 17.

                                        add_lst 'ERFME' 5.

                                        add_lst 'MJAHR' 4.

                                        endform.

                                        form fill_columns_lst1.

                                        • set columns for output.

                                        refresh it_fieldcat_lst1.

                                        add_lst1 'MATNR' 18.

                                        add_lst1 'MAKTX' 30.

                                        add_lst1 'ERFMG' 17.

                                        add_lst1 'ERFME' 5..

                                        endform.

                                        Horacio Zapettini

                                        -

                                        -


                                        Program to Calculate FI Opening Balance

                                        How to find the Opening balance for a given period in FI Module for a Particular GL A/c.

                                        I was calculated opening balance, code is below maybe it will be helpful.

                                        *find period.

                                        CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'

                                        EXPORTING

                                        i_date = s_budat-low

                                        i_periv = i_tab-periv "'K4'

                                        IMPORTING

                                        e_buper = v_donem

                                        e_gjahr = v_gjahr

                                        EXCEPTIONS

                                        input_false = 1

                                        t009_notfound = 2

                                        t009b_notfound = 3

                                        OTHERS = 4.

                                        *calc opening balance hesabý

                                        SELECT * FROM knc1 WHERE kunnr = i_tab-kunnr

                                        AND bukrs = i_tab-bukrs " s_bukrs

                                        AND gjahr EQ v_gjahr.

                                        v_dnm = v_donem.

                                        • opening balance first calc > old year ,

                                        WHILE v_dnm > 1.

                                        v_dnm = v_dnm - 1.

                                        CONCATENATE 'knc1-um' v_dnm 's' INTO v_field_name_borc.

                                        CONCATENATE 'knc1-um' v_dnm 'h' INTO v_field_name_alacak.

                                        ASSIGN (v_field_name_borc) TO old

                                        • add days which is from selected date-low month

                                        IF v_donem > 1.

                                        v_dnm = v_donem - 1.

                                        ELSE.

                                        v_dnm = v_donem.

                                        ENDIF.

                                        SELECT SINGLE * FROM t009b WHERE periv = i_tab-periv "'K4'

                                        AND bdatj = s_budat-low+0(4)

                                        AND poper = v_dnm.

                                        t009b-butag = t009b-butag + 1.

                                        IF s_budat-low+6(2) NE t009b-butag.

                                        v_date_high = s_budat-low - 1.

                                        IF v_donem = 1.

                                        v_date_low = s_budat-low.

                                        v_date_low+4(4) = '0101'.

                                        ELSE.

                                        CONCATENATE t009b-bdatj t009b-bumon t009b-butag INTO

                                        v_date_low.

                                        ENDIF.

                                        SELECT * FROM bsad WHERE bukrs EQ i_tab-bukrs "IN s_bukrs

                                        AND kunnr = i_tab-kunnr

                                        AND budat BETWEEN v_date_low AND

                                        v_date_high

                                        AND umskz = space

                                        AND blart IN s_blart.

                                        IF bsad-shkzg = 'S'.

                                        i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsad-dmbtr ).

                                        ELSEIF bsad-shkzg = 'H'.

                                        i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsad-dmbtr ).

                                        ENDIF.

                                        ENDSELECT.

                                        SELECT * FROM bsid WHERE bukrs EQ i_tab-bukrs "IN s_bukrs

                                        AND kunnr = i_tab-kunnr

                                        AND budat BETWEEN v_date_low AND

                                        v_date_high

                                        AND umskz = space

                                        AND blart IN s_blart.

                                        • AND gsber IN gsber.

                                        IF bsid-shkzg = 'S'.

                                        i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsid-dmbtr ).

                                        ELSEIF bsid-shkzg = 'H'.

                                        i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsid-dmbtr ).

                                        ENDIF.

                                        ENDSELECT.

                                        ENDIF.

                                        "opening balance ( þirket bazlý )z1 degeri

                                        i_tab-z1 = i_tab-z1 + ( knc1-umsav + i_tab-dmbtr_s - i_tab-dmbtr_h ).

                                        • for israel

                                        i_tab-dmbtril_s = i_tab-dmbtr_s .

                                        i_tab-dmbtril_h = i_tab-dmbtr_h .

                                        ENDSELECT.

                                        thanks

                                        mrutyun^

                                        Add a comment
                                        10|10000 characters needed characters exceeded

                                      • Posted on Oct 16, 2006 at 01:26 PM

                                        hi,

                                        Do as follows

                                        1. declare one field say color in the output table of type SLIS_T_SPECIALCOL_ALV.

                                        2. Also declare a table color like

                                        DATA COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.

                                        3. After you have filled the field catalog do like this,

                                        LOOP AT IT_ALV_DATA.

                                        IF SY-TABIX = 2.

                                        COLOR-FIELDNAME = 'POSNR'.

                                        COLOR-COLOR-COL = 6.

                                        COLOR-COLOR-INT = 0.

                                        APPEND COLOR.

                                        IT_ALV_DATA-COLOR = COLOR[].

                                        MODIFY IT_ALV_DATA.

                                        ENDIF.

                                        ENDLOOP.

                                        regrds,

                                        anver

                                        pls mark hlpful answers

                                        Add a comment
                                        10|10000 characters needed characters exceeded

                                      • author's profile photo Former Member
                                        Former Member
                                        Posted on Oct 16, 2006 at 01:29 PM

                                        Hi jonathan,

                                        1. Not only the full row color,

                                        we can also manipulate the color in each cell.

                                        2.

                                        IMPORTANT THINGS

                                        a. Extra field in internal table

                                        clr TYPE slis_t_specialcol_alv,

                                        (this field will contain the colour codes)

                                        b. assign fieldname to alv layout

                                        alvly-coltab_fieldname = 'CLR'

                                        c. work area for colour

                                        DATA : clrwa TYPE slis_specialcol_alv.

                                        d. Populating the color

                                        Once again

                                        Loop at ITAB.

                                        *********logic

                                        if itab-field < 0 "---negative

                                        clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR

                                        clrwa-color-col = 6. <------- COLOUR 0-9

                                        APPEND clrwa TO itab-clr.

                                        MODIFY ITAB.

                                        endif.

                                        ENDLOOP.

                                        *----


                                        3. just copy paste in new program

                                        4.

                                        REPORT abc .

                                        *----


                                        NECESSARY / MUST

                                        TYPE-POOLS : slis.

                                        DATA : alvfc TYPE slis_t_fieldcat_alv.

                                        DATA : alvly TYPE slis_layout_alv.

                                        *----


                                        ITAB DECLARATION

                                        DATA : prg TYPE sy-repid.

                                        DATA : BEGIN OF itab OCCURS 0.

                                        INCLUDE STRUCTURE t001.

                                        DATA : clname(3) TYPE c,

                                        clr TYPE slis_t_specialcol_alv,

                                        END OF itab.

                                        DATA : clrwa TYPE slis_specialcol_alv.

                                        PARAMETERS : a TYPE c.

                                        DATA : flname TYPE slis_fieldname.

                                        *----


                                        SELECT

                                        START-OF-SELECTION.

                                        SELECT * FROM t001

                                        INTO CORRESPONDING FIELDS OF TABLE itab..

                                        LOOP AT itab..

                                        IF SY-TABIX <= 5.

                                        itab-clname = 'C50'.

                                        ELSE.

                                        itab-clname = 'C30'.

                                        ENDIF.

                                        MODIFY itab.

                                        ENDLOOP.

                                        LOOP AT ITAB.

                                        check itab-bukrs = '1000'

                                        .

                                        clrwa-fieldname = 'BUTXT'.

                                        clrwa-color-col = 6.

                                        APPEND clrwa TO itab-clr.

                                        MODIFY ITAB.

                                        clrwa-fieldname = 'LAND1'.

                                        clrwa-color-col = 4.

                                        APPEND clrwa TO itab-clr.

                                        MODIFY ITAB.

                                        ENDLOOP.

                                        prg = sy-repid.

                                        flname = 'CLNAME'.

                                        • alvly-info_fieldname = 'CLNAME'.

                                        alvly-coltab_fieldname = 'CLR'.

                                        LOOP AT ITAB.

                                        if sy-tabix = 3.

                                        clrwa-fieldname = 'BUTXT'.

                                        clrwa-color-col = 6.

                                        APPEND clrwa TO itab-clr.

                                        MODIFY ITAB.

                                        clrwa-fieldname = 'LAND1'.

                                        clrwa-color-col = 1.

                                        APPEND clrwa TO itab-clr.

                                        MODIFY ITAB.

                                        endif.

                                        ENDLOOP

                                        .

                                        *

                                        CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

                                        EXPORTING

                                        i_program_name = prg

                                        i_internal_tabname = 'ITAB'

                                        i_inclname = prg

                                        CHANGING

                                        ct_fieldcat = alvfc

                                        EXCEPTIONS

                                        inconsistent_interface = 1

                                        program_error = 2

                                        OTHERS = 3.

                                        *----


                                        minimum

                                        *CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

                                        • EXPORTING

                                        • it_fieldcat = alvfc

                                        • TABLES

                                        • t_outtab = itab

                                        • EXCEPTIONS

                                        • program_error = 1

                                        • OTHERS = 2

                                        *.

                                        *----


                                        extra

                                        sy-uname = 'XYZAB'.

                                        prg = sy-repid.

                                        *----


                                        Excluding

                                        DATA : excl TYPE slis_t_extab.

                                        DATA : exclwa TYPE slis_extab.

                                        exclwa = '&OUP'.

                                        APPEND exclwa TO excl.

                                        exclwa = '&ODN'.

                                        APPEND exclwa TO excl.

                                        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

                                        EXPORTING

                                        it_fieldcat = alvfc

                                        i_callback_program = sy-repid

                                        is_layout = alvly

                                        i_callback_user_command = 'ITAB_USER_COMMAND'

                                        it_excluding =

                                        excl

                                        i_save = 'A'

                                        TABLES

                                        t_outtab = itab

                                        EXCEPTIONS

                                        program_error = 1

                                        OTHERS = 2.

                                        &----


                                        *& Form itab_user_command

                                        &----


                                        • text

                                        ----


                                        • -->WHATCOMM text

                                        • -->WHATROW text

                                        ----


                                        FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

                                        slis_selfield.

                                        BREAK-POINT.

                                        ENDFORM. "itab_user_command

                                        regards,

                                        amit m.

                                        Add a comment
                                        10|10000 characters needed characters exceeded

                                      • author's profile photo Former Member
                                        Former Member
                                        Posted on Oct 16, 2006 at 01:46 PM
                                        this should help u
                                        
                                        *&---------------------------------------------------------------------*
                                        *& Report  ZCHA_ALV_GRID_CELL_COLOR                                    *
                                        *&                                                                     *
                                        *&---------------------------------------------------------------------*
                                        *&                                                                     *
                                        *&                                                                     *
                                        *&---------------------------------------------------------------------*
                                        
                                        REPORT  ZCHA_ALV_GRID_CELL_COLOR                .
                                        
                                        TABLES:MARA.
                                        
                                        DATA: W_CONTAINER         TYPE SCRFNAME VALUE 'ALV_CONTAINER',
                                              W_GRID              TYPE REF TO CL_GUI_ALV_GRID,
                                              W_CUSTOM_CONTAINER  TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
                                        *      W_EVENT_RECEIVER    TYPE REF TO LCL_EVENT_RECEIVER.
                                        *layout
                                        DATA: WA_LAYOUT           TYPE LVC_S_LAYO.
                                        *field catalog
                                        DATA: IT_FIELDCAT_WRT_OFF TYPE LVC_T_FCAT,
                                              WA_FIELDCAT_WRT_OFF TYPE LVC_S_FCAT.
                                        
                                        DATA:BEGIN OF IT_MARA OCCURS 0,
                                             MATNR LIKE MARA-MATNR,
                                             MAKTX LIKE MAKT-MAKTX,
                                             CELLCOLORS TYPE LVC_T_SCOL,
                                             END OF IT_MARA.
                                        
                                        SELECT P~MATNR
                                               Q~MAKTX
                                               INTO CORRESPONDING FIELDS OF TABLE IT_MARA
                                               FROM MARA AS P INNER JOIN
                                                    MAKT AS Q ON
                                                    P~MATNR = Q~MATNR.
                                        
                                        CALL SCREEN 100.
                                        *&---------------------------------------------------------------------*
                                        *&      Module  STATUS_0100  OUTPUT
                                        *&---------------------------------------------------------------------*
                                        *       text
                                        *----------------------------------------------------------------------*
                                        MODULE STATUS_0100 OUTPUT.
                                          SET PF-STATUS 'STATUS'.
                                        *  SET TITLEBAR 'xxx'.
                                        
                                          IF NOT W_CONTAINER IS INITIAL.
                                            CREATE OBJECT W_CUSTOM_CONTAINER
                                                     EXPORTING CONTAINER_NAME = W_CONTAINER.
                                        
                                            CREATE OBJECT W_GRID
                                                     EXPORTING I_PARENT = W_CUSTOM_CONTAINER.
                                          ENDIF.
                                        
                                          CLEAR IT_FIELDCAT_WRT_OFF.
                                          REFRESH IT_FIELDCAT_WRT_OFF.
                                        
                                          WA_FIELDCAT_WRT_OFF-FIELDNAME = 'MATNR'.
                                          WA_FIELDCAT_WRT_OFF-COL_POS   = '1'.
                                          WA_FIELDCAT_WRT_OFF-OUTPUTLEN = '35'.
                                          WA_FIELDCAT_WRT_OFF-SCRTEXT_L = 'Material No'.
                                        
                                          APPEND WA_FIELDCAT_WRT_OFF TO IT_FIELDCAT_WRT_OFF.
                                          CLEAR WA_FIELDCAT_WRT_OFF.
                                        
                                          WA_FIELDCAT_WRT_OFF-FIELDNAME = 'MAKTX'.
                                          WA_FIELDCAT_WRT_OFF-COL_POS   = '2'.
                                          WA_FIELDCAT_WRT_OFF-OUTPUTLEN = '45'.
                                          WA_FIELDCAT_WRT_OFF-SCRTEXT_L = 'Material Desc'.
                                        
                                          APPEND WA_FIELDCAT_WRT_OFF TO IT_FIELDCAT_WRT_OFF.
                                          CLEAR WA_FIELDCAT_WRT_OFF.
                                        
                                          DATA LS_CELLCOLOR TYPE LVC_S_SCOL.
                                        
                                          READ TABLE IT_MARA INDEX 5 .
                                          LS_CELLCOLOR-FNAME = 'MATNR'.
                                          LS_CELLCOLOR-COLOR-COL = '3'.
                                          LS_CELLCOLOR-COLOR-INT = '1'.
                                          APPEND LS_CELLCOLOR TO IT_MARA-CELLCOLORS.
                                          MODIFY IT_MARA INDEX 5.
                                        
                                          WA_LAYOUT-CTAB_FNAME = 'CELLCOLORS'.
                                        
                                          CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
                                            EXPORTING
                                              IS_LAYOUT       = WA_LAYOUT
                                            CHANGING
                                        
                                              IT_FIELDCATALOG = IT_FIELDCAT_WRT_OFF
                                              IT_OUTTAB       = IT_MARA[].
                                        ENDMODULE.                 " STATUS_0100  OUTPUT
                                        *&---------------------------------------------------------------------*
                                        *&      Module  USER_COMMAND_0100  INPUT
                                        *&---------------------------------------------------------------------*
                                        *       text
                                        *----------------------------------------------------------------------*
                                        MODULE USER_COMMAND_0100 INPUT.
                                        
                                          CASE SY-UCOMM.
                                            WHEN 'BACK'.
                                              LEAVE TO SCREEN 0.
                                          ENDCASE.
                                        
                                        
                                        
                                        ENDMODULE.                 " USER_COMMAND_0100  INPUT
                                        Add a comment
                                        10|10000 characters needed characters exceeded

                                      Before answering

                                      You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
                                      You must be Logged in to submit an answer.

                                      Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.