Skip to Content
0
Former Member
May 23, 2008 at 06:55 AM

To change the subtotals row color in ALV(Grid / List ) .

395 Views

I am trying to change the color of a row which gives the subtotal...in ALV report...

but it is not working....

I have used the following code but not getting where i m wrong

I have u sed the following code wih the help of our forum only...

<CODE>

TYPE-POOLS: SLIS.

&----


*& Internal Table Delcaration

*&

&----


DATA : BEGIN OF IT_SCALE OCCURS 0,

DATUM LIKE ZSCALE-DATUM,

MCOD1 LIKE ZSCALE-MCOD1,

MATNR LIKE ZSCALE-MATNR,

MAKTG LIKE ZSCALE-MAKTG,

MEINS LIKE ZSCALE-MEINS,

RATE LIKE ZSCALE-RATE,

TOTAL LIKE ZSCALE-TOTAL,

LI_COLOR(4),

END OF IT_SCALE.

DATA : INDEX LIKE SY-TABIX.

&----


*& ALV Data Declaration

*&

&----


DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: WA_FIELDCAT LIKE LINE OF IT_FIELDCAT.

DATA : T_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA : IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA : G_SAVE(1) TYPE C VALUE 'A',

GX_SAVE(1) TYPE C VALUE 'A',

GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

T_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

T_I_EVENT TYPE SLIS_ALV_EVENT.

DATA : L_LIST(105) TYPE C, "Store the Top-of-page headings

L_DATEFROM(10) TYPE C, "Store date in top-of-page

L_DATETO(10) TYPE C. "Store date in top-of-page

<code>

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM ALV_FIELDCAT.

PERFORM GET_EVENTS.

PERFORM SUB_COMMENT_BUILD USING T_LIST_TOP_OF_PAGE.

PERFORM ALV_DISPLAY.

FORM GET_DATA .

DATA : LINE_COLOR.

SELECT DATUM MCOD1 MATNR MAKTG MEINS RATE TOTAL

FROM ZSCALE INTO CORRESPONDING FIELDS OF TABLE IT_SCALE

WHERE DATUM IN S_DATE

AND LIFNR IN S_LIFNR

AND MATNR IN S_MATNR.

loop at IT_SCALE.

LINE_color = LINE_color + 2.

if LINE_color < 7.

LINE_color = 1.

endif.

concatenate 'C' lINE_color '00' into IT_SCALE-li_color.

modify it_SCALE TRANSPORTING LI_COLOR.

endloop.

FORM ALV_FIELDCAT.

DATA: COUNTER TYPE I.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'DATUM'.

WA_FIELDCAT-TABNAME = 'IT_SCALE'.

WA_FIELDCAT-SELTEXT_L = 'Date'.

WA_FIELDCAT-JUST = 'C'.

WA_FIELDCAT-NO_ZERO = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

.

.

.

.

.

.endform.

FORM ALV_DISPLAY .

  • GS_LAYOUT-ZEBRA = 'X'.

GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GS_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

  • gS_layout-no_input = 'X'.

gS_layout-totals_text = 'Totals'(201).

gS_layout-subtotals_text = 'Subtotal'.

IF IT_SCALE[] IS INITIAL.

MESSAGE I001(38) WITH 'No Data to Display'.

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT = GS_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

I_SAVE = G_SAVE

IS_VARIANT = GX_VARIANT

TABLES

T_OUTTAB = IT_SCALE[].

ENDIF.

ENDFORM. " ALV_DISPLAY

ThanX in Adavance....