Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

ALV (reuse) color cell and focus

Former Member
0 Kudos
1,522

Hello,

I am using REUSE_ALV_FIELDCATALOG_MERGE and REUSE_ALV_GRID_DISPLAY.

Can anyone tell me:

1st. How do i put focus on a line after REUSE_ALV_GRID_DISPLAY ?

2nd. How do i color a single cell ?

All the examples i have found so far is for when you use alv as an object alv-factory, alv-dispaly etc.

Thanks in advance.

Regards,

Kenneth

1 ACCEPTED SOLUTION

Former Member
0 Kudos
497

Hi,

Link for [highlighting the particular row of alv|http://forums.sdn.sap.com/edit!default.jspa?messageID=11086218]

Just see the below code to color a SINGLE cell in alv:

TYPES: Begin of str,

CELLCOLOR TYPE LVC_T_SCOL,

end of str.

Data:gd_layout type slis_layout_alv.

start-of-selection.

perform build catalog.

perform display_alv_report.

PERFORM SET_CELL_COLOURS .

form build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(201).

gd_LAYOUT-coltab_fieldname = 'CELLCOLOR'. "CTAB_FNAME

endform. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


form display_alv_report.

gd_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM

  • i_callback_user_command = 'USER_COMMAND'

  • i_grid_title = outtext

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

  • it_special_groups = gd_tabgroup

  • it_events = gt_events

  • is_print = gd_prntparams

i_save = 'X'

  • is_variant = z_template

tables

t_outtab = it_ekko

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. " DISPLAY_ALV_REPORT

&----


*& Form SET_CELL_COLOURS

&----


  • Set colour of individual ALV cell, field

----


FORM SET_CELL_COLOURS .

DATA: WA_CELLCOLOR TYPE LVC_S_SCOL.

DATA: ld_index TYPE SY-TABIX.

LOOP AT IT_EKKO into wa_ekko.

LD_INDEX = SY-TABIX.

  • Set colour of EBELN field to various colors based on sy-tabix value

WA_CELLCOLOR-FNAME = 'EBELN'.

WA_CELLCOLOR-COLOR-COL = sy-tabix. "color code 1-7, if outside rage defaults to 7

WA_CELLCOLOR-COLOR-INT = '1'. "1 = Intensified on, 0 = Intensified off

WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour

APPEND WA_CELLCOLOR TO wa_ekko-CELLCOLOR.

MODIFY it_ekko from wa_ekko INDEX ld_index TRANSPORTING CELLCOLOR.

  • Set colour of NETPR field to color 4 if gt 0

if wa_ekko-netpr gt 0.

WA_CELLCOLOR-FNAME = 'NETPR'.

WA_CELLCOLOR-COLOR-COL = 4. "color code 1-7, if outside rage defaults to 7

WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off

WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour

APPEND WA_CELLCOLOR TO wa_ekko-CELLCOLOR.

MODIFY it_ekko from wa_ekko INDEX ld_index TRANSPORTING CELLCOLOR.

endif.

  • Set colour of AEDAT field text to red(6)

WA_CELLCOLOR-FNAME = 'AEDAT'.

WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7

WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off

WA_CELLCOLOR-COLOR-INV = '1'. "1 = text colour, 0 = background colour

APPEND WA_CELLCOLOR TO wa_ekko-CELLCOLOR.

MODIFY it_ekko from wa_ekko INDEX ld_index TRANSPORTING CELLCOLOR.

ENDLOOP.

ENDFORM.

3 REPLIES 3

Kiran_Valluru
Active Contributor
0 Kudos
497

Hi,

For highlighting row check Suhas reply in this thread: [Highlight row in ALV|http://forums.sdn.sap.com/thread.jspa?threadID=2107820]

For Coloring particular cell in ALV, check this reference: [Color cell in ALV|http://www.sapdev.co.uk/reporting/alv/alvgrid_cellcolor.htm]

Hope this helps u.,

Thanks & Regards,

Kiran.

0 Kudos
497

Thanks Ramya, that worked perfect!

And thanks Kiran for the link.

Do you by any chance have an example on how to put focus on a specific line? Like ig the list is more than one page long, and i want alv to scroll down to a specific row, an mark it?

Thanks.

Former Member
0 Kudos
498

Hi,

Link for [highlighting the particular row of alv|http://forums.sdn.sap.com/edit!default.jspa?messageID=11086218]

Just see the below code to color a SINGLE cell in alv:

TYPES: Begin of str,

CELLCOLOR TYPE LVC_T_SCOL,

end of str.

Data:gd_layout type slis_layout_alv.

start-of-selection.

perform build catalog.

perform display_alv_report.

PERFORM SET_CELL_COLOURS .

form build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(201).

gd_LAYOUT-coltab_fieldname = 'CELLCOLOR'. "CTAB_FNAME

endform. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


form display_alv_report.

gd_repid = sy-repid.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM

  • i_callback_user_command = 'USER_COMMAND'

  • i_grid_title = outtext

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

  • it_special_groups = gd_tabgroup

  • it_events = gt_events

  • is_print = gd_prntparams

i_save = 'X'

  • is_variant = z_template

tables

t_outtab = it_ekko

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. " DISPLAY_ALV_REPORT

&----


*& Form SET_CELL_COLOURS

&----


  • Set colour of individual ALV cell, field

----


FORM SET_CELL_COLOURS .

DATA: WA_CELLCOLOR TYPE LVC_S_SCOL.

DATA: ld_index TYPE SY-TABIX.

LOOP AT IT_EKKO into wa_ekko.

LD_INDEX = SY-TABIX.

  • Set colour of EBELN field to various colors based on sy-tabix value

WA_CELLCOLOR-FNAME = 'EBELN'.

WA_CELLCOLOR-COLOR-COL = sy-tabix. "color code 1-7, if outside rage defaults to 7

WA_CELLCOLOR-COLOR-INT = '1'. "1 = Intensified on, 0 = Intensified off

WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour

APPEND WA_CELLCOLOR TO wa_ekko-CELLCOLOR.

MODIFY it_ekko from wa_ekko INDEX ld_index TRANSPORTING CELLCOLOR.

  • Set colour of NETPR field to color 4 if gt 0

if wa_ekko-netpr gt 0.

WA_CELLCOLOR-FNAME = 'NETPR'.

WA_CELLCOLOR-COLOR-COL = 4. "color code 1-7, if outside rage defaults to 7

WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off

WA_CELLCOLOR-COLOR-INV = '0'. "1 = text colour, 0 = background colour

APPEND WA_CELLCOLOR TO wa_ekko-CELLCOLOR.

MODIFY it_ekko from wa_ekko INDEX ld_index TRANSPORTING CELLCOLOR.

endif.

  • Set colour of AEDAT field text to red(6)

WA_CELLCOLOR-FNAME = 'AEDAT'.

WA_CELLCOLOR-COLOR-COL = 6. "color code 1-7, if outside rage defaults to 7

WA_CELLCOLOR-COLOR-INT = '0'. "1 = Intensified on, 0 = Intensified off

WA_CELLCOLOR-COLOR-INV = '1'. "1 = text colour, 0 = background colour

APPEND WA_CELLCOLOR TO wa_ekko-CELLCOLOR.

MODIFY it_ekko from wa_ekko INDEX ld_index TRANSPORTING CELLCOLOR.

ENDLOOP.

ENDFORM.