06-17-2008 6:34 AM
Hi Friends,
I am trying to siaplay the cell colorings in the output ALV. But it is not workin. Can anyone correct my code which is shown below.
-
types: begin of t_mara,
matnr type mara-matnr,
ersda type mara-ersda,
ernam type mara-ernam,
mtart type mara-mtart,
mbrsh type mara-mbrsh,
matkl type mara-matkl,
cellcolors type lvc_t_scol,
end of t_mara.
-
DATA:v_cnt TYPE i,
v_indx TYPE i.
LOOP AT i_mara INTO wa_mara.
CLEAR:v_cnt,v_indx.
v_indx = sy-tabix.
LOOP AT i_marc INTO wa_marc WHERE matnr = wa_mara-matnr.
v_cnt = v_cnt + 1.
ENDLOOP.
IF v_cnt IS NOT INITIAL.
CASE v_cnt.
WHEN '1'.
ls_cellcolor-fname = 'MATNR' .
ls_cellcolor-color-col = '7' .
ls_cellcolor-color-int = '1' .
APPEND ls_cellcolor TO wa_mara-cellcolors.
WHEN '2'.
wa_mara-light = '2'.
WHEN OTHERS.
wa_mara-light = '1'.
ENDCASE.
MODIFY i_mara FROM wa_mara INDEX v_indx TRANSPORTING cellcolors.
ENDIF.
ENDLOOP.
wa_layout-zebra = 'X'.
wa_layout-grid_title = 'Material Details'.
wa_layout-ctab_fname = 'CELLCOLORS'.
CALL METHOD cl_grid->set_table_for_first_display
EXPORTING
is_layout = wa_layout
CHANGING
it_outtab = i_mara
it_fieldcatalog = it_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
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. " f_display_values
-
06-17-2008 6:49 AM
Hi,
Refer this:
http://www.saptechnical.com/Tutorials/ALV/ColorSALV/Demo.htm
Refer:
*report zrich_0002 .
*****************************************************************
*Use of colours in ALV grid (cell, line and column) *
*****************************************************************
*Table
tables : mara.
*Type
types : begin of ty_mara,
matnr like mara-matnr,
matkl like mara-matkl,
counter(4) type n,
free_text(15) type c,
color_line(4) type c, " Line color
color_cell type lvc_t_scol, " Cell color
end of ty_mara.
*Structures
data : wa_mara type ty_mara,
wa_fieldcat type lvc_s_fcat,
is_layout type lvc_s_layo,
wa_color type lvc_s_scol.
*Internal table
data : it_mara type standard table of ty_mara,
it_fieldcat type standard table of lvc_s_fcat,
it_color type table of lvc_s_scol.
*Variables
data : okcode like sy-ucomm,
w_alv_grid type ref to cl_gui_alv_grid,
w_docking_container type ref to cl_gui_docking_container.
parameters : p_column as checkbox,
p_line as checkbox,
p_cell as checkbox.
at selection-screen output.
perform get_data.
perform fill_catalog.
if w_docking_container is initial.
perform create_objects.
endif.
*&----
*& Form create_objects
*&----
form create_objects.
create object w_docking_container
exporting
ratio = 60
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
others = 6.
create object w_alv_grid
exporting
i_parent = w_docking_container.
*Field that identify color line in internal table
move 'COLOR_LINE' to is_layout-info_fname.
*Field that identify cell color in inetrnal table
move 'COLOR_CELL' to is_layout-ctab_fname.
call method w_alv_grid->set_table_for_first_display
exporting
is_layout = is_layout
changing
it_outtab = it_mara
it_fieldcatalog = it_fieldcat
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
endform.
*&----
*& Form get_data
*&----
form get_data.
select * from mara up to 5 rows.
clear : wa_mara-color_line, wa_mara-color_cell.
move-corresponding mara to wa_mara.
add 1 to wa_mara-counter.
move 'Blabla' to wa_mara-free_text.
if wa_mara-counter = '0002'
and p_line = 'X'.
*Color line
move 'C410' to wa_mara-color_line.
elseif wa_mara-counter = '0004'
and p_cell = 'X'.
*Color cell
move 'FREE_TEXT' 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.
wa_mara-color_cell[] = it_color[].
endif.
append wa_mara to it_mara.
endselect.
endform.
*&----
*& Form fill_catalog
*&----
form fill_catalog.
*****************************************************************
*Colour code : *
*Colour is a 4-char field where : *
*- 1st char = C (color property) *
*- 2nd char = color code (from 0 to 7) *
*0 = background color *
*1 = blue *
*2 = gray *
*3 = yellow *
*4 = blue/gray *
*5 = green *
*6 = red *
*7 = orange *
*- 3rd char = intensified (0=off, 1=on) *
*- 4th char = inverse display (0=off, 1=on) *
**
**Colour overwriting priority : *
*1. Line *
*2. Cell *
*3. Column *
******************************************************************
data : w_position type i value '1'.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'MATNR' to wa_fieldcat-fieldname.
move 'MARA' to wa_fieldcat-ref_table.
move 'MATNR' to wa_fieldcat-ref_field.
append wa_fieldcat to it_fieldcat.
add 1 to w_position.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'MATKL' to wa_fieldcat-fieldname.
move 'MARA' to wa_fieldcat-ref_table.
move 'MATKL' to wa_fieldcat-ref_field.
*Color column
if p_column = 'X'.
move 'C610' to wa_fieldcat-emphasize.
endif.
append wa_fieldcat to it_fieldcat.
add 1 to w_position.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'COUNTER' to wa_fieldcat-fieldname.
move 'N' to wa_fieldcat-inttype.
move '4' to wa_fieldcat-intlen.
move 'Counter' to wa_fieldcat-coltext.
append wa_fieldcat to it_fieldcat.
add 1 to w_position.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'FREE_TEXT' to wa_fieldcat-fieldname.
move 'C' to wa_fieldcat-inttype.
move '20' to wa_fieldcat-intlen.
move 'Text' to wa_fieldcat-coltext.
append wa_fieldcat to it_fieldcat.
endform.
Regards,
Shiva Kumar
06-17-2008 6:38 AM
Hi,
Refer the sample program
https://forums.sdn.sap.com/click.jspa?searchID=12964854&messageID=3276292
Regards
Kiran Sure
06-17-2008 6:40 AM
Hi manjunath,
pls see the below links
http://feedfury.com/content/16104298-alv_coluring_sample_code.html
http://www.saptechnical.com/Tutorials/ALV/ColorSALV/Demo.htm
http://abapprogramming.blogspot.com/2007/11/alv-coluring-sample-code.html
thanks
abdul
reward me if usefull
06-17-2008 6:49 AM
Hi,
Refer this:
http://www.saptechnical.com/Tutorials/ALV/ColorSALV/Demo.htm
Refer:
*report zrich_0002 .
*****************************************************************
*Use of colours in ALV grid (cell, line and column) *
*****************************************************************
*Table
tables : mara.
*Type
types : begin of ty_mara,
matnr like mara-matnr,
matkl like mara-matkl,
counter(4) type n,
free_text(15) type c,
color_line(4) type c, " Line color
color_cell type lvc_t_scol, " Cell color
end of ty_mara.
*Structures
data : wa_mara type ty_mara,
wa_fieldcat type lvc_s_fcat,
is_layout type lvc_s_layo,
wa_color type lvc_s_scol.
*Internal table
data : it_mara type standard table of ty_mara,
it_fieldcat type standard table of lvc_s_fcat,
it_color type table of lvc_s_scol.
*Variables
data : okcode like sy-ucomm,
w_alv_grid type ref to cl_gui_alv_grid,
w_docking_container type ref to cl_gui_docking_container.
parameters : p_column as checkbox,
p_line as checkbox,
p_cell as checkbox.
at selection-screen output.
perform get_data.
perform fill_catalog.
if w_docking_container is initial.
perform create_objects.
endif.
*&----
*& Form create_objects
*&----
form create_objects.
create object w_docking_container
exporting
ratio = 60
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
others = 6.
create object w_alv_grid
exporting
i_parent = w_docking_container.
*Field that identify color line in internal table
move 'COLOR_LINE' to is_layout-info_fname.
*Field that identify cell color in inetrnal table
move 'COLOR_CELL' to is_layout-ctab_fname.
call method w_alv_grid->set_table_for_first_display
exporting
is_layout = is_layout
changing
it_outtab = it_mara
it_fieldcatalog = it_fieldcat
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
endform.
*&----
*& Form get_data
*&----
form get_data.
select * from mara up to 5 rows.
clear : wa_mara-color_line, wa_mara-color_cell.
move-corresponding mara to wa_mara.
add 1 to wa_mara-counter.
move 'Blabla' to wa_mara-free_text.
if wa_mara-counter = '0002'
and p_line = 'X'.
*Color line
move 'C410' to wa_mara-color_line.
elseif wa_mara-counter = '0004'
and p_cell = 'X'.
*Color cell
move 'FREE_TEXT' 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.
wa_mara-color_cell[] = it_color[].
endif.
append wa_mara to it_mara.
endselect.
endform.
*&----
*& Form fill_catalog
*&----
form fill_catalog.
*****************************************************************
*Colour code : *
*Colour is a 4-char field where : *
*- 1st char = C (color property) *
*- 2nd char = color code (from 0 to 7) *
*0 = background color *
*1 = blue *
*2 = gray *
*3 = yellow *
*4 = blue/gray *
*5 = green *
*6 = red *
*7 = orange *
*- 3rd char = intensified (0=off, 1=on) *
*- 4th char = inverse display (0=off, 1=on) *
**
**Colour overwriting priority : *
*1. Line *
*2. Cell *
*3. Column *
******************************************************************
data : w_position type i value '1'.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'MATNR' to wa_fieldcat-fieldname.
move 'MARA' to wa_fieldcat-ref_table.
move 'MATNR' to wa_fieldcat-ref_field.
append wa_fieldcat to it_fieldcat.
add 1 to w_position.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'MATKL' to wa_fieldcat-fieldname.
move 'MARA' to wa_fieldcat-ref_table.
move 'MATKL' to wa_fieldcat-ref_field.
*Color column
if p_column = 'X'.
move 'C610' to wa_fieldcat-emphasize.
endif.
append wa_fieldcat to it_fieldcat.
add 1 to w_position.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'COUNTER' to wa_fieldcat-fieldname.
move 'N' to wa_fieldcat-inttype.
move '4' to wa_fieldcat-intlen.
move 'Counter' to wa_fieldcat-coltext.
append wa_fieldcat to it_fieldcat.
add 1 to w_position.
clear wa_fieldcat.
move w_position to wa_fieldcat-col_pos.
move 'FREE_TEXT' to wa_fieldcat-fieldname.
move 'C' to wa_fieldcat-inttype.
move '20' to wa_fieldcat-intlen.
move 'Text' to wa_fieldcat-coltext.
append wa_fieldcat to it_fieldcat.
endform.
Regards,
Shiva Kumar