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: 

color in 1 cell in REUSE_ALV_GRID_DISPLAY

Former Member
0 Kudos

i made what you say an d have problem help pls.

data : begin of itab1 occurs 0,

matnr like vbap-matnr,

MAKTX like MAKT-MAKTX,

netwr like VBAP-NETWR,

kwmeng like vbap-kwmeng,

BWTAR like VBAP-BWTAR,

z_netwr_sk like VBAP-NETWR,

verpr LIKE MBEW-VERPR,

z_count like VBAP-KWMENG,

z_cost like VBAP-KWMENG,

z_calc like VBAP-KWMENG,

end of itab1.

data : begin of itab2 occurs 0,

matnr like vbap-matnr,

MAKTX like MAKT-MAKTX,

  • z_pstyv like vbap-pstyv,

netwr like VBAP-NETWR,

z_netwr_sk like VBAP-NETWR,

kwmeng like vbap-kwmeng,

BWTAR like VBAP-BWTAR,

verpr LIKE MBEW-VERPR,

z_count like VBAP-KWMENG,

z_cost like VBAP-KWMENG,

z_calc like VBAP-KWMENG,

  • z_calc TYPE slis_t_specialcol_alv,

COLOR_LINE TYPE slis_t_specialcol_alv,

loop at itab1.

clear itab2.

move-corresponding itab1 to itab2.

append itab2.

endloop.

*

Loop at ITAB2.

*********logic

if itab2-Z_CALC < 0 ."---negative

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

clrwa-color-col = '5'.

APPEND clrwa TO itab2-COLOR_LINE.

MODIFY ITAB2.

endif.

ENDLOOP.

L_LAYOUT-info_fieldname = 'COLOR_LINE'.

*append l_layout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

is_layout = l_layout

it_fieldcat = i_fieldcat[]

i_save = 'A'

is_variant = is_variant

it_events = gt_events[]

TABLES

t_outtab = itab1 "

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

FORM aufbauen_fieldcat USING p_fieldname

p_ref_tabname

p_name

p_sum

p_emp.

i_fieldcat-fieldname = p_fieldname .

i_fieldcat-ref_tabname = p_ref_tabname .

i_fieldcat-reptext_ddic = p_name .

i_fieldcat-seltext_l = p_name .

i_fieldcat-seltext_m = p_name .

i_fieldcat-seltext_s = p_name .

i_fieldcat-do_sum = p_sum .

i_fieldcat-emphasize = p_emp .

APPEND i_fieldcat .

ENDFORM. " AUFBAUEN_FIELDCAT

thanks.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi liat,

1. problem in the layout line

2. do not use this (info_fieldname)

L_LAYOUT-info_fieldname = 'COLOR_LINE'.

use this. (coltab_fieldname)

L_LAYOUT-coltab_fieldname = 'COLOR_LINE'.

regards,

amit m.

9 REPLIES 9

Former Member
0 Kudos

i'm using itab2 not itab1 as writing

t_outtab = itab1 "

Former Member
0 Kudos

Hi,

***************

Loop at ITAB2.

*********logic

if itab2-Z_CALC < 0 ."---negative

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

clrwa-color-col = '5'.

APPEND clrwa TO itab2-COLOR_LINE.

MODIFY ITAB2.

endif.

****************

clrwa-color-col = 'Cxyz'.

x = color number.

y = intensified on / off.

z = inverse on / off.

***clrwa-color-col = 'C600'.

Try this.

One more thing is you are modifying ITAB2 with color.

But u are passing ITAB1 to FM. Check out that.

you should modify ITAB1 with color field when u are passing ITAB1 to FM.

***********************

data : begin of itab1 occurs 0,

matnr like vbap-matnr,

MAKTX like MAKT-MAKTX,

netwr like VBAP-NETWR,

kwmeng like vbap-kwmeng,

BWTAR like VBAP-BWTAR,

z_netwr_sk like VBAP-NETWR,

verpr LIKE MBEW-VERPR,

z_count like VBAP-KWMENG,

z_cost like VBAP-KWMENG,

z_calc like VBAP-KWMENG,

color_line(4) type c,<<<<<----


end of itab1.

data : begin of itab2 occurs 0,

matnr like vbap-matnr,

MAKTX like MAKT-MAKTX,

  • z_pstyv like vbap-pstyv,

netwr like VBAP-NETWR,

z_netwr_sk like VBAP-NETWR,

kwmeng like vbap-kwmeng,

BWTAR like VBAP-BWTAR,

verpr LIKE MBEW-VERPR,

z_count like VBAP-KWMENG,

z_cost like VBAP-KWMENG,

z_calc like VBAP-KWMENG,

  • z_calc TYPE slis_t_specialcol_alv,

COLOR_LINE TYPE slis_t_specialcol_alv,

loop at itab1.

clear itab2.

move-corresponding itab1 to itab2.

append itab2.

endloop.

*

Loop at ITAB2.

*********logic

if itab2-Z_CALC < 0 ."---negative

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

clrwa-color-col = '5'.

APPEND clrwa TO itab2-COLOR_LINE.

MODIFY ITAB2.

endif.

ENDLOOP.

*********<<<<<<<<<-------

loop at itab1.

if Z_CALC < 0.

itab1-color_line = 'C600'.

endif.

modify itab1.

endloop.

*********<<<<<<<<<<----


Like this you have to do.<<<<<<<<<----


********

L_LAYOUT-info_fieldname = 'COLOR_LINE'.

*append l_layout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

is_layout = l_layout

it_fieldcat = i_fieldcat[]

i_save = 'A'

is_variant = is_variant

it_events = gt_events[]

TABLES

t_outtab = itab1 "

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

FORM aufbauen_fieldcat USING p_fieldname

p_ref_tabname

p_name

p_sum

p_emp.

i_fieldcat-fieldname = p_fieldname .

i_fieldcat-ref_tabname = p_ref_tabname .

i_fieldcat-reptext_ddic = p_name .

i_fieldcat-seltext_l = p_name .

i_fieldcat-seltext_m = p_name .

i_fieldcat-seltext_s = p_name .

i_fieldcat-do_sum = p_sum .

i_fieldcat-emphasize = p_emp .

APPEND i_fieldcat .

ENDFORM. " AUFBAUEN_FIELDCAT

**************************************

Thanks.

If this helps you reward with points.

Message was edited by: KDeepak

Message was edited by: KDeepak

0 Kudos

it's not working.

thanks.

0 Kudos

the code

data : begin of itab1 occurs 0,

matnr like vbap-matnr,

MAKTX like MAKT-MAKTX,

netwr like VBAP-NETWR,

kwmeng like vbap-kwmeng,

BWTAR like VBAP-BWTAR,

z_netwr_sk like VBAP-NETWR,

verpr LIKE MBEW-VERPR,

z_count like VBAP-KWMENG,

z_cost like VBAP-KWMENG,

z_calc like VBAP-KWMENG,

end of itab1.

data : begin of itab2 occurs 0,

matnr like vbap-matnr,

MAKTX like MAKT-MAKTX,

  • z_pstyv like vbap-pstyv,

netwr like VBAP-NETWR,

z_netwr_sk like VBAP-NETWR,

kwmeng like vbap-kwmeng,

BWTAR like VBAP-BWTAR,

verpr LIKE MBEW-VERPR,

z_count like VBAP-KWMENG,

z_cost like VBAP-KWMENG,

z_calc like VBAP-KWMENG,

  • z_calc TYPE slis_t_specialcol_alv,

COLOR_LINE TYPE slis_t_specialcol_alv,

loop at itab1.

clear itab2.

move-corresponding itab1 to itab2.

append itab2.

endloop.

*

Loop at ITAB2.

*********logic

if itab2-Z_CALC < 0 ."---negative

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

clrwa-color-col = '5'.

APPEND clrwa TO itab2-COLOR_LINE.

MODIFY ITAB2.

endif.

ENDLOOP.

L_LAYOUT-info_fieldname = 'COLOR_LINE'.

*append l_layout.

PERFORM aufbauen_fieldcat USING 'NETWR' 'VBAP' ''

'' ''. "

PERFORM aufbauen_fieldcat USING 'Z_NETWR_SK' 'itab2' 'NETWR*MANA'

'' ''. "

PERFORM aufbauen_fieldcat USING 'Z_CALC' 'ITAB2' 'PROFIT/LOSS'

'' ''.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

is_layout = l_layout

it_fieldcat = i_fieldcat[]

i_save = 'A'

is_variant = is_variant

it_events = gt_events[]

TABLES

t_outtab = itab1 "

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

FORM aufbauen_fieldcat USING p_fieldname

p_ref_tabname

p_name

p_sum

p_emp.

i_fieldcat-fieldname = p_fieldname .

i_fieldcat-ref_tabname = p_ref_tabname .

i_fieldcat-reptext_ddic = p_name .

i_fieldcat-seltext_l = p_name .

i_fieldcat-seltext_m = p_name .

i_fieldcat-seltext_s = p_name .

i_fieldcat-do_sum = p_sum .

i_fieldcat-emphasize = p_emp .

APPEND i_fieldcat .

ENDFORM. " AUFBAUEN_FIELDCAT

0 Kudos


REPORT  ZTEST222                                .

TYPE-POOLS: SLIS.
DATA : BEGIN OF ITAB1 OCCURS 0,
MATNR LIKE VBAP-MATNR,
MAKTX LIKE MAKT-MAKTX,
NETWR LIKE VBAP-NETWR,
KWMENG LIKE VBAP-KWMENG,
BWTAR LIKE VBAP-BWTAR,
Z_NETWR_SK LIKE VBAP-NETWR,
VERPR LIKE MBEW-VERPR,
Z_COUNT LIKE VBAP-KWMENG,
Z_COST LIKE VBAP-KWMENG,
Z_CALC LIKE VBAP-KWMENG,

END OF ITAB1.


DATA : BEGIN OF ITAB2 OCCURS 0,
MATNR LIKE VBAP-MATNR,
MAKTX LIKE MAKT-MAKTX,
* z_pstyv like vbap-pstyv,
NETWR LIKE VBAP-NETWR,
Z_NETWR_SK LIKE VBAP-NETWR,
KWMENG LIKE VBAP-KWMENG,
BWTAR LIKE VBAP-BWTAR,
VERPR LIKE MBEW-VERPR,
Z_COUNT LIKE VBAP-KWMENG,
Z_COST LIKE VBAP-KWMENG,
Z_CALC LIKE VBAP-KWMENG,
* z_calc TYPE slis_t_specialcol_alv,
COLOR_LINE TYPE SLIS_T_SPECIALCOL_ALV,
END OF ITAB2.

"place your slects and check the code, it will work....

LOOP AT ITAB1.
  CLEAR ITAB2.
  MOVE-CORRESPONDING ITAB1 TO ITAB2.
  APPEND ITAB2.
ENDLOOP.
DATA     COL TYPE  SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.


LOOP AT ITAB2.
*********logic
  IF ITAB2-Z_CALC < 0 ."---negative

    COL-FIELDNAME = 'Z_CALC'. "<--- FIELDNAME FOR COLOR
    COL-COLOR-COL = '5'.
    APPEND COL TO ITAB2-COLOR_LINE.
    MODIFY ITAB2.

  ENDIF.


ENDLOOP.

DATA: X_LAYOUT_DATA       TYPE SLIS_LAYOUT_ALV. " Layout for data
X_LAYOUT_DATA-INFO_FIELDNAME = 'COLOR_LINE'.
*append l_layout.
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

PERFORM AUFBAUEN_FIELDCAT USING 'NETWR' 'VBAP' ''
'' ''.  "
PERFORM AUFBAUEN_FIELDCAT USING 'Z_NETWR_SK' 'itab2' 'NETWR*MANA'
'' ''.  "
PERFORM AUFBAUEN_FIELDCAT USING 'Z_CALC' 'ITAB2' 'PROFIT/LOSS'
'' ''.



CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IS_LAYOUT = X_LAYOUT_DATA
IT_FIELDCAT = I_FIELDCAT[]
*i_save = 'A'
*is_variant = is_variant
*it_events = gt_events[]
TABLES
T_OUTTAB = ITAB1 "
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
*&---------------------------------------------------------------------*
*&      Form  aufbauen_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_FIELDNAME    text
*      -->P_REF_TABNAME  text
*      -->P_NAME         text
*      -->P_SUM          text
*      -->P_EMP          text
*----------------------------------------------------------------------*
FORM AUFBAUEN_FIELDCAT USING P_FIELDNAME P_REF_TABNAME P_NAME P_SUM P_EMP.

  I_FIELDCAT-FIELDNAME = P_FIELDNAME .
  I_FIELDCAT-REF_TABNAME = P_REF_TABNAME .
  I_FIELDCAT-REPTEXT_DDIC = P_NAME .
  I_FIELDCAT-SELTEXT_L = P_NAME .
  I_FIELDCAT-SELTEXT_M = P_NAME .
  I_FIELDCAT-SELTEXT_S = P_NAME .
  I_FIELDCAT-DO_SUM = P_SUM .
  I_FIELDCAT-EMPHASIZE = P_EMP .

  APPEND I_FIELDCAT .

ENDFORM. " AUFBAUEN_FIELDCAT

former_member188685
Active Contributor
0 Kudos

Hi Liat,

can you show your code(fully)

regards

vijay

Former Member
0 Kudos

Hi,

Try this one...

Surely, you will get result by this Way

DATA: gs_layout TYPE slis_layout_alv, "Define layout

gt_color TYPE lvc_t_scol WITH HEADER LINE.

"Define Internal Table for Cell Colouring

Use below Sample Code after building a Field Catalog:

gs_layout-coltab_fieldname = 'COLINFO'.

  • 'it' is the final internal table which contain positive & negative value of Field 'MENGE'

LOOP AT it.

REFRESH gt_color.

CLEAR gt_color.

IF it-menge GE 0.

CLEAR gt_color.

gt_color-fname = 'MENGE'.

gt_color-color-col = cl_gui_resources=>list_col_positive.

gt_color-color-int = 0.

APPEND gt_color.

ELSEIF it-menge LE 0.

CLEAR gt_color.

gt_color-fname = 'MENGE'.

gt_color-color-col = cl_gui_resources=>list_col_negative.

gt_color-color-int = 0.

APPEND gt_color.

ENDIF.

it-colinfo[] = gt_color[].

MODIFY it.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

is_layout = gs_layout

it_fieldcat = ct_fieldcat

i_save = 'A'

TABLES

t_outtab = it

EXCEPTIONS

program_error = 1

OTHERS = 2.

Regards,

Digesh

Lakshmant1
Active Contributor

Former Member
0 Kudos

Hi liat,

1. problem in the layout line

2. do not use this (info_fieldname)

L_LAYOUT-info_fieldname = 'COLOR_LINE'.

use this. (coltab_fieldname)

L_LAYOUT-coltab_fieldname = 'COLOR_LINE'.

regards,

amit m.