01-12-2006 8:14 AM
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.
01-12-2006 8:59 AM
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.
01-12-2006 8:22 AM
01-12-2006 8:22 AM
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
01-12-2006 8:30 AM
01-12-2006 8:37 AM
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
01-12-2006 8:53 AM
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
01-12-2006 8:23 AM
01-12-2006 8:37 AM
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
01-12-2006 8:37 AM
Hi Liat,
Have a look at url
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_color.htm
http://www.sap-img.com/abap/line-color-in-alv-example.htm
Hope this helps.
Thanks
Lakshman
01-12-2006 8:59 AM
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.